{
    "apiVersion": "v1",
    "items": [
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "PipelineRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "chains.tekton.dev/transparency": "https://rekor-server-tssc-tas.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/api/v1/log/entries?logIndex=129",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "73234224039",
                    "pipelinesascode.tekton.dev/controller-info": "{\"name\":\"default\",\"configmap\":\"pipelines-as-code\",\"secret\":\"pipelines-as-code-secret\", \"gRepo\": \"pipelines-as-code\"}",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/git-auth-secret": "pac-gitauth-evwtct",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-dotnet-basic-vmeijjfo-gitops-on-pull-request-jf5cl",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-dotnet-basic-vmeijjfo-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pipeline": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/pipelines/gitops-pull-request-tssc.yaml",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-vmeijjfo-gitops",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-dotnet-basic-vmeijjfo-gitops-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "f95b8c260451a59db79c06acbcb44724b74ab5a5",
                    "pipelinesascode.tekton.dev/sha-title": "Promote to stage environment",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-vmeijjfo-gitops/commit/f95b8c260451a59db79c06acbcb44724b74ab5a5",
                    "pipelinesascode.tekton.dev/source-branch": "promote-to-stage-1777307890180",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-vmeijjfo-gitops",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/task-0": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/git-clone.yaml",
                    "pipelinesascode.tekton.dev/task-1": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/gather-deploy-images.yaml",
                    "pipelinesascode.tekton.dev/task-2": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/verify-enterprise-contract.yaml",
                    "pipelinesascode.tekton.dev/task-3": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/gather-deploy-images.yaml",
                    "pipelinesascode.tekton.dev/task-4": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/download-sbom-from-url-in-attestation.yaml",
                    "pipelinesascode.tekton.dev/task-5": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/upload-sbom-to-trustification.yaml",
                    "pipelinesascode.tekton.dev/task-6": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/fetch-gitops-images.yaml",
                    "pipelinesascode.tekton.dev/task-7": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/verify-gitops-conforma.yaml",
                    "pipelinesascode.tekton.dev/task-8": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/download-gitops-sbom.yaml",
                    "pipelinesascode.tekton.dev/task-9": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/upload-gitops-sbom.yaml",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-dotnet-basic-vmeijjfo-gitops",
                    "results.tekton.dev/record": "tssc-app-ci/results/391ffb7a-fb41-4afc-b648-2d2d92bb937c/records/391ffb7a-fb41-4afc-b648-2d2d92bb937c",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-dotnet-basic-vmeijjfo-gitops\",\"commit\":\"f95b8c260451a59db79c06acbcb44724b74ab5a5\",\"eventType\":\"pull_request\",\"pull_request-id\":1}",
                    "results.tekton.dev/result": "tssc-app-ci/results/391ffb7a-fb41-4afc-b648-2d2d92bb937c",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-27T16:38:21Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "results.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer"
                ],
                "generateName": "e2e-tests-dotnet-basic-vmeijjfo-gitops-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-dotnet-basic-vmeijjfo",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-dotnet-basic-vmeijjfo",
                    "backstage.io/kubernetes-id": "e2e-tests-dotnet-basic-vmeijjfo",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-dotnet-basic-vmeijjfo",
                    "pipelinesascode.tekton.dev/check-run-id": "73234224039",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-dotnet-basic-vmeijjfo-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-dotnet-basic-vmeijjfo-gitops-repository",
                    "pipelinesascode.tekton.dev/sha": "f95b8c260451a59db79c06acbcb44724b74ab5a5",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-dotnet-basic-vmeijjfo-gitops",
                    "tekton.dev/pipeline": "e2e-tests-dotnet-basic-vmeijjfo-gitops-on-pull-request-jf5cl"
                },
                "name": "e2e-tests-dotnet-basic-vmeijjfo-gitops-on-pull-request-jf5cl",
                "namespace": "tssc-app-ci",
                "resourceVersion": "52104",
                "uid": "391ffb7a-fb41-4afc-b648-2d2d92bb937c"
            },
            "spec": {
                "params": [
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-vmeijjfo-gitops"
                    },
                    {
                        "name": "revision",
                        "value": "f95b8c260451a59db79c06acbcb44724b74ab5a5"
                    },
                    {
                        "name": "target-branch",
                        "value": "main"
                    },
                    {
                        "name": "fail-if-trustification-not-configured",
                        "value": "false"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Gitops repo url",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Gitops repo revision",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "default": "main",
                            "description": "The target branch for the pull request",
                            "name": "target-branch",
                            "type": "string"
                        },
                        {
                            "default": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7",
                            "description": "Enterprise Contract policy to validate against",
                            "name": "ec-policy-configuration",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should EC violations cause the pipeline to fail?",
                            "name": "ec-strict",
                            "type": "string"
                        },
                        {
                            "default": "k8s://$(context.pipelineRun.namespace)/cosign-pub",
                            "description": "The public key that EC should use to verify signatures",
                            "name": "ec-public-key",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should the pipeline fail when there are SBOMs to upload but Trustification is not properly configured (i.e. the secret is missing or doesn't have all the required keys)?",
                            "name": "fail-if-trustification-not-configured",
                            "type": "string"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "$(params.git-url)"
                                },
                                {
                                    "name": "revision",
                                    "value": "$(params.revision)"
                                },
                                {
                                    "name": "fetchTags",
                                    "value": "true"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "$(params.revision)"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "get-images",
                            "params": [
                                {
                                    "name": "PUBLIC_KEY_URL",
                                    "value": "$(params.ec-public-key)"
                                },
                                {
                                    "name": "TARGET_BRANCH",
                                    "value": "$(params.target-branch)"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Extract images from deployment YAML to pass to Conforma for validation",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a valid k8s cosign reference, e.g. k8s://my-space/my-secret where my-secret contains the expected cosign.pub attribute.",
                                        "name": "PUBLIC_KEY_URL",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "If specified, will gather only the images that changed between the current revision and the target branch. Useful for pull requests. Note that the repository cloned on the source workspace must already contain the origin/$TARGET_BRANCH reference.\n",
                                        "name": "TARGET_BRANCH",
                                        "type": "string"
                                    },
                                    {
                                        "default": [
                                            "development",
                                            "stage",
                                            "prod"
                                        ],
                                        "description": "Gather images from the manifest files for the specified environments",
                                        "name": "ENVIRONMENTS",
                                        "type": "array"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Cosign base64 encoded public key fetched from secrets.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images with SBOMs to upload to Trustification \n",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images to be verified, in a format compatible with https://github.com/konflux-ci/build-definitions/tree/main/task/verify-enterprise-contract/0.1. When there are no images to verify, this is an empty string.\n",
                                        "name": "CONFORMA_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TARGET_BRANCH",
                                            "value": "$(params.TARGET_BRANCH)"
                                        },
                                        {
                                            "name": "PUBLIC_KEY_URL",
                                            "value": "$(params.PUBLIC_KEY_URL)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "pwd\nls -la\n# Sync scripts to the writable workspace\ncp -rf /work/tssc/ $(workspaces.source.path)/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e $(workspaces.source.path)/tssc/common.sh\necho \"Successfully patched $(workspaces.source.path)/tssc/common.sh\"\n\necho \"Parsing public key url\"\nCLEAN_URL=\"${PUBLIC_KEY_URL#k8s://}\"\nNS=\"${CLEAN_URL%/*}\"\nSECRET=\"${CLEAN_URL##*/}\"\nCOSIGN_PUBLIC_KEY=$(oc get secrets $SECRET -n $NS -o json | jq -r '.data.\"cosign.pub\"')\necho $COSIGN_PUBLIC_KEY \u003e $(results.COSIGN_PUBLIC_KEY.path)\n"
                                    },
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "get-images",
                                        "script": "echo \"running gather-images-to-upload-sbom\"\n$(workspaces.source.path)/tssc/gather-images-to-upload-sbom.sh\nmv ./results/gather-deploy-images ./results/sbom-images \ncat ./results/sbom-images/IMAGES_TO_VERIFY \u003e $(results.SBOM_IMAGES.path)\n\necho \"running gather-deploy-images\"\n$(workspaces.source.path)/tssc/gather-deploy-images.sh\ncat ./results/gather-deploy-images/IMAGES_TO_VERIFY \u003e $(results.CONFORMA_IMAGES.path)\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "verify-conforma",
                            "params": [
                                {
                                    "name": "STRICT",
                                    "value": "$(params.ec-strict)"
                                },
                                {
                                    "name": "POLICY_CONFIGURATION",
                                    "value": "$(params.ec-policy-configuration)"
                                },
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Verify the enterprise contract is met",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "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": "true",
                                        "description": "Fail the task if policy fails. Set to `\"false\"` to disable it.",
                                        "name": "STRICT",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Short summary of the policy evaluation for each image.",
                                        "name": "TEST_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STRICT",
                                            "value": "$(params.STRICT)"
                                        },
                                        {
                                            "name": "POLICY_CONFIGURATION",
                                            "value": "$(params.POLICY_CONFIGURATION)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "verify",
                                        "script": "echo \"running verify-conforma\"\n$(workspaces.source.path)/tssc/verify-conforma.sh\ncat ./results/verify-conforma/TEST_OUTPUT \u003e $(results.TEST_OUTPUT.path)\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.CONFORMA_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "download-sboms",
                            "params": [
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                },
                                {
                                    "name": "SBOM_IMAGES",
                                    "value": "$(tasks.get-images.results.SBOM_IMAGES)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Download SBOM from images",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Images to be considered for SBOM download.",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        },
                                        {
                                            "name": "IMAGES",
                                            "value": "$(params.SBOM_IMAGES)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "download",
                                        "script": "echo \"running download-sbom-from-url-in-attestation\"\n$(workspaces.source.path)/tssc/download-sbom-from-url-in-attestation.sh\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "upload-sboms",
                            "params": [
                                {
                                    "name": "TPA_SECRET",
                                    "value": "$(params.trustification-secret-name)"
                                }
                            ],
                            "runAfter": [
                                "download-sboms"
                            ],
                            "taskSpec": {
                                "description": "Upload SBOMs to Trustification",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "TPA Secret to obtain Trustification vars from.",
                                        "name": "TPA_SECRET",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "bombastic_api_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_id",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_secret",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_issuer_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "upload",
                                        "script": "echo \"running upload-sbom-to-trustification\"\n$(workspaces.source.path)/tssc/upload-sbom-to-trustification.sh\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "taskRunTemplate": {
                    "serviceAccountName": "pipeline"
                },
                "timeouts": {
                    "pipeline": "1h0m0s"
                },
                "workspaces": [
                    {
                        "name": "git-auth",
                        "secret": {
                            "secretName": "pac-gitauth-evwtct"
                        }
                    },
                    {
                        "name": "workspace",
                        "volumeClaimTemplate": {
                            "metadata": {
                                "creationTimestamp": null
                            },
                            "spec": {
                                "accessModes": [
                                    "ReadWriteOnce"
                                ],
                                "resources": {
                                    "requests": {
                                        "storage": "1Gi"
                                    }
                                }
                            },
                            "status": {}
                        }
                    }
                ]
            },
            "status": {
                "childReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnda6869cdd6a936310b9779485cd69775-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet-basda6869cdd6a936310b9779485cd69775-get-images",
                        "pipelineTaskName": "get-images"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotneda6869cdd6a936310b9779485cd69775-verify-conforma",
                        "pipelineTaskName": "verify-conforma",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-dotnet-basic-vmeijjfo:78c6611d2ec8131d6975bdc7b23fb5b2c7b1d1d4\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnetda6869cdd6a936310b9779485cd69775-download-sboms",
                        "pipelineTaskName": "download-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-dotnet-basic-vmeijjfo:78c6611d2ec8131d6975bdc7b23fb5b2c7b1d1d4\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet-bda6869cdd6a936310b9779485cd69775-upload-sboms",
                        "pipelineTaskName": "upload-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-dotnet-basic-vmeijjfo:78c6611d2ec8131d6975bdc7b23fb5b2c7b1d1d4\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    }
                ],
                "completionTime": "2026-04-27T16:39:12Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-27T16:39:12Z",
                        "message": "Tasks Completed: 5 (Failed: 0, Cancelled 0), Skipped: 0",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Gitops repo url",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Gitops repo revision",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "default": "main",
                            "description": "The target branch for the pull request",
                            "name": "target-branch",
                            "type": "string"
                        },
                        {
                            "default": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7",
                            "description": "Enterprise Contract policy to validate against",
                            "name": "ec-policy-configuration",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should EC violations cause the pipeline to fail?",
                            "name": "ec-strict",
                            "type": "string"
                        },
                        {
                            "default": "k8s://$(context.pipelineRun.namespace)/cosign-pub",
                            "description": "The public key that EC should use to verify signatures",
                            "name": "ec-public-key",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should the pipeline fail when there are SBOMs to upload but Trustification is not properly configured (i.e. the secret is missing or doesn't have all the required keys)?",
                            "name": "fail-if-trustification-not-configured",
                            "type": "string"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-vmeijjfo-gitops"
                                },
                                {
                                    "name": "revision",
                                    "value": "f95b8c260451a59db79c06acbcb44724b74ab5a5"
                                },
                                {
                                    "name": "fetchTags",
                                    "value": "true"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "f95b8c260451a59db79c06acbcb44724b74ab5a5"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "get-images",
                            "params": [
                                {
                                    "name": "PUBLIC_KEY_URL",
                                    "value": "k8s://tssc-app-ci/cosign-pub"
                                },
                                {
                                    "name": "TARGET_BRANCH",
                                    "value": "main"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Extract images from deployment YAML to pass to Conforma for validation",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a valid k8s cosign reference, e.g. k8s://my-space/my-secret where my-secret contains the expected cosign.pub attribute.",
                                        "name": "PUBLIC_KEY_URL",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "If specified, will gather only the images that changed between the current revision and the target branch. Useful for pull requests. Note that the repository cloned on the source workspace must already contain the origin/$TARGET_BRANCH reference.\n",
                                        "name": "TARGET_BRANCH",
                                        "type": "string"
                                    },
                                    {
                                        "default": [
                                            "development",
                                            "stage",
                                            "prod"
                                        ],
                                        "description": "Gather images from the manifest files for the specified environments",
                                        "name": "ENVIRONMENTS",
                                        "type": "array"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Cosign base64 encoded public key fetched from secrets.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images with SBOMs to upload to Trustification \n",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images to be verified, in a format compatible with https://github.com/konflux-ci/build-definitions/tree/main/task/verify-enterprise-contract/0.1. When there are no images to verify, this is an empty string.\n",
                                        "name": "CONFORMA_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TARGET_BRANCH",
                                            "value": "$(params.TARGET_BRANCH)"
                                        },
                                        {
                                            "name": "PUBLIC_KEY_URL",
                                            "value": "$(params.PUBLIC_KEY_URL)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TARGET_BRANCH",
                                                "value": "$(params.TARGET_BRANCH)"
                                            },
                                            {
                                                "name": "PUBLIC_KEY_URL",
                                                "value": "$(params.PUBLIC_KEY_URL)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "pwd\nls -la\n# Sync scripts to the writable workspace\ncp -rf /work/tssc/ $(workspaces.source.path)/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e $(workspaces.source.path)/tssc/common.sh\necho \"Successfully patched $(workspaces.source.path)/tssc/common.sh\"\n\necho \"Parsing public key url\"\nCLEAN_URL=\"${PUBLIC_KEY_URL#k8s://}\"\nNS=\"${CLEAN_URL%/*}\"\nSECRET=\"${CLEAN_URL##*/}\"\nCOSIGN_PUBLIC_KEY=$(oc get secrets $SECRET -n $NS -o json | jq -r '.data.\"cosign.pub\"')\necho $COSIGN_PUBLIC_KEY \u003e $(results.COSIGN_PUBLIC_KEY.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TARGET_BRANCH",
                                                "value": "$(params.TARGET_BRANCH)"
                                            },
                                            {
                                                "name": "PUBLIC_KEY_URL",
                                                "value": "$(params.PUBLIC_KEY_URL)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "get-images",
                                        "script": "echo \"running gather-images-to-upload-sbom\"\n$(workspaces.source.path)/tssc/gather-images-to-upload-sbom.sh\nmv ./results/gather-deploy-images ./results/sbom-images \ncat ./results/sbom-images/IMAGES_TO_VERIFY \u003e $(results.SBOM_IMAGES.path)\n\necho \"running gather-deploy-images\"\n$(workspaces.source.path)/tssc/gather-deploy-images.sh\ncat ./results/gather-deploy-images/IMAGES_TO_VERIFY \u003e $(results.CONFORMA_IMAGES.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "verify-conforma",
                            "params": [
                                {
                                    "name": "STRICT",
                                    "value": "true"
                                },
                                {
                                    "name": "POLICY_CONFIGURATION",
                                    "value": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7"
                                },
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Verify the enterprise contract is met",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "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": "true",
                                        "description": "Fail the task if policy fails. Set to `\"false\"` to disable it.",
                                        "name": "STRICT",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Short summary of the policy evaluation for each image.",
                                        "name": "TEST_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STRICT",
                                            "value": "$(params.STRICT)"
                                        },
                                        {
                                            "name": "POLICY_CONFIGURATION",
                                            "value": "$(params.POLICY_CONFIGURATION)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STRICT",
                                                "value": "$(params.STRICT)"
                                            },
                                            {
                                                "name": "POLICY_CONFIGURATION",
                                                "value": "$(params.POLICY_CONFIGURATION)"
                                            },
                                            {
                                                "name": "REKOR_HOST",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rekor_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TUF_MIRROR",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "tuf_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "value": "$(params.COSIGN_PUBLIC_KEY)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "verify",
                                        "script": "echo \"running verify-conforma\"\n$(workspaces.source.path)/tssc/verify-conforma.sh\ncat ./results/verify-conforma/TEST_OUTPUT \u003e $(results.TEST_OUTPUT.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.CONFORMA_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "download-sboms",
                            "params": [
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                },
                                {
                                    "name": "SBOM_IMAGES",
                                    "value": "$(tasks.get-images.results.SBOM_IMAGES)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Download SBOM from images",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Images to be considered for SBOM download.",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        },
                                        {
                                            "name": "IMAGES",
                                            "value": "$(params.SBOM_IMAGES)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "value": "$(params.COSIGN_PUBLIC_KEY)"
                                            },
                                            {
                                                "name": "IMAGES",
                                                "value": "$(params.SBOM_IMAGES)"
                                            },
                                            {
                                                "name": "REKOR_HOST",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rekor_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TUF_MIRROR",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "tuf_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "download",
                                        "script": "echo \"running download-sbom-from-url-in-attestation\"\n$(workspaces.source.path)/tssc/download-sbom-from-url-in-attestation.sh\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "upload-sboms",
                            "params": [
                                {
                                    "name": "TPA_SECRET",
                                    "value": "tpa-secret"
                                }
                            ],
                            "runAfter": [
                                "download-sboms"
                            ],
                            "taskSpec": {
                                "description": "Upload SBOMs to Trustification",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "TPA Secret to obtain Trustification vars from.",
                                        "name": "TPA_SECRET",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "bombastic_api_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_id",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_secret",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_issuer_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "bombastic_api_url",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_client_id",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_client_secret",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_issuer_url",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "upload",
                                        "script": "echo \"running upload-sbom-to-trustification\"\n$(workspaces.source.path)/tssc/upload-sbom-to-trustification.sh\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "startTime": "2026-04-27T16:38:21Z"
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "PipelineRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "chains.tekton.dev/transparency": "https://rekor-server-tssc-tas.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/api/v1/log/entries?logIndex=159",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "73234536754",
                    "pipelinesascode.tekton.dev/controller-info": "{\"name\":\"default\",\"configmap\":\"pipelines-as-code\",\"secret\":\"pipelines-as-code-secret\", \"gRepo\": \"pipelines-as-code\"}",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/git-auth-secret": "pac-gitauth-mykzml",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-dotnet-basic-vmeijjfo-gitops-on-pull-request-q5bnw",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-dotnet-basic-vmeijjfo-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pipeline": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/pipelines/gitops-pull-request-tssc.yaml",
                    "pipelinesascode.tekton.dev/pull-request": "2",
                    "pipelinesascode.tekton.dev/repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-vmeijjfo-gitops",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-dotnet-basic-vmeijjfo-gitops-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "004fc4c0449ffa39743d76278b20443eaaec2703",
                    "pipelinesascode.tekton.dev/sha-title": "Promote to prod environment",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-vmeijjfo-gitops/commit/004fc4c0449ffa39743d76278b20443eaaec2703",
                    "pipelinesascode.tekton.dev/source-branch": "promote-to-prod-1777308002847",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-vmeijjfo-gitops",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/task-0": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/git-clone.yaml",
                    "pipelinesascode.tekton.dev/task-1": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/gather-deploy-images.yaml",
                    "pipelinesascode.tekton.dev/task-2": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/verify-enterprise-contract.yaml",
                    "pipelinesascode.tekton.dev/task-3": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/gather-deploy-images.yaml",
                    "pipelinesascode.tekton.dev/task-4": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/download-sbom-from-url-in-attestation.yaml",
                    "pipelinesascode.tekton.dev/task-5": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/upload-sbom-to-trustification.yaml",
                    "pipelinesascode.tekton.dev/task-6": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/fetch-gitops-images.yaml",
                    "pipelinesascode.tekton.dev/task-7": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/verify-gitops-conforma.yaml",
                    "pipelinesascode.tekton.dev/task-8": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/download-gitops-sbom.yaml",
                    "pipelinesascode.tekton.dev/task-9": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/upload-gitops-sbom.yaml",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-dotnet-basic-vmeijjfo-gitops",
                    "results.tekton.dev/record": "tssc-app-ci/results/bd75ffee-c286-444c-9df6-635b72406332/records/bd75ffee-c286-444c-9df6-635b72406332",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-dotnet-basic-vmeijjfo-gitops\",\"commit\":\"004fc4c0449ffa39743d76278b20443eaaec2703\",\"eventType\":\"pull_request\",\"pull_request-id\":2}",
                    "results.tekton.dev/result": "tssc-app-ci/results/bd75ffee-c286-444c-9df6-635b72406332",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-27T16:40:14Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "results.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-dotnet-basic-vmeijjfo-gitops-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-dotnet-basic-vmeijjfo",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-dotnet-basic-vmeijjfo",
                    "backstage.io/kubernetes-id": "e2e-tests-dotnet-basic-vmeijjfo",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-dotnet-basic-vmeijjfo",
                    "pipelinesascode.tekton.dev/check-run-id": "73234536754",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-dotnet-basic-vmeijjfo-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "2",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-dotnet-basic-vmeijjfo-gitops-repository",
                    "pipelinesascode.tekton.dev/sha": "004fc4c0449ffa39743d76278b20443eaaec2703",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-dotnet-basic-vmeijjfo-gitops",
                    "tekton.dev/pipeline": "e2e-tests-dotnet-basic-vmeijjfo-gitops-on-pull-request-q5bnw"
                },
                "name": "e2e-tests-dotnet-basic-vmeijjfo-gitops-on-pull-request-q5bnw",
                "namespace": "tssc-app-ci",
                "resourceVersion": "55560",
                "uid": "bd75ffee-c286-444c-9df6-635b72406332"
            },
            "spec": {
                "params": [
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-vmeijjfo-gitops"
                    },
                    {
                        "name": "revision",
                        "value": "004fc4c0449ffa39743d76278b20443eaaec2703"
                    },
                    {
                        "name": "target-branch",
                        "value": "main"
                    },
                    {
                        "name": "fail-if-trustification-not-configured",
                        "value": "false"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Gitops repo url",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Gitops repo revision",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "default": "main",
                            "description": "The target branch for the pull request",
                            "name": "target-branch",
                            "type": "string"
                        },
                        {
                            "default": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7",
                            "description": "Enterprise Contract policy to validate against",
                            "name": "ec-policy-configuration",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should EC violations cause the pipeline to fail?",
                            "name": "ec-strict",
                            "type": "string"
                        },
                        {
                            "default": "k8s://$(context.pipelineRun.namespace)/cosign-pub",
                            "description": "The public key that EC should use to verify signatures",
                            "name": "ec-public-key",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should the pipeline fail when there are SBOMs to upload but Trustification is not properly configured (i.e. the secret is missing or doesn't have all the required keys)?",
                            "name": "fail-if-trustification-not-configured",
                            "type": "string"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "$(params.git-url)"
                                },
                                {
                                    "name": "revision",
                                    "value": "$(params.revision)"
                                },
                                {
                                    "name": "fetchTags",
                                    "value": "true"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "$(params.revision)"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "get-images",
                            "params": [
                                {
                                    "name": "PUBLIC_KEY_URL",
                                    "value": "$(params.ec-public-key)"
                                },
                                {
                                    "name": "TARGET_BRANCH",
                                    "value": "$(params.target-branch)"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Extract images from deployment YAML to pass to Conforma for validation",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a valid k8s cosign reference, e.g. k8s://my-space/my-secret where my-secret contains the expected cosign.pub attribute.",
                                        "name": "PUBLIC_KEY_URL",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "If specified, will gather only the images that changed between the current revision and the target branch. Useful for pull requests. Note that the repository cloned on the source workspace must already contain the origin/$TARGET_BRANCH reference.\n",
                                        "name": "TARGET_BRANCH",
                                        "type": "string"
                                    },
                                    {
                                        "default": [
                                            "development",
                                            "stage",
                                            "prod"
                                        ],
                                        "description": "Gather images from the manifest files for the specified environments",
                                        "name": "ENVIRONMENTS",
                                        "type": "array"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Cosign base64 encoded public key fetched from secrets.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images with SBOMs to upload to Trustification \n",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images to be verified, in a format compatible with https://github.com/konflux-ci/build-definitions/tree/main/task/verify-enterprise-contract/0.1. When there are no images to verify, this is an empty string.\n",
                                        "name": "CONFORMA_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TARGET_BRANCH",
                                            "value": "$(params.TARGET_BRANCH)"
                                        },
                                        {
                                            "name": "PUBLIC_KEY_URL",
                                            "value": "$(params.PUBLIC_KEY_URL)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "pwd\nls -la\n# Sync scripts to the writable workspace\ncp -rf /work/tssc/ $(workspaces.source.path)/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e $(workspaces.source.path)/tssc/common.sh\necho \"Successfully patched $(workspaces.source.path)/tssc/common.sh\"\n\necho \"Parsing public key url\"\nCLEAN_URL=\"${PUBLIC_KEY_URL#k8s://}\"\nNS=\"${CLEAN_URL%/*}\"\nSECRET=\"${CLEAN_URL##*/}\"\nCOSIGN_PUBLIC_KEY=$(oc get secrets $SECRET -n $NS -o json | jq -r '.data.\"cosign.pub\"')\necho $COSIGN_PUBLIC_KEY \u003e $(results.COSIGN_PUBLIC_KEY.path)\n"
                                    },
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "get-images",
                                        "script": "echo \"running gather-images-to-upload-sbom\"\n$(workspaces.source.path)/tssc/gather-images-to-upload-sbom.sh\nmv ./results/gather-deploy-images ./results/sbom-images \ncat ./results/sbom-images/IMAGES_TO_VERIFY \u003e $(results.SBOM_IMAGES.path)\n\necho \"running gather-deploy-images\"\n$(workspaces.source.path)/tssc/gather-deploy-images.sh\ncat ./results/gather-deploy-images/IMAGES_TO_VERIFY \u003e $(results.CONFORMA_IMAGES.path)\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "verify-conforma",
                            "params": [
                                {
                                    "name": "STRICT",
                                    "value": "$(params.ec-strict)"
                                },
                                {
                                    "name": "POLICY_CONFIGURATION",
                                    "value": "$(params.ec-policy-configuration)"
                                },
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Verify the enterprise contract is met",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "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": "true",
                                        "description": "Fail the task if policy fails. Set to `\"false\"` to disable it.",
                                        "name": "STRICT",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Short summary of the policy evaluation for each image.",
                                        "name": "TEST_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STRICT",
                                            "value": "$(params.STRICT)"
                                        },
                                        {
                                            "name": "POLICY_CONFIGURATION",
                                            "value": "$(params.POLICY_CONFIGURATION)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "verify",
                                        "script": "echo \"running verify-conforma\"\n$(workspaces.source.path)/tssc/verify-conforma.sh\ncat ./results/verify-conforma/TEST_OUTPUT \u003e $(results.TEST_OUTPUT.path)\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.CONFORMA_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "download-sboms",
                            "params": [
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                },
                                {
                                    "name": "SBOM_IMAGES",
                                    "value": "$(tasks.get-images.results.SBOM_IMAGES)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Download SBOM from images",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Images to be considered for SBOM download.",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        },
                                        {
                                            "name": "IMAGES",
                                            "value": "$(params.SBOM_IMAGES)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "download",
                                        "script": "echo \"running download-sbom-from-url-in-attestation\"\n$(workspaces.source.path)/tssc/download-sbom-from-url-in-attestation.sh\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "upload-sboms",
                            "params": [
                                {
                                    "name": "TPA_SECRET",
                                    "value": "$(params.trustification-secret-name)"
                                }
                            ],
                            "runAfter": [
                                "download-sboms"
                            ],
                            "taskSpec": {
                                "description": "Upload SBOMs to Trustification",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "TPA Secret to obtain Trustification vars from.",
                                        "name": "TPA_SECRET",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "bombastic_api_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_id",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_secret",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_issuer_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "upload",
                                        "script": "echo \"running upload-sbom-to-trustification\"\n$(workspaces.source.path)/tssc/upload-sbom-to-trustification.sh\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "taskRunTemplate": {
                    "serviceAccountName": "pipeline"
                },
                "timeouts": {
                    "pipeline": "1h0m0s"
                },
                "workspaces": [
                    {
                        "name": "git-auth",
                        "secret": {
                            "secretName": "pac-gitauth-mykzml"
                        }
                    },
                    {
                        "name": "workspace",
                        "volumeClaimTemplate": {
                            "metadata": {
                                "creationTimestamp": null
                            },
                            "spec": {
                                "accessModes": [
                                    "ReadWriteOnce"
                                ],
                                "resources": {
                                    "requests": {
                                        "storage": "1Gi"
                                    }
                                }
                            },
                            "status": {}
                        }
                    }
                ]
            },
            "status": {
                "childReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotn0c97ef73b8d14bb91b5e1fa1923516ad-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet-bas0c97ef73b8d14bb91b5e1fa1923516ad-get-images",
                        "pipelineTaskName": "get-images"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotne0c97ef73b8d14bb91b5e1fa1923516ad-verify-conforma",
                        "pipelineTaskName": "verify-conforma",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-dotnet-basic-vmeijjfo:78c6611d2ec8131d6975bdc7b23fb5b2c7b1d1d4\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet0c97ef73b8d14bb91b5e1fa1923516ad-download-sboms",
                        "pipelineTaskName": "download-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-dotnet-basic-vmeijjfo:78c6611d2ec8131d6975bdc7b23fb5b2c7b1d1d4\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet-b0c97ef73b8d14bb91b5e1fa1923516ad-upload-sboms",
                        "pipelineTaskName": "upload-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-dotnet-basic-vmeijjfo:78c6611d2ec8131d6975bdc7b23fb5b2c7b1d1d4\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    }
                ],
                "completionTime": "2026-04-27T16:41:05Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-27T16:41:05Z",
                        "message": "Tasks Completed: 5 (Failed: 0, Cancelled 0), Skipped: 0",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Gitops repo url",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Gitops repo revision",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "default": "main",
                            "description": "The target branch for the pull request",
                            "name": "target-branch",
                            "type": "string"
                        },
                        {
                            "default": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7",
                            "description": "Enterprise Contract policy to validate against",
                            "name": "ec-policy-configuration",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should EC violations cause the pipeline to fail?",
                            "name": "ec-strict",
                            "type": "string"
                        },
                        {
                            "default": "k8s://$(context.pipelineRun.namespace)/cosign-pub",
                            "description": "The public key that EC should use to verify signatures",
                            "name": "ec-public-key",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should the pipeline fail when there are SBOMs to upload but Trustification is not properly configured (i.e. the secret is missing or doesn't have all the required keys)?",
                            "name": "fail-if-trustification-not-configured",
                            "type": "string"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-vmeijjfo-gitops"
                                },
                                {
                                    "name": "revision",
                                    "value": "004fc4c0449ffa39743d76278b20443eaaec2703"
                                },
                                {
                                    "name": "fetchTags",
                                    "value": "true"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "004fc4c0449ffa39743d76278b20443eaaec2703"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "get-images",
                            "params": [
                                {
                                    "name": "PUBLIC_KEY_URL",
                                    "value": "k8s://tssc-app-ci/cosign-pub"
                                },
                                {
                                    "name": "TARGET_BRANCH",
                                    "value": "main"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Extract images from deployment YAML to pass to Conforma for validation",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a valid k8s cosign reference, e.g. k8s://my-space/my-secret where my-secret contains the expected cosign.pub attribute.",
                                        "name": "PUBLIC_KEY_URL",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "If specified, will gather only the images that changed between the current revision and the target branch. Useful for pull requests. Note that the repository cloned on the source workspace must already contain the origin/$TARGET_BRANCH reference.\n",
                                        "name": "TARGET_BRANCH",
                                        "type": "string"
                                    },
                                    {
                                        "default": [
                                            "development",
                                            "stage",
                                            "prod"
                                        ],
                                        "description": "Gather images from the manifest files for the specified environments",
                                        "name": "ENVIRONMENTS",
                                        "type": "array"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Cosign base64 encoded public key fetched from secrets.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images with SBOMs to upload to Trustification \n",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images to be verified, in a format compatible with https://github.com/konflux-ci/build-definitions/tree/main/task/verify-enterprise-contract/0.1. When there are no images to verify, this is an empty string.\n",
                                        "name": "CONFORMA_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TARGET_BRANCH",
                                            "value": "$(params.TARGET_BRANCH)"
                                        },
                                        {
                                            "name": "PUBLIC_KEY_URL",
                                            "value": "$(params.PUBLIC_KEY_URL)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TARGET_BRANCH",
                                                "value": "$(params.TARGET_BRANCH)"
                                            },
                                            {
                                                "name": "PUBLIC_KEY_URL",
                                                "value": "$(params.PUBLIC_KEY_URL)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "pwd\nls -la\n# Sync scripts to the writable workspace\ncp -rf /work/tssc/ $(workspaces.source.path)/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e $(workspaces.source.path)/tssc/common.sh\necho \"Successfully patched $(workspaces.source.path)/tssc/common.sh\"\n\necho \"Parsing public key url\"\nCLEAN_URL=\"${PUBLIC_KEY_URL#k8s://}\"\nNS=\"${CLEAN_URL%/*}\"\nSECRET=\"${CLEAN_URL##*/}\"\nCOSIGN_PUBLIC_KEY=$(oc get secrets $SECRET -n $NS -o json | jq -r '.data.\"cosign.pub\"')\necho $COSIGN_PUBLIC_KEY \u003e $(results.COSIGN_PUBLIC_KEY.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TARGET_BRANCH",
                                                "value": "$(params.TARGET_BRANCH)"
                                            },
                                            {
                                                "name": "PUBLIC_KEY_URL",
                                                "value": "$(params.PUBLIC_KEY_URL)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "get-images",
                                        "script": "echo \"running gather-images-to-upload-sbom\"\n$(workspaces.source.path)/tssc/gather-images-to-upload-sbom.sh\nmv ./results/gather-deploy-images ./results/sbom-images \ncat ./results/sbom-images/IMAGES_TO_VERIFY \u003e $(results.SBOM_IMAGES.path)\n\necho \"running gather-deploy-images\"\n$(workspaces.source.path)/tssc/gather-deploy-images.sh\ncat ./results/gather-deploy-images/IMAGES_TO_VERIFY \u003e $(results.CONFORMA_IMAGES.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "verify-conforma",
                            "params": [
                                {
                                    "name": "STRICT",
                                    "value": "true"
                                },
                                {
                                    "name": "POLICY_CONFIGURATION",
                                    "value": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7"
                                },
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Verify the enterprise contract is met",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "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": "true",
                                        "description": "Fail the task if policy fails. Set to `\"false\"` to disable it.",
                                        "name": "STRICT",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Short summary of the policy evaluation for each image.",
                                        "name": "TEST_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STRICT",
                                            "value": "$(params.STRICT)"
                                        },
                                        {
                                            "name": "POLICY_CONFIGURATION",
                                            "value": "$(params.POLICY_CONFIGURATION)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STRICT",
                                                "value": "$(params.STRICT)"
                                            },
                                            {
                                                "name": "POLICY_CONFIGURATION",
                                                "value": "$(params.POLICY_CONFIGURATION)"
                                            },
                                            {
                                                "name": "REKOR_HOST",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rekor_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TUF_MIRROR",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "tuf_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "value": "$(params.COSIGN_PUBLIC_KEY)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "verify",
                                        "script": "echo \"running verify-conforma\"\n$(workspaces.source.path)/tssc/verify-conforma.sh\ncat ./results/verify-conforma/TEST_OUTPUT \u003e $(results.TEST_OUTPUT.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.CONFORMA_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "download-sboms",
                            "params": [
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                },
                                {
                                    "name": "SBOM_IMAGES",
                                    "value": "$(tasks.get-images.results.SBOM_IMAGES)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Download SBOM from images",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Images to be considered for SBOM download.",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        },
                                        {
                                            "name": "IMAGES",
                                            "value": "$(params.SBOM_IMAGES)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "value": "$(params.COSIGN_PUBLIC_KEY)"
                                            },
                                            {
                                                "name": "IMAGES",
                                                "value": "$(params.SBOM_IMAGES)"
                                            },
                                            {
                                                "name": "REKOR_HOST",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rekor_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TUF_MIRROR",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "tuf_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "download",
                                        "script": "echo \"running download-sbom-from-url-in-attestation\"\n$(workspaces.source.path)/tssc/download-sbom-from-url-in-attestation.sh\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "upload-sboms",
                            "params": [
                                {
                                    "name": "TPA_SECRET",
                                    "value": "tpa-secret"
                                }
                            ],
                            "runAfter": [
                                "download-sboms"
                            ],
                            "taskSpec": {
                                "description": "Upload SBOMs to Trustification",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "TPA Secret to obtain Trustification vars from.",
                                        "name": "TPA_SECRET",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "bombastic_api_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_id",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_secret",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_issuer_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "bombastic_api_url",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_client_id",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_client_secret",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_issuer_url",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "upload",
                                        "script": "echo \"running upload-sbom-to-trustification\"\n$(workspaces.source.path)/tssc/upload-sbom-to-trustification.sh\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "startTime": "2026-04-27T16:40:14Z"
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "PipelineRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "chains.tekton.dev/transparency": "https://rekor-server-tssc-tas.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/api/v1/log/entries?logIndex=25",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "73233178743",
                    "pipelinesascode.tekton.dev/controller-info": "{\"name\":\"default\",\"configmap\":\"pipelines-as-code\",\"secret\":\"pipelines-as-code-secret\", \"gRepo\": \"pipelines-as-code\"}",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/git-auth-secret": "pac-gitauth-itgqkh",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-dotnet-basic-vmeijjfo-on-pull-request-f2ccf",
                    "pipelinesascode.tekton.dev/max-keep-runs": "2",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-dotnet-basic-vmeijjfo-on-pull-request",
                    "pipelinesascode.tekton.dev/pipeline": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/pipelines/docker-build-tssc.yaml",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-vmeijjfo",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-dotnet-basic-vmeijjfo-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "abad8e8b80b47d041f6127e98c81197261772eac",
                    "pipelinesascode.tekton.dev/sha-title": "Test PR from TSSC e2e test",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-vmeijjfo/commit/abad8e8b80b47d041f6127e98c81197261772eac",
                    "pipelinesascode.tekton.dev/source-branch": "test-branch-1777307513937",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-vmeijjfo",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/task-0": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/init.yaml",
                    "pipelinesascode.tekton.dev/task-1": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/git-clone.yaml",
                    "pipelinesascode.tekton.dev/task-10": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/deploy-workload.yaml",
                    "pipelinesascode.tekton.dev/task-11": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/scan-workload.yaml",
                    "pipelinesascode.tekton.dev/task-12": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/summarize-workload.yaml",
                    "pipelinesascode.tekton.dev/task-13": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/show-workload-sbom.yaml",
                    "pipelinesascode.tekton.dev/task-14": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/deploy-workload-check.yaml",
                    "pipelinesascode.tekton.dev/task-2": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/buildah-rhtap.yaml",
                    "pipelinesascode.tekton.dev/task-3": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-image-check.yaml",
                    "pipelinesascode.tekton.dev/task-4": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-image-scan.yaml",
                    "pipelinesascode.tekton.dev/task-5": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-deploy-check.yaml",
                    "pipelinesascode.tekton.dev/task-6": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/update-deployment.yaml",
                    "pipelinesascode.tekton.dev/task-7": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/show-sbom-rhdh.yaml",
                    "pipelinesascode.tekton.dev/task-8": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/summary.yaml",
                    "pipelinesascode.tekton.dev/task-9": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/build-workload.yaml",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-dotnet-basic-vmeijjfo",
                    "results.tekton.dev/record": "tssc-app-ci/results/623ed51b-1109-4245-8ae5-c2f80e78774e/records/623ed51b-1109-4245-8ae5-c2f80e78774e",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-dotnet-basic-vmeijjfo\",\"commit\":\"abad8e8b80b47d041f6127e98c81197261772eac\",\"eventType\":\"pull_request\",\"pull_request-id\":1}",
                    "results.tekton.dev/result": "tssc-app-ci/results/623ed51b-1109-4245-8ae5-c2f80e78774e",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-27T16:32:05Z",
                "finalizers": [
                    "results.tekton.dev/pipelinerun",
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer"
                ],
                "generateName": "e2e-tests-dotnet-basic-vmeijjfo-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-dotnet-basic-vmeijjfo",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-dotnet-basic-vmeijjfo",
                    "backstage.io/kubernetes-id": "e2e-tests-dotnet-basic-vmeijjfo",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-dotnet-basic-vmeijjfo",
                    "pipelinesascode.tekton.dev/check-run-id": "73233178743",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-dotnet-basic-vmeijjfo-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-dotnet-basic-vmeijjfo-repository",
                    "pipelinesascode.tekton.dev/sha": "abad8e8b80b47d041f6127e98c81197261772eac",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-dotnet-basic-vmeijjfo",
                    "tekton.dev/pipeline": "e2e-tests-dotnet-basic-vmeijjfo-on-pull-request-f2ccf"
                },
                "name": "e2e-tests-dotnet-basic-vmeijjfo-on-pull-request-f2ccf",
                "namespace": "tssc-app-ci",
                "resourceVersion": "42862",
                "uid": "623ed51b-1109-4245-8ae5-c2f80e78774e"
            },
            "spec": {
                "params": [
                    {
                        "name": "dockerfile",
                        "value": "docker/Dockerfile"
                    },
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-vmeijjfo"
                    },
                    {
                        "name": "image-expires-after",
                        "value": "5d"
                    },
                    {
                        "name": "output-image",
                        "value": "quay.io/rhtap_qe/e2e-tests-dotnet-basic-vmeijjfo:on-pr-abad8e8b80b47d041f6127e98c81197261772eac"
                    },
                    {
                        "name": "path-context",
                        "value": "."
                    },
                    {
                        "name": "revision",
                        "value": "abad8e8b80b47d041f6127e98c81197261772eac"
                    },
                    {
                        "name": "event-type",
                        "value": "pull_request"
                    },
                    {
                        "name": "gitops-auth-secret-name",
                        "value": "gitops-auth-secret"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Source Repository URL",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Revision of the Source Repository",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "description": "Fully Qualified Output Image",
                            "name": "output-image",
                            "type": "string"
                        },
                        {
                            "default": ".",
                            "description": "Path to the source code of an application's component from where to build image.",
                            "name": "path-context",
                            "type": "string"
                        },
                        {
                            "default": "Dockerfile",
                            "description": "Path to the Dockerfile inside the context specified by parameter path-context",
                            "name": "dockerfile",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Force rebuild image",
                            "name": "rebuild",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Image tag expiration time, time values could be something like 1h, 2d, 3w for hours, days, and weeks, respectively.",
                            "name": "image-expires-after",
                            "type": "string"
                        },
                        {
                            "default": "rox-api-token",
                            "name": "stackrox-secret",
                            "type": "string"
                        },
                        {
                            "default": "gitops-auth-secret",
                            "description": "Secret name to enable this pipeline to update the gitops repo with the new image. ",
                            "name": "gitops-auth-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "cosign-pub",
                            "description": "Secret name to enable verify cosign signature. ",
                            "name": "cosign-public-key-secret",
                            "type": "string"
                        },
                        {
                            "default": "push",
                            "description": "Event that triggered the pipeline run, e.g. push, pull_request",
                            "name": "event-type",
                            "type": "string"
                        },
                        {
                            "default": [],
                            "description": "Array of --build-arg values (\"arg=value\" strings) for buildah",
                            "name": "build-args",
                            "type": "array"
                        },
                        {
                            "default": "",
                            "description": "Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                            "name": "build-args-file",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Digest of the image just built",
                            "name": "IMAGE_DIGEST",
                            "value": "$(tasks.build.results.IMAGE_DIGEST)"
                        },
                        {
                            "description": "Image repository and tag where the built image was pushed",
                            "name": "IMAGE_URL",
                            "value": "$(tasks.build.results.IMAGE_URL)"
                        },
                        {
                            "description": "Digests of the base images used for build",
                            "name": "BASE_IMAGES_DIGESTS",
                            "value": "$(tasks.build.results.BASE_IMAGES_DIGESTS)"
                        },
                        {
                            "description": "Link to the SBOM layer pushed to the registry",
                            "name": "SBOM_BLOB_URL",
                            "value": "$(tasks.build.results.SBOM_BLOB_URL)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_URL",
                            "value": "$(tasks.clone-repository.results.url)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_COMMIT",
                            "value": "$(tasks.clone-repository.results.commit)"
                        },
                        {
                            "description": "",
                            "name": "ACS_SCAN_OUTPUT",
                            "value": "$(tasks.scan.results.SCAN_OUTPUT)"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "$(params.git-url)"
                                },
                                {
                                    "name": "revision",
                                    "value": "$(params.revision)"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "$(params.revision)"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "build",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "cosign-public-secret-name",
                                    "value": "$(params.cosign-public-key-secret)"
                                },
                                {
                                    "name": "tpa_secret_name",
                                    "value": "$(params.trustification-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "DOCKERFILE",
                                    "value": "$(params.dockerfile)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                },
                                {
                                    "name": "BUILD_ARGS",
                                    "value": [
                                        "$(params.build-args[*])"
                                    ]
                                },
                                {
                                    "name": "BUILD_ARGS_FILE",
                                    "value": "$(params.build-args-file)"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Builds source code into a container image and pushes the image into container registry using buildah tool.\nIn addition it generates a SBOM file, injects the SBOM file into final container image and pushes the SBOM file as separate image using cosign tool.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "build-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "./Dockerfile",
                                        "description": "Path to the Dockerfile to build.",
                                        "name": "DOCKERFILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry)",
                                        "name": "TLSVERIFY",
                                        "type": "string"
                                    },
                                    {
                                        "default": [],
                                        "description": "Array of --build-arg values (\"arg=value\" strings)",
                                        "name": "BUILD_ARGS",
                                        "type": "array"
                                    },
                                    {
                                        "default": "",
                                        "description": "Path to a file with build arguments, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                                        "name": "BUILD_ARGS_FILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Digest of the image just built",
                                        "name": "IMAGE_DIGEST",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Image repository and tag where the built image was pushed",
                                        "name": "IMAGE_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Digests of the base images used for build",
                                        "name": "BASE_IMAGES_DIGESTS",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Link to the SBOM layer pushed to the registry as part of an OCI artifact.",
                                        "name": "SBOM_BLOB_URL",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "DOCKERFILE",
                                            "value": "$(params.DOCKERFILE)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "TLSVERIFY",
                                            "value": "$(params.TLSVERIFY)"
                                        },
                                        {
                                            "name": "BUILD_ARGS_FILE",
                                            "value": "$(params.BUILD_ARGS_FILE)"
                                        },
                                        {
                                            "name": "_BUILDAH_STARTED_IN_USERNS"
                                        },
                                        {
                                            "name": "BUILDAH_ISOLATION",
                                            "value": "chroot"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_PASSWORD",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_KEY",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.tpa_secret_name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "cosign.pub",
                                                    "name": "$(params.cosign-public-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "# Sync scripts to the writable workspace\ncp -rf /work/tssc/ /workspace/source/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e /workspace/source/tssc/common.sh\necho \"Successfully patched /workspace/source/tssc/common.sh\"\necho \"running init\"\npwd\nls -la\n/workspace/source/tssc/init.sh\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    },
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "build",
                                        "script": "echo \"running buildah-tssc\"\n/workspace/source/tssc/buildah-tssc.sh\ncat ./results/buildah-tssc/BASE_IMAGES_DIGESTS \u003e $(results.BASE_IMAGES_DIGESTS.path)\ncat ./results/buildah-tssc/IMAGE_DIGEST \u003e $(results.IMAGE_DIGEST.path)\ncat ./results/buildah-tssc/IMAGE_URL \u003e $(results.IMAGE_URL.path)\ncat ./results/buildah-tssc/SBOM_BLOB_URL \u003e $(results.SBOM_BLOB_URL.path)\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deploy",
                            "params": [
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Deploy built image to development environment.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy",
                                        "script": "echo \"running update-deployment\"\n/workspace/source/tssc/update-deployment.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(params.event-type)",
                                    "operator": "notin",
                                    "values": [
                                        "pull_request",
                                        "Merge Request"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deployment-check",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload-check",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy-check",
                                        "script": "echo \"running acs-deploy-check\"\n/workspace/source/tssc/acs-deploy-check.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(params.event-type)",
                                    "operator": "in",
                                    "values": [
                                        "push",
                                        "Push"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "scan",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "scan-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "scan",
                                        "script": "echo \"running acs-image-check\"\n/workspace/source/tssc/acs-image-check.sh\necho \"running acs-image-scan\"\n/workspace/source/tssc/acs-image-scan.sh\ncat ./results/acs-image-scan/SCAN_OUTPUT \u003e $(results.SCAN_OUTPUT.path)\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "show-sbom",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Show SBOM report for the built image.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "show-workload-sbom",
                                        "task.output.location": "results",
                                        "task.results.format": "application/text",
                                        "task.results.key": "LINK_TO_SBOM",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Placeholder result meant to make RHDH identify this task as the producer of the SBOM logs.",
                                        "name": "LINK_TO_SBOM",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "show-sbom",
                                        "script": "echo \"running show-sbom-rhdh\"\n/workspace/source/tssc/show-sbom-rhdh.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "summarize",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Summarize all the steps in the build pipeline.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "summarize-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "summary",
                                        "script": "echo \"running summary\"\n/workspace/source/tssc/summary.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "taskRunTemplate": {
                    "serviceAccountName": "pipeline"
                },
                "timeouts": {
                    "pipeline": "1h0m0s"
                },
                "workspaces": [
                    {
                        "name": "git-auth",
                        "secret": {
                            "secretName": "pac-gitauth-itgqkh"
                        }
                    },
                    {
                        "name": "workspace",
                        "volumeClaimTemplate": {
                            "metadata": {
                                "creationTimestamp": null
                            },
                            "spec": {
                                "accessModes": [
                                    "ReadWriteOnce"
                                ],
                                "resources": {
                                    "requests": {
                                        "storage": "1Gi"
                                    }
                                }
                            },
                            "status": {}
                        }
                    }
                ]
            },
            "status": {
                "childReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotn86cdf20f0c1c6cfacbaf83c0156863cf-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet-basic-vmeijjfo-on-pull-request-f2ccf-build",
                        "pipelineTaskName": "build"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet-basic-vmeijjfo-on-pull-request-f2ccf-scan",
                        "pipelineTaskName": "scan"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet-basic-vmeijjfo-on-pull-request-f2ccf-show-sbom",
                        "pipelineTaskName": "show-sbom"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet-basic-vmeijjfo-on-pull-request-f2ccf-summarize",
                        "pipelineTaskName": "summarize"
                    }
                ],
                "completionTime": "2026-04-27T16:34:26Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-27T16:34:26Z",
                        "message": "Tasks Completed: 5 (Failed: 0, Cancelled 0), Skipped: 2",
                        "reason": "Completed",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Source Repository URL",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Revision of the Source Repository",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "description": "Fully Qualified Output Image",
                            "name": "output-image",
                            "type": "string"
                        },
                        {
                            "default": ".",
                            "description": "Path to the source code of an application's component from where to build image.",
                            "name": "path-context",
                            "type": "string"
                        },
                        {
                            "default": "Dockerfile",
                            "description": "Path to the Dockerfile inside the context specified by parameter path-context",
                            "name": "dockerfile",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Force rebuild image",
                            "name": "rebuild",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Image tag expiration time, time values could be something like 1h, 2d, 3w for hours, days, and weeks, respectively.",
                            "name": "image-expires-after",
                            "type": "string"
                        },
                        {
                            "default": "rox-api-token",
                            "name": "stackrox-secret",
                            "type": "string"
                        },
                        {
                            "default": "gitops-auth-secret",
                            "description": "Secret name to enable this pipeline to update the gitops repo with the new image. ",
                            "name": "gitops-auth-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "cosign-pub",
                            "description": "Secret name to enable verify cosign signature. ",
                            "name": "cosign-public-key-secret",
                            "type": "string"
                        },
                        {
                            "default": "push",
                            "description": "Event that triggered the pipeline run, e.g. push, pull_request",
                            "name": "event-type",
                            "type": "string"
                        },
                        {
                            "default": [],
                            "description": "Array of --build-arg values (\"arg=value\" strings) for buildah",
                            "name": "build-args",
                            "type": "array"
                        },
                        {
                            "default": "",
                            "description": "Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                            "name": "build-args-file",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Digest of the image just built",
                            "name": "IMAGE_DIGEST",
                            "value": "$(tasks.build.results.IMAGE_DIGEST)"
                        },
                        {
                            "description": "Image repository and tag where the built image was pushed",
                            "name": "IMAGE_URL",
                            "value": "$(tasks.build.results.IMAGE_URL)"
                        },
                        {
                            "description": "Digests of the base images used for build",
                            "name": "BASE_IMAGES_DIGESTS",
                            "value": "$(tasks.build.results.BASE_IMAGES_DIGESTS)"
                        },
                        {
                            "description": "Link to the SBOM layer pushed to the registry",
                            "name": "SBOM_BLOB_URL",
                            "value": "$(tasks.build.results.SBOM_BLOB_URL)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_URL",
                            "value": "$(tasks.clone-repository.results.url)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_COMMIT",
                            "value": "$(tasks.clone-repository.results.commit)"
                        },
                        {
                            "description": "",
                            "name": "ACS_SCAN_OUTPUT",
                            "value": "$(tasks.scan.results.SCAN_OUTPUT)"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-vmeijjfo"
                                },
                                {
                                    "name": "revision",
                                    "value": "abad8e8b80b47d041f6127e98c81197261772eac"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "abad8e8b80b47d041f6127e98c81197261772eac"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "build",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "cosign-public-secret-name",
                                    "value": "cosign-pub"
                                },
                                {
                                    "name": "tpa_secret_name",
                                    "value": "tpa-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-dotnet-basic-vmeijjfo:on-pr-abad8e8b80b47d041f6127e98c81197261772eac"
                                },
                                {
                                    "name": "DOCKERFILE",
                                    "value": "docker/Dockerfile"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                },
                                {
                                    "name": "BUILD_ARGS",
                                    "value": []
                                },
                                {
                                    "name": "BUILD_ARGS_FILE",
                                    "value": ""
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Builds source code into a container image and pushes the image into container registry using buildah tool.\nIn addition it generates a SBOM file, injects the SBOM file into final container image and pushes the SBOM file as separate image using cosign tool.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "build-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "./Dockerfile",
                                        "description": "Path to the Dockerfile to build.",
                                        "name": "DOCKERFILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry)",
                                        "name": "TLSVERIFY",
                                        "type": "string"
                                    },
                                    {
                                        "default": [],
                                        "description": "Array of --build-arg values (\"arg=value\" strings)",
                                        "name": "BUILD_ARGS",
                                        "type": "array"
                                    },
                                    {
                                        "default": "",
                                        "description": "Path to a file with build arguments, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                                        "name": "BUILD_ARGS_FILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Digest of the image just built",
                                        "name": "IMAGE_DIGEST",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Image repository and tag where the built image was pushed",
                                        "name": "IMAGE_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Digests of the base images used for build",
                                        "name": "BASE_IMAGES_DIGESTS",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Link to the SBOM layer pushed to the registry as part of an OCI artifact.",
                                        "name": "SBOM_BLOB_URL",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "DOCKERFILE",
                                            "value": "$(params.DOCKERFILE)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "TLSVERIFY",
                                            "value": "$(params.TLSVERIFY)"
                                        },
                                        {
                                            "name": "BUILD_ARGS_FILE",
                                            "value": "$(params.BUILD_ARGS_FILE)"
                                        },
                                        {
                                            "name": "_BUILDAH_STARTED_IN_USERNS"
                                        },
                                        {
                                            "name": "BUILDAH_ISOLATION",
                                            "value": "chroot"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_PASSWORD",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_KEY",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.tpa_secret_name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "cosign.pub",
                                                    "name": "$(params.cosign-public-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "DOCKERFILE",
                                                "value": "$(params.DOCKERFILE)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "TLSVERIFY",
                                                "value": "$(params.TLSVERIFY)"
                                            },
                                            {
                                                "name": "BUILD_ARGS_FILE",
                                                "value": "$(params.BUILD_ARGS_FILE)"
                                            },
                                            {
                                                "name": "_BUILDAH_STARTED_IN_USERNS"
                                            },
                                            {
                                                "name": "BUILDAH_ISOLATION",
                                                "value": "chroot"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_PASSWORD",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_KEY",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.tpa_secret_name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "cosign.pub",
                                                        "name": "$(params.cosign-public-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "# Sync scripts to the writable workspace\ncp -rf /work/tssc/ /workspace/source/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e /workspace/source/tssc/common.sh\necho \"Successfully patched /workspace/source/tssc/common.sh\"\necho \"running init\"\npwd\nls -la\n/workspace/source/tssc/init.sh\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    },
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "DOCKERFILE",
                                                "value": "$(params.DOCKERFILE)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "TLSVERIFY",
                                                "value": "$(params.TLSVERIFY)"
                                            },
                                            {
                                                "name": "BUILD_ARGS_FILE",
                                                "value": "$(params.BUILD_ARGS_FILE)"
                                            },
                                            {
                                                "name": "_BUILDAH_STARTED_IN_USERNS"
                                            },
                                            {
                                                "name": "BUILDAH_ISOLATION",
                                                "value": "chroot"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_PASSWORD",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_KEY",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.tpa_secret_name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "cosign.pub",
                                                        "name": "$(params.cosign-public-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "build",
                                        "script": "echo \"running buildah-tssc\"\n/workspace/source/tssc/buildah-tssc.sh\ncat ./results/buildah-tssc/BASE_IMAGES_DIGESTS \u003e $(results.BASE_IMAGES_DIGESTS.path)\ncat ./results/buildah-tssc/IMAGE_DIGEST \u003e $(results.IMAGE_DIGEST.path)\ncat ./results/buildah-tssc/IMAGE_URL \u003e $(results.IMAGE_URL.path)\ncat ./results/buildah-tssc/SBOM_BLOB_URL \u003e $(results.SBOM_BLOB_URL.path)\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deploy",
                            "params": [
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-dotnet-basic-vmeijjfo:on-pr-abad8e8b80b47d041f6127e98c81197261772eac"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Deploy built image to development environment.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy",
                                        "script": "echo \"running update-deployment\"\n/workspace/source/tssc/update-deployment.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "pull_request",
                                    "operator": "notin",
                                    "values": [
                                        "pull_request",
                                        "Merge Request"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deployment-check",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-dotnet-basic-vmeijjfo:on-pr-abad8e8b80b47d041f6127e98c81197261772eac"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload-check",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy-check",
                                        "script": "echo \"running acs-deploy-check\"\n/workspace/source/tssc/acs-deploy-check.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "pull_request",
                                    "operator": "in",
                                    "values": [
                                        "push",
                                        "Push"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "scan",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-dotnet-basic-vmeijjfo:on-pr-abad8e8b80b47d041f6127e98c81197261772eac"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "scan-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "scan",
                                        "script": "echo \"running acs-image-check\"\n/workspace/source/tssc/acs-image-check.sh\necho \"running acs-image-scan\"\n/workspace/source/tssc/acs-image-scan.sh\ncat ./results/acs-image-scan/SCAN_OUTPUT \u003e $(results.SCAN_OUTPUT.path)\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "show-sbom",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-dotnet-basic-vmeijjfo:on-pr-abad8e8b80b47d041f6127e98c81197261772eac"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Show SBOM report for the built image.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "show-workload-sbom",
                                        "task.output.location": "results",
                                        "task.results.format": "application/text",
                                        "task.results.key": "LINK_TO_SBOM",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Placeholder result meant to make RHDH identify this task as the producer of the SBOM logs.",
                                        "name": "LINK_TO_SBOM",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "show-sbom",
                                        "script": "echo \"running show-sbom-rhdh\"\n/workspace/source/tssc/show-sbom-rhdh.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "summarize",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-dotnet-basic-vmeijjfo:on-pr-abad8e8b80b47d041f6127e98c81197261772eac"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Summarize all the steps in the build pipeline.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "summarize-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "summary",
                                        "script": "echo \"running summary\"\n/workspace/source/tssc/summary.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "results": [
                    {
                        "name": "IMAGE_DIGEST",
                        "value": "sha256:721597a1fbbeb8e08b88b5f5330b781fb7f9dbb840b922fec8c6cc82f1219546"
                    },
                    {
                        "name": "IMAGE_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-dotnet-basic-vmeijjfo:on-pr-abad8e8b80b47d041f6127e98c81197261772eac"
                    },
                    {
                        "name": "BASE_IMAGES_DIGESTS",
                        "value": "registry.access.redhat.com/ubi8/dotnet-60:6.0-56@sha256:70aa2652508c0f69839f586c8e0322ff7ff2a65306f6749ff889b57a1e8eb841\n"
                    },
                    {
                        "name": "SBOM_BLOB_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-dotnet-basic-vmeijjfo@sha256:df1bc74ebfca9ee124f95aa645fab528992472f2fb860eaac5e097aad370c504"
                    },
                    {
                        "name": "CHAINS-GIT_URL",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-vmeijjfo"
                    },
                    {
                        "name": "CHAINS-GIT_COMMIT",
                        "value": "abad8e8b80b47d041f6127e98c81197261772eac"
                    },
                    {
                        "name": "ACS_SCAN_OUTPUT",
                        "value": "{\"vulnerabilities\":{\"critical\":0,\"high\":44,\"medium\":140,\"low\":224}}\n"
                    }
                ],
                "skippedTasks": [
                    {
                        "name": "deploy",
                        "reason": "When Expressions evaluated to false",
                        "whenExpressions": [
                            {
                                "input": "pull_request",
                                "operator": "notin",
                                "values": [
                                    "pull_request",
                                    "Merge Request"
                                ]
                            }
                        ]
                    },
                    {
                        "name": "deployment-check",
                        "reason": "When Expressions evaluated to false",
                        "whenExpressions": [
                            {
                                "input": "pull_request",
                                "operator": "in",
                                "values": [
                                    "push",
                                    "Push"
                                ]
                            }
                        ]
                    }
                ],
                "startTime": "2026-04-27T16:32:05Z"
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "PipelineRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "chains.tekton.dev/transparency": "https://rekor-server-tssc-tas.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/api/v1/log/entries?logIndex=92",
                    "pipelinesascode.tekton.dev/branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/check-run-id": "73233658716",
                    "pipelinesascode.tekton.dev/controller-info": "{\"name\":\"default\",\"configmap\":\"pipelines-as-code\",\"secret\":\"pipelines-as-code-secret\", \"gRepo\": \"pipelines-as-code\"}",
                    "pipelinesascode.tekton.dev/event-type": "push",
                    "pipelinesascode.tekton.dev/git-auth-secret": "pac-gitauth-hzjghy",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-dotnet-basic-vmeijjfo-on-push-qnzt8",
                    "pipelinesascode.tekton.dev/max-keep-runs": "2",
                    "pipelinesascode.tekton.dev/on-event": "[push]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-dotnet-basic-vmeijjfo-on-push",
                    "pipelinesascode.tekton.dev/pipeline": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/pipelines/docker-build-tssc.yaml",
                    "pipelinesascode.tekton.dev/repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-vmeijjfo",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-dotnet-basic-vmeijjfo-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "78c6611d2ec8131d6975bdc7b23fb5b2c7b1d1d4",
                    "pipelinesascode.tekton.dev/sha-title": "Merge pull request #1 from rhtap-rhdh-qe/test-branch-1777307513937",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-vmeijjfo/commit/78c6611d2ec8131d6975bdc7b23fb5b2c7b1d1d4",
                    "pipelinesascode.tekton.dev/source-branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-vmeijjfo",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/task-0": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/init.yaml",
                    "pipelinesascode.tekton.dev/task-1": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/git-clone.yaml",
                    "pipelinesascode.tekton.dev/task-10": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/deploy-workload.yaml",
                    "pipelinesascode.tekton.dev/task-11": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/scan-workload.yaml",
                    "pipelinesascode.tekton.dev/task-12": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/summarize-workload.yaml",
                    "pipelinesascode.tekton.dev/task-13": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/show-workload-sbom.yaml",
                    "pipelinesascode.tekton.dev/task-14": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/deploy-workload-check.yaml",
                    "pipelinesascode.tekton.dev/task-2": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/buildah-rhtap.yaml",
                    "pipelinesascode.tekton.dev/task-3": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-image-check.yaml",
                    "pipelinesascode.tekton.dev/task-4": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-image-scan.yaml",
                    "pipelinesascode.tekton.dev/task-5": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-deploy-check.yaml",
                    "pipelinesascode.tekton.dev/task-6": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/update-deployment.yaml",
                    "pipelinesascode.tekton.dev/task-7": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/show-sbom-rhdh.yaml",
                    "pipelinesascode.tekton.dev/task-8": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/summary.yaml",
                    "pipelinesascode.tekton.dev/task-9": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/build-workload.yaml",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-dotnet-basic-vmeijjfo",
                    "results.tekton.dev/record": "tssc-app-ci/results/301f7545-3496-4a3d-939e-301a4ba99425/records/301f7545-3496-4a3d-939e-301a4ba99425",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-dotnet-basic-vmeijjfo\",\"commit\":\"78c6611d2ec8131d6975bdc7b23fb5b2c7b1d1d4\",\"eventType\":\"push\"}",
                    "results.tekton.dev/result": "tssc-app-ci/results/301f7545-3496-4a3d-939e-301a4ba99425",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-27T16:34:57Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "results.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-dotnet-basic-vmeijjfo-on-push-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-dotnet-basic-vmeijjfo",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-dotnet-basic-vmeijjfo",
                    "backstage.io/kubernetes-id": "e2e-tests-dotnet-basic-vmeijjfo",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-dotnet-basic-vmeijjfo",
                    "pipelinesascode.tekton.dev/check-run-id": "73233658716",
                    "pipelinesascode.tekton.dev/event-type": "push",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-dotnet-basic-vmeijjfo-on-push",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-dotnet-basic-vmeijjfo-repository",
                    "pipelinesascode.tekton.dev/sha": "78c6611d2ec8131d6975bdc7b23fb5b2c7b1d1d4",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-dotnet-basic-vmeijjfo",
                    "tekton.dev/pipeline": "e2e-tests-dotnet-basic-vmeijjfo-on-push-qnzt8"
                },
                "name": "e2e-tests-dotnet-basic-vmeijjfo-on-push-qnzt8",
                "namespace": "tssc-app-ci",
                "resourceVersion": "48706",
                "uid": "301f7545-3496-4a3d-939e-301a4ba99425"
            },
            "spec": {
                "params": [
                    {
                        "name": "dockerfile",
                        "value": "docker/Dockerfile"
                    },
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-vmeijjfo"
                    },
                    {
                        "name": "image-expires-after",
                        "value": "5d"
                    },
                    {
                        "name": "output-image",
                        "value": "quay.io/rhtap_qe/e2e-tests-dotnet-basic-vmeijjfo:78c6611d2ec8131d6975bdc7b23fb5b2c7b1d1d4"
                    },
                    {
                        "name": "path-context",
                        "value": "."
                    },
                    {
                        "name": "revision",
                        "value": "78c6611d2ec8131d6975bdc7b23fb5b2c7b1d1d4"
                    },
                    {
                        "name": "event-type",
                        "value": "push"
                    },
                    {
                        "name": "gitops-auth-secret-name",
                        "value": "gitops-auth-secret"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Source Repository URL",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Revision of the Source Repository",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "description": "Fully Qualified Output Image",
                            "name": "output-image",
                            "type": "string"
                        },
                        {
                            "default": ".",
                            "description": "Path to the source code of an application's component from where to build image.",
                            "name": "path-context",
                            "type": "string"
                        },
                        {
                            "default": "Dockerfile",
                            "description": "Path to the Dockerfile inside the context specified by parameter path-context",
                            "name": "dockerfile",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Force rebuild image",
                            "name": "rebuild",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Image tag expiration time, time values could be something like 1h, 2d, 3w for hours, days, and weeks, respectively.",
                            "name": "image-expires-after",
                            "type": "string"
                        },
                        {
                            "default": "rox-api-token",
                            "name": "stackrox-secret",
                            "type": "string"
                        },
                        {
                            "default": "gitops-auth-secret",
                            "description": "Secret name to enable this pipeline to update the gitops repo with the new image. ",
                            "name": "gitops-auth-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "cosign-pub",
                            "description": "Secret name to enable verify cosign signature. ",
                            "name": "cosign-public-key-secret",
                            "type": "string"
                        },
                        {
                            "default": "push",
                            "description": "Event that triggered the pipeline run, e.g. push, pull_request",
                            "name": "event-type",
                            "type": "string"
                        },
                        {
                            "default": [],
                            "description": "Array of --build-arg values (\"arg=value\" strings) for buildah",
                            "name": "build-args",
                            "type": "array"
                        },
                        {
                            "default": "",
                            "description": "Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                            "name": "build-args-file",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Digest of the image just built",
                            "name": "IMAGE_DIGEST",
                            "value": "$(tasks.build.results.IMAGE_DIGEST)"
                        },
                        {
                            "description": "Image repository and tag where the built image was pushed",
                            "name": "IMAGE_URL",
                            "value": "$(tasks.build.results.IMAGE_URL)"
                        },
                        {
                            "description": "Digests of the base images used for build",
                            "name": "BASE_IMAGES_DIGESTS",
                            "value": "$(tasks.build.results.BASE_IMAGES_DIGESTS)"
                        },
                        {
                            "description": "Link to the SBOM layer pushed to the registry",
                            "name": "SBOM_BLOB_URL",
                            "value": "$(tasks.build.results.SBOM_BLOB_URL)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_URL",
                            "value": "$(tasks.clone-repository.results.url)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_COMMIT",
                            "value": "$(tasks.clone-repository.results.commit)"
                        },
                        {
                            "description": "",
                            "name": "ACS_SCAN_OUTPUT",
                            "value": "$(tasks.scan.results.SCAN_OUTPUT)"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "$(params.git-url)"
                                },
                                {
                                    "name": "revision",
                                    "value": "$(params.revision)"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "$(params.revision)"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "build",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "cosign-public-secret-name",
                                    "value": "$(params.cosign-public-key-secret)"
                                },
                                {
                                    "name": "tpa_secret_name",
                                    "value": "$(params.trustification-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "DOCKERFILE",
                                    "value": "$(params.dockerfile)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                },
                                {
                                    "name": "BUILD_ARGS",
                                    "value": [
                                        "$(params.build-args[*])"
                                    ]
                                },
                                {
                                    "name": "BUILD_ARGS_FILE",
                                    "value": "$(params.build-args-file)"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Builds source code into a container image and pushes the image into container registry using buildah tool.\nIn addition it generates a SBOM file, injects the SBOM file into final container image and pushes the SBOM file as separate image using cosign tool.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "build-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "./Dockerfile",
                                        "description": "Path to the Dockerfile to build.",
                                        "name": "DOCKERFILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry)",
                                        "name": "TLSVERIFY",
                                        "type": "string"
                                    },
                                    {
                                        "default": [],
                                        "description": "Array of --build-arg values (\"arg=value\" strings)",
                                        "name": "BUILD_ARGS",
                                        "type": "array"
                                    },
                                    {
                                        "default": "",
                                        "description": "Path to a file with build arguments, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                                        "name": "BUILD_ARGS_FILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Digest of the image just built",
                                        "name": "IMAGE_DIGEST",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Image repository and tag where the built image was pushed",
                                        "name": "IMAGE_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Digests of the base images used for build",
                                        "name": "BASE_IMAGES_DIGESTS",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Link to the SBOM layer pushed to the registry as part of an OCI artifact.",
                                        "name": "SBOM_BLOB_URL",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "DOCKERFILE",
                                            "value": "$(params.DOCKERFILE)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "TLSVERIFY",
                                            "value": "$(params.TLSVERIFY)"
                                        },
                                        {
                                            "name": "BUILD_ARGS_FILE",
                                            "value": "$(params.BUILD_ARGS_FILE)"
                                        },
                                        {
                                            "name": "_BUILDAH_STARTED_IN_USERNS"
                                        },
                                        {
                                            "name": "BUILDAH_ISOLATION",
                                            "value": "chroot"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_PASSWORD",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_KEY",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.tpa_secret_name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "cosign.pub",
                                                    "name": "$(params.cosign-public-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "# Sync scripts to the writable workspace\ncp -rf /work/tssc/ /workspace/source/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e /workspace/source/tssc/common.sh\necho \"Successfully patched /workspace/source/tssc/common.sh\"\necho \"running init\"\npwd\nls -la\n/workspace/source/tssc/init.sh\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    },
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "build",
                                        "script": "echo \"running buildah-tssc\"\n/workspace/source/tssc/buildah-tssc.sh\ncat ./results/buildah-tssc/BASE_IMAGES_DIGESTS \u003e $(results.BASE_IMAGES_DIGESTS.path)\ncat ./results/buildah-tssc/IMAGE_DIGEST \u003e $(results.IMAGE_DIGEST.path)\ncat ./results/buildah-tssc/IMAGE_URL \u003e $(results.IMAGE_URL.path)\ncat ./results/buildah-tssc/SBOM_BLOB_URL \u003e $(results.SBOM_BLOB_URL.path)\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deploy",
                            "params": [
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Deploy built image to development environment.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy",
                                        "script": "echo \"running update-deployment\"\n/workspace/source/tssc/update-deployment.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(params.event-type)",
                                    "operator": "notin",
                                    "values": [
                                        "pull_request",
                                        "Merge Request"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deployment-check",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload-check",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy-check",
                                        "script": "echo \"running acs-deploy-check\"\n/workspace/source/tssc/acs-deploy-check.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(params.event-type)",
                                    "operator": "in",
                                    "values": [
                                        "push",
                                        "Push"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "scan",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "scan-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "scan",
                                        "script": "echo \"running acs-image-check\"\n/workspace/source/tssc/acs-image-check.sh\necho \"running acs-image-scan\"\n/workspace/source/tssc/acs-image-scan.sh\ncat ./results/acs-image-scan/SCAN_OUTPUT \u003e $(results.SCAN_OUTPUT.path)\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "show-sbom",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Show SBOM report for the built image.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "show-workload-sbom",
                                        "task.output.location": "results",
                                        "task.results.format": "application/text",
                                        "task.results.key": "LINK_TO_SBOM",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Placeholder result meant to make RHDH identify this task as the producer of the SBOM logs.",
                                        "name": "LINK_TO_SBOM",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "show-sbom",
                                        "script": "echo \"running show-sbom-rhdh\"\n/workspace/source/tssc/show-sbom-rhdh.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "summarize",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Summarize all the steps in the build pipeline.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "summarize-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "summary",
                                        "script": "echo \"running summary\"\n/workspace/source/tssc/summary.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "taskRunTemplate": {
                    "serviceAccountName": "pipeline"
                },
                "timeouts": {
                    "pipeline": "1h0m0s"
                },
                "workspaces": [
                    {
                        "name": "gitops-auth",
                        "secret": {
                            "secretName": "$(params.gitops-auth-secret-name)"
                        }
                    },
                    {
                        "name": "git-auth",
                        "secret": {
                            "secretName": "pac-gitauth-hzjghy"
                        }
                    },
                    {
                        "name": "workspace",
                        "volumeClaimTemplate": {
                            "metadata": {
                                "creationTimestamp": null
                            },
                            "spec": {
                                "accessModes": [
                                    "ReadWriteOnce"
                                ],
                                "resources": {
                                    "requests": {
                                        "storage": "1Gi"
                                    }
                                }
                            },
                            "status": {}
                        }
                    }
                ]
            },
            "status": {
                "childReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet-basic-vmeijjfo-on-push-qnzt8-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet-basic-vmeijjfo-on-push-qnzt8-build",
                        "pipelineTaskName": "build"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet-basic-vmeijjfo-on-push-qnzt8-deploy",
                        "pipelineTaskName": "deploy",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "notin",
                                "values": [
                                    "pull_request",
                                    "Merge Request"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet-basic-vmeijjfo-on-push-qnzt8-deployment-check",
                        "pipelineTaskName": "deployment-check",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "in",
                                "values": [
                                    "push",
                                    "Push"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet-basic-vmeijjfo-on-push-qnzt8-scan",
                        "pipelineTaskName": "scan"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet-basic-vmeijjfo-on-push-qnzt8-show-sbom",
                        "pipelineTaskName": "show-sbom"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet-basic-vmeijjfo-on-push-qnzt8-summarize",
                        "pipelineTaskName": "summarize"
                    }
                ],
                "completionTime": "2026-04-27T16:37:16Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-27T16:37:16Z",
                        "message": "Tasks Completed: 7 (Failed: 0, Cancelled 0), Skipped: 0",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Source Repository URL",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Revision of the Source Repository",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "description": "Fully Qualified Output Image",
                            "name": "output-image",
                            "type": "string"
                        },
                        {
                            "default": ".",
                            "description": "Path to the source code of an application's component from where to build image.",
                            "name": "path-context",
                            "type": "string"
                        },
                        {
                            "default": "Dockerfile",
                            "description": "Path to the Dockerfile inside the context specified by parameter path-context",
                            "name": "dockerfile",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Force rebuild image",
                            "name": "rebuild",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Image tag expiration time, time values could be something like 1h, 2d, 3w for hours, days, and weeks, respectively.",
                            "name": "image-expires-after",
                            "type": "string"
                        },
                        {
                            "default": "rox-api-token",
                            "name": "stackrox-secret",
                            "type": "string"
                        },
                        {
                            "default": "gitops-auth-secret",
                            "description": "Secret name to enable this pipeline to update the gitops repo with the new image. ",
                            "name": "gitops-auth-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "cosign-pub",
                            "description": "Secret name to enable verify cosign signature. ",
                            "name": "cosign-public-key-secret",
                            "type": "string"
                        },
                        {
                            "default": "push",
                            "description": "Event that triggered the pipeline run, e.g. push, pull_request",
                            "name": "event-type",
                            "type": "string"
                        },
                        {
                            "default": [],
                            "description": "Array of --build-arg values (\"arg=value\" strings) for buildah",
                            "name": "build-args",
                            "type": "array"
                        },
                        {
                            "default": "",
                            "description": "Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                            "name": "build-args-file",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Digest of the image just built",
                            "name": "IMAGE_DIGEST",
                            "value": "$(tasks.build.results.IMAGE_DIGEST)"
                        },
                        {
                            "description": "Image repository and tag where the built image was pushed",
                            "name": "IMAGE_URL",
                            "value": "$(tasks.build.results.IMAGE_URL)"
                        },
                        {
                            "description": "Digests of the base images used for build",
                            "name": "BASE_IMAGES_DIGESTS",
                            "value": "$(tasks.build.results.BASE_IMAGES_DIGESTS)"
                        },
                        {
                            "description": "Link to the SBOM layer pushed to the registry",
                            "name": "SBOM_BLOB_URL",
                            "value": "$(tasks.build.results.SBOM_BLOB_URL)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_URL",
                            "value": "$(tasks.clone-repository.results.url)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_COMMIT",
                            "value": "$(tasks.clone-repository.results.commit)"
                        },
                        {
                            "description": "",
                            "name": "ACS_SCAN_OUTPUT",
                            "value": "$(tasks.scan.results.SCAN_OUTPUT)"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-vmeijjfo"
                                },
                                {
                                    "name": "revision",
                                    "value": "78c6611d2ec8131d6975bdc7b23fb5b2c7b1d1d4"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "78c6611d2ec8131d6975bdc7b23fb5b2c7b1d1d4"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "build",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "cosign-public-secret-name",
                                    "value": "cosign-pub"
                                },
                                {
                                    "name": "tpa_secret_name",
                                    "value": "tpa-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-dotnet-basic-vmeijjfo:78c6611d2ec8131d6975bdc7b23fb5b2c7b1d1d4"
                                },
                                {
                                    "name": "DOCKERFILE",
                                    "value": "docker/Dockerfile"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                },
                                {
                                    "name": "BUILD_ARGS",
                                    "value": []
                                },
                                {
                                    "name": "BUILD_ARGS_FILE",
                                    "value": ""
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Builds source code into a container image and pushes the image into container registry using buildah tool.\nIn addition it generates a SBOM file, injects the SBOM file into final container image and pushes the SBOM file as separate image using cosign tool.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "build-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "./Dockerfile",
                                        "description": "Path to the Dockerfile to build.",
                                        "name": "DOCKERFILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry)",
                                        "name": "TLSVERIFY",
                                        "type": "string"
                                    },
                                    {
                                        "default": [],
                                        "description": "Array of --build-arg values (\"arg=value\" strings)",
                                        "name": "BUILD_ARGS",
                                        "type": "array"
                                    },
                                    {
                                        "default": "",
                                        "description": "Path to a file with build arguments, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                                        "name": "BUILD_ARGS_FILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Digest of the image just built",
                                        "name": "IMAGE_DIGEST",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Image repository and tag where the built image was pushed",
                                        "name": "IMAGE_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Digests of the base images used for build",
                                        "name": "BASE_IMAGES_DIGESTS",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Link to the SBOM layer pushed to the registry as part of an OCI artifact.",
                                        "name": "SBOM_BLOB_URL",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "DOCKERFILE",
                                            "value": "$(params.DOCKERFILE)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "TLSVERIFY",
                                            "value": "$(params.TLSVERIFY)"
                                        },
                                        {
                                            "name": "BUILD_ARGS_FILE",
                                            "value": "$(params.BUILD_ARGS_FILE)"
                                        },
                                        {
                                            "name": "_BUILDAH_STARTED_IN_USERNS"
                                        },
                                        {
                                            "name": "BUILDAH_ISOLATION",
                                            "value": "chroot"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_PASSWORD",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_KEY",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.tpa_secret_name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "cosign.pub",
                                                    "name": "$(params.cosign-public-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "DOCKERFILE",
                                                "value": "$(params.DOCKERFILE)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "TLSVERIFY",
                                                "value": "$(params.TLSVERIFY)"
                                            },
                                            {
                                                "name": "BUILD_ARGS_FILE",
                                                "value": "$(params.BUILD_ARGS_FILE)"
                                            },
                                            {
                                                "name": "_BUILDAH_STARTED_IN_USERNS"
                                            },
                                            {
                                                "name": "BUILDAH_ISOLATION",
                                                "value": "chroot"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_PASSWORD",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_KEY",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.tpa_secret_name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "cosign.pub",
                                                        "name": "$(params.cosign-public-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "# Sync scripts to the writable workspace\ncp -rf /work/tssc/ /workspace/source/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e /workspace/source/tssc/common.sh\necho \"Successfully patched /workspace/source/tssc/common.sh\"\necho \"running init\"\npwd\nls -la\n/workspace/source/tssc/init.sh\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    },
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "DOCKERFILE",
                                                "value": "$(params.DOCKERFILE)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "TLSVERIFY",
                                                "value": "$(params.TLSVERIFY)"
                                            },
                                            {
                                                "name": "BUILD_ARGS_FILE",
                                                "value": "$(params.BUILD_ARGS_FILE)"
                                            },
                                            {
                                                "name": "_BUILDAH_STARTED_IN_USERNS"
                                            },
                                            {
                                                "name": "BUILDAH_ISOLATION",
                                                "value": "chroot"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_PASSWORD",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_KEY",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.tpa_secret_name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "cosign.pub",
                                                        "name": "$(params.cosign-public-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "build",
                                        "script": "echo \"running buildah-tssc\"\n/workspace/source/tssc/buildah-tssc.sh\ncat ./results/buildah-tssc/BASE_IMAGES_DIGESTS \u003e $(results.BASE_IMAGES_DIGESTS.path)\ncat ./results/buildah-tssc/IMAGE_DIGEST \u003e $(results.IMAGE_DIGEST.path)\ncat ./results/buildah-tssc/IMAGE_URL \u003e $(results.IMAGE_URL.path)\ncat ./results/buildah-tssc/SBOM_BLOB_URL \u003e $(results.SBOM_BLOB_URL.path)\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deploy",
                            "params": [
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-dotnet-basic-vmeijjfo:78c6611d2ec8131d6975bdc7b23fb5b2c7b1d1d4"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Deploy built image to development environment.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy",
                                        "script": "echo \"running update-deployment\"\n/workspace/source/tssc/update-deployment.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "push",
                                    "operator": "notin",
                                    "values": [
                                        "pull_request",
                                        "Merge Request"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deployment-check",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-dotnet-basic-vmeijjfo:78c6611d2ec8131d6975bdc7b23fb5b2c7b1d1d4"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload-check",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy-check",
                                        "script": "echo \"running acs-deploy-check\"\n/workspace/source/tssc/acs-deploy-check.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "push",
                                    "operator": "in",
                                    "values": [
                                        "push",
                                        "Push"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "scan",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-dotnet-basic-vmeijjfo:78c6611d2ec8131d6975bdc7b23fb5b2c7b1d1d4"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "scan-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "scan",
                                        "script": "echo \"running acs-image-check\"\n/workspace/source/tssc/acs-image-check.sh\necho \"running acs-image-scan\"\n/workspace/source/tssc/acs-image-scan.sh\ncat ./results/acs-image-scan/SCAN_OUTPUT \u003e $(results.SCAN_OUTPUT.path)\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "show-sbom",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-dotnet-basic-vmeijjfo:78c6611d2ec8131d6975bdc7b23fb5b2c7b1d1d4"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Show SBOM report for the built image.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "show-workload-sbom",
                                        "task.output.location": "results",
                                        "task.results.format": "application/text",
                                        "task.results.key": "LINK_TO_SBOM",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Placeholder result meant to make RHDH identify this task as the producer of the SBOM logs.",
                                        "name": "LINK_TO_SBOM",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "show-sbom",
                                        "script": "echo \"running show-sbom-rhdh\"\n/workspace/source/tssc/show-sbom-rhdh.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "summarize",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-dotnet-basic-vmeijjfo:78c6611d2ec8131d6975bdc7b23fb5b2c7b1d1d4"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Summarize all the steps in the build pipeline.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "summarize-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "summary",
                                        "script": "echo \"running summary\"\n/workspace/source/tssc/summary.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "results": [
                    {
                        "name": "IMAGE_DIGEST",
                        "value": "sha256:2a01dcd52a499df4cf7f00024b8cc57541d9ade2d506ad4b6f031d335a0c151c"
                    },
                    {
                        "name": "IMAGE_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-dotnet-basic-vmeijjfo:78c6611d2ec8131d6975bdc7b23fb5b2c7b1d1d4"
                    },
                    {
                        "name": "BASE_IMAGES_DIGESTS",
                        "value": "registry.access.redhat.com/ubi8/dotnet-60:6.0-56@sha256:70aa2652508c0f69839f586c8e0322ff7ff2a65306f6749ff889b57a1e8eb841\n"
                    },
                    {
                        "name": "SBOM_BLOB_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-dotnet-basic-vmeijjfo@sha256:31141af8089c738f00aeb782f746bab6ecfa87d823b31bc658e4eea47748ce39"
                    },
                    {
                        "name": "CHAINS-GIT_URL",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-vmeijjfo"
                    },
                    {
                        "name": "CHAINS-GIT_COMMIT",
                        "value": "78c6611d2ec8131d6975bdc7b23fb5b2c7b1d1d4"
                    },
                    {
                        "name": "ACS_SCAN_OUTPUT",
                        "value": "{\"vulnerabilities\":{\"critical\":0,\"high\":44,\"medium\":140,\"low\":224}}\n"
                    }
                ],
                "startTime": "2026-04-27T16:34:57Z"
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "PipelineRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "chains.tekton.dev/transparency": "https://rekor-server-tssc-tas.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/api/v1/log/entries?logIndex=193",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "73238052060",
                    "pipelinesascode.tekton.dev/controller-info": "{\"name\":\"default\",\"configmap\":\"pipelines-as-code\",\"secret\":\"pipelines-as-code-secret\", \"gRepo\": \"pipelines-as-code\"}",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/git-auth-secret": "pac-gitauth-wkgkwr",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-go-mcmxurgq-gitops-on-pull-request-c4nl9",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-go-mcmxurgq-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pipeline": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/pipelines/gitops-pull-request-tssc.yaml",
                    "pipelinesascode.tekton.dev/pull-request": "2",
                    "pipelinesascode.tekton.dev/repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-mcmxurgq-gitops",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-go-mcmxurgq-gitops-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "41cb104ab5b7841572f9b162592c6836d2e6d38c",
                    "pipelinesascode.tekton.dev/sha-title": "Promote to prod environment",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-mcmxurgq-gitops/commit/41cb104ab5b7841572f9b162592c6836d2e6d38c",
                    "pipelinesascode.tekton.dev/source-branch": "promote-to-prod-1777309318839",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-mcmxurgq-gitops",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/task-0": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/git-clone.yaml",
                    "pipelinesascode.tekton.dev/task-1": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/gather-deploy-images.yaml",
                    "pipelinesascode.tekton.dev/task-2": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/verify-enterprise-contract.yaml",
                    "pipelinesascode.tekton.dev/task-3": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/gather-deploy-images.yaml",
                    "pipelinesascode.tekton.dev/task-4": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/download-sbom-from-url-in-attestation.yaml",
                    "pipelinesascode.tekton.dev/task-5": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/upload-sbom-to-trustification.yaml",
                    "pipelinesascode.tekton.dev/task-6": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/fetch-gitops-images.yaml",
                    "pipelinesascode.tekton.dev/task-7": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/verify-gitops-conforma.yaml",
                    "pipelinesascode.tekton.dev/task-8": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/download-gitops-sbom.yaml",
                    "pipelinesascode.tekton.dev/task-9": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/upload-gitops-sbom.yaml",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-go-mcmxurgq-gitops",
                    "results.tekton.dev/record": "tssc-app-ci/results/234af17a-8b5d-4caf-94e3-6b2411188976/records/234af17a-8b5d-4caf-94e3-6b2411188976",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-go-mcmxurgq-gitops\",\"commit\":\"41cb104ab5b7841572f9b162592c6836d2e6d38c\",\"eventType\":\"pull_request\",\"pull_request-id\":2}",
                    "results.tekton.dev/result": "tssc-app-ci/results/234af17a-8b5d-4caf-94e3-6b2411188976",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-27T17:02:08Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "results.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer"
                ],
                "generateName": "e2e-tests-go-mcmxurgq-gitops-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-go-mcmxurgq",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-go-mcmxurgq",
                    "backstage.io/kubernetes-id": "e2e-tests-go-mcmxurgq",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-go-mcmxurgq",
                    "pipelinesascode.tekton.dev/check-run-id": "73238052060",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-go-mcmxurgq-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "2",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-go-mcmxurgq-gitops-repository",
                    "pipelinesascode.tekton.dev/sha": "41cb104ab5b7841572f9b162592c6836d2e6d38c",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-go-mcmxurgq-gitops",
                    "tekton.dev/pipeline": "e2e-tests-go-mcmxurgq-gitops-on-pull-request-c4nl9"
                },
                "name": "e2e-tests-go-mcmxurgq-gitops-on-pull-request-c4nl9",
                "namespace": "tssc-app-ci",
                "resourceVersion": "73445",
                "uid": "234af17a-8b5d-4caf-94e3-6b2411188976"
            },
            "spec": {
                "params": [
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-mcmxurgq-gitops"
                    },
                    {
                        "name": "revision",
                        "value": "41cb104ab5b7841572f9b162592c6836d2e6d38c"
                    },
                    {
                        "name": "target-branch",
                        "value": "main"
                    },
                    {
                        "name": "fail-if-trustification-not-configured",
                        "value": "false"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Gitops repo url",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Gitops repo revision",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "default": "main",
                            "description": "The target branch for the pull request",
                            "name": "target-branch",
                            "type": "string"
                        },
                        {
                            "default": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7",
                            "description": "Enterprise Contract policy to validate against",
                            "name": "ec-policy-configuration",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should EC violations cause the pipeline to fail?",
                            "name": "ec-strict",
                            "type": "string"
                        },
                        {
                            "default": "k8s://$(context.pipelineRun.namespace)/cosign-pub",
                            "description": "The public key that EC should use to verify signatures",
                            "name": "ec-public-key",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should the pipeline fail when there are SBOMs to upload but Trustification is not properly configured (i.e. the secret is missing or doesn't have all the required keys)?",
                            "name": "fail-if-trustification-not-configured",
                            "type": "string"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "$(params.git-url)"
                                },
                                {
                                    "name": "revision",
                                    "value": "$(params.revision)"
                                },
                                {
                                    "name": "fetchTags",
                                    "value": "true"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "$(params.revision)"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "get-images",
                            "params": [
                                {
                                    "name": "PUBLIC_KEY_URL",
                                    "value": "$(params.ec-public-key)"
                                },
                                {
                                    "name": "TARGET_BRANCH",
                                    "value": "$(params.target-branch)"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Extract images from deployment YAML to pass to Conforma for validation",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a valid k8s cosign reference, e.g. k8s://my-space/my-secret where my-secret contains the expected cosign.pub attribute.",
                                        "name": "PUBLIC_KEY_URL",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "If specified, will gather only the images that changed between the current revision and the target branch. Useful for pull requests. Note that the repository cloned on the source workspace must already contain the origin/$TARGET_BRANCH reference.\n",
                                        "name": "TARGET_BRANCH",
                                        "type": "string"
                                    },
                                    {
                                        "default": [
                                            "development",
                                            "stage",
                                            "prod"
                                        ],
                                        "description": "Gather images from the manifest files for the specified environments",
                                        "name": "ENVIRONMENTS",
                                        "type": "array"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Cosign base64 encoded public key fetched from secrets.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images with SBOMs to upload to Trustification \n",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images to be verified, in a format compatible with https://github.com/konflux-ci/build-definitions/tree/main/task/verify-enterprise-contract/0.1. When there are no images to verify, this is an empty string.\n",
                                        "name": "CONFORMA_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TARGET_BRANCH",
                                            "value": "$(params.TARGET_BRANCH)"
                                        },
                                        {
                                            "name": "PUBLIC_KEY_URL",
                                            "value": "$(params.PUBLIC_KEY_URL)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "pwd\nls -la\n# Sync scripts to the writable workspace\ncp -rf /work/tssc/ $(workspaces.source.path)/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e $(workspaces.source.path)/tssc/common.sh\necho \"Successfully patched $(workspaces.source.path)/tssc/common.sh\"\n\necho \"Parsing public key url\"\nCLEAN_URL=\"${PUBLIC_KEY_URL#k8s://}\"\nNS=\"${CLEAN_URL%/*}\"\nSECRET=\"${CLEAN_URL##*/}\"\nCOSIGN_PUBLIC_KEY=$(oc get secrets $SECRET -n $NS -o json | jq -r '.data.\"cosign.pub\"')\necho $COSIGN_PUBLIC_KEY \u003e $(results.COSIGN_PUBLIC_KEY.path)\n"
                                    },
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "get-images",
                                        "script": "echo \"running gather-images-to-upload-sbom\"\n$(workspaces.source.path)/tssc/gather-images-to-upload-sbom.sh\nmv ./results/gather-deploy-images ./results/sbom-images \ncat ./results/sbom-images/IMAGES_TO_VERIFY \u003e $(results.SBOM_IMAGES.path)\n\necho \"running gather-deploy-images\"\n$(workspaces.source.path)/tssc/gather-deploy-images.sh\ncat ./results/gather-deploy-images/IMAGES_TO_VERIFY \u003e $(results.CONFORMA_IMAGES.path)\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "verify-conforma",
                            "params": [
                                {
                                    "name": "STRICT",
                                    "value": "$(params.ec-strict)"
                                },
                                {
                                    "name": "POLICY_CONFIGURATION",
                                    "value": "$(params.ec-policy-configuration)"
                                },
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Verify the enterprise contract is met",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "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": "true",
                                        "description": "Fail the task if policy fails. Set to `\"false\"` to disable it.",
                                        "name": "STRICT",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Short summary of the policy evaluation for each image.",
                                        "name": "TEST_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STRICT",
                                            "value": "$(params.STRICT)"
                                        },
                                        {
                                            "name": "POLICY_CONFIGURATION",
                                            "value": "$(params.POLICY_CONFIGURATION)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "verify",
                                        "script": "echo \"running verify-conforma\"\n$(workspaces.source.path)/tssc/verify-conforma.sh\ncat ./results/verify-conforma/TEST_OUTPUT \u003e $(results.TEST_OUTPUT.path)\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.CONFORMA_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "download-sboms",
                            "params": [
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                },
                                {
                                    "name": "SBOM_IMAGES",
                                    "value": "$(tasks.get-images.results.SBOM_IMAGES)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Download SBOM from images",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Images to be considered for SBOM download.",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        },
                                        {
                                            "name": "IMAGES",
                                            "value": "$(params.SBOM_IMAGES)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "download",
                                        "script": "echo \"running download-sbom-from-url-in-attestation\"\n$(workspaces.source.path)/tssc/download-sbom-from-url-in-attestation.sh\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "upload-sboms",
                            "params": [
                                {
                                    "name": "TPA_SECRET",
                                    "value": "$(params.trustification-secret-name)"
                                }
                            ],
                            "runAfter": [
                                "download-sboms"
                            ],
                            "taskSpec": {
                                "description": "Upload SBOMs to Trustification",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "TPA Secret to obtain Trustification vars from.",
                                        "name": "TPA_SECRET",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "bombastic_api_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_id",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_secret",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_issuer_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "upload",
                                        "script": "echo \"running upload-sbom-to-trustification\"\n$(workspaces.source.path)/tssc/upload-sbom-to-trustification.sh\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "taskRunTemplate": {
                    "serviceAccountName": "pipeline"
                },
                "timeouts": {
                    "pipeline": "1h0m0s"
                },
                "workspaces": [
                    {
                        "name": "git-auth",
                        "secret": {
                            "secretName": "pac-gitauth-wkgkwr"
                        }
                    },
                    {
                        "name": "workspace",
                        "volumeClaimTemplate": {
                            "metadata": {
                                "creationTimestamp": null
                            },
                            "spec": {
                                "accessModes": [
                                    "ReadWriteOnce"
                                ],
                                "resources": {
                                    "requests": {
                                        "storage": "1Gi"
                                    }
                                }
                            },
                            "status": {}
                        }
                    }
                ]
            },
            "status": {
                "childReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-mffc6a77405e57f35f8814ca11067148e-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-mcmxurgq-gitops-on-pull-request-c4nl9-get-images",
                        "pipelineTaskName": "get-images"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-mcffc6a77405e57f35f8814ca11067148e-verify-conforma",
                        "pipelineTaskName": "verify-conforma",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-go-mcmxurgq:fc50702339b1e3b8f89ded74f75e156f3ac72595\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-mcmffc6a77405e57f35f8814ca11067148e-download-sboms",
                        "pipelineTaskName": "download-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-go-mcmxurgq:fc50702339b1e3b8f89ded74f75e156f3ac72595\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-mcmxurgq-gitops-on-pull-request-c4nl9-upload-sboms",
                        "pipelineTaskName": "upload-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-go-mcmxurgq:fc50702339b1e3b8f89ded74f75e156f3ac72595\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    }
                ],
                "completionTime": "2026-04-27T17:02:50Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-27T17:02:50Z",
                        "message": "Tasks Completed: 5 (Failed: 0, Cancelled 0), Skipped: 0",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Gitops repo url",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Gitops repo revision",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "default": "main",
                            "description": "The target branch for the pull request",
                            "name": "target-branch",
                            "type": "string"
                        },
                        {
                            "default": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7",
                            "description": "Enterprise Contract policy to validate against",
                            "name": "ec-policy-configuration",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should EC violations cause the pipeline to fail?",
                            "name": "ec-strict",
                            "type": "string"
                        },
                        {
                            "default": "k8s://$(context.pipelineRun.namespace)/cosign-pub",
                            "description": "The public key that EC should use to verify signatures",
                            "name": "ec-public-key",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should the pipeline fail when there are SBOMs to upload but Trustification is not properly configured (i.e. the secret is missing or doesn't have all the required keys)?",
                            "name": "fail-if-trustification-not-configured",
                            "type": "string"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-mcmxurgq-gitops"
                                },
                                {
                                    "name": "revision",
                                    "value": "41cb104ab5b7841572f9b162592c6836d2e6d38c"
                                },
                                {
                                    "name": "fetchTags",
                                    "value": "true"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "41cb104ab5b7841572f9b162592c6836d2e6d38c"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "get-images",
                            "params": [
                                {
                                    "name": "PUBLIC_KEY_URL",
                                    "value": "k8s://tssc-app-ci/cosign-pub"
                                },
                                {
                                    "name": "TARGET_BRANCH",
                                    "value": "main"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Extract images from deployment YAML to pass to Conforma for validation",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a valid k8s cosign reference, e.g. k8s://my-space/my-secret where my-secret contains the expected cosign.pub attribute.",
                                        "name": "PUBLIC_KEY_URL",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "If specified, will gather only the images that changed between the current revision and the target branch. Useful for pull requests. Note that the repository cloned on the source workspace must already contain the origin/$TARGET_BRANCH reference.\n",
                                        "name": "TARGET_BRANCH",
                                        "type": "string"
                                    },
                                    {
                                        "default": [
                                            "development",
                                            "stage",
                                            "prod"
                                        ],
                                        "description": "Gather images from the manifest files for the specified environments",
                                        "name": "ENVIRONMENTS",
                                        "type": "array"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Cosign base64 encoded public key fetched from secrets.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images with SBOMs to upload to Trustification \n",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images to be verified, in a format compatible with https://github.com/konflux-ci/build-definitions/tree/main/task/verify-enterprise-contract/0.1. When there are no images to verify, this is an empty string.\n",
                                        "name": "CONFORMA_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TARGET_BRANCH",
                                            "value": "$(params.TARGET_BRANCH)"
                                        },
                                        {
                                            "name": "PUBLIC_KEY_URL",
                                            "value": "$(params.PUBLIC_KEY_URL)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TARGET_BRANCH",
                                                "value": "$(params.TARGET_BRANCH)"
                                            },
                                            {
                                                "name": "PUBLIC_KEY_URL",
                                                "value": "$(params.PUBLIC_KEY_URL)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "pwd\nls -la\n# Sync scripts to the writable workspace\ncp -rf /work/tssc/ $(workspaces.source.path)/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e $(workspaces.source.path)/tssc/common.sh\necho \"Successfully patched $(workspaces.source.path)/tssc/common.sh\"\n\necho \"Parsing public key url\"\nCLEAN_URL=\"${PUBLIC_KEY_URL#k8s://}\"\nNS=\"${CLEAN_URL%/*}\"\nSECRET=\"${CLEAN_URL##*/}\"\nCOSIGN_PUBLIC_KEY=$(oc get secrets $SECRET -n $NS -o json | jq -r '.data.\"cosign.pub\"')\necho $COSIGN_PUBLIC_KEY \u003e $(results.COSIGN_PUBLIC_KEY.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TARGET_BRANCH",
                                                "value": "$(params.TARGET_BRANCH)"
                                            },
                                            {
                                                "name": "PUBLIC_KEY_URL",
                                                "value": "$(params.PUBLIC_KEY_URL)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "get-images",
                                        "script": "echo \"running gather-images-to-upload-sbom\"\n$(workspaces.source.path)/tssc/gather-images-to-upload-sbom.sh\nmv ./results/gather-deploy-images ./results/sbom-images \ncat ./results/sbom-images/IMAGES_TO_VERIFY \u003e $(results.SBOM_IMAGES.path)\n\necho \"running gather-deploy-images\"\n$(workspaces.source.path)/tssc/gather-deploy-images.sh\ncat ./results/gather-deploy-images/IMAGES_TO_VERIFY \u003e $(results.CONFORMA_IMAGES.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "verify-conforma",
                            "params": [
                                {
                                    "name": "STRICT",
                                    "value": "true"
                                },
                                {
                                    "name": "POLICY_CONFIGURATION",
                                    "value": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7"
                                },
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Verify the enterprise contract is met",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "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": "true",
                                        "description": "Fail the task if policy fails. Set to `\"false\"` to disable it.",
                                        "name": "STRICT",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Short summary of the policy evaluation for each image.",
                                        "name": "TEST_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STRICT",
                                            "value": "$(params.STRICT)"
                                        },
                                        {
                                            "name": "POLICY_CONFIGURATION",
                                            "value": "$(params.POLICY_CONFIGURATION)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STRICT",
                                                "value": "$(params.STRICT)"
                                            },
                                            {
                                                "name": "POLICY_CONFIGURATION",
                                                "value": "$(params.POLICY_CONFIGURATION)"
                                            },
                                            {
                                                "name": "REKOR_HOST",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rekor_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TUF_MIRROR",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "tuf_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "value": "$(params.COSIGN_PUBLIC_KEY)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "verify",
                                        "script": "echo \"running verify-conforma\"\n$(workspaces.source.path)/tssc/verify-conforma.sh\ncat ./results/verify-conforma/TEST_OUTPUT \u003e $(results.TEST_OUTPUT.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.CONFORMA_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "download-sboms",
                            "params": [
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                },
                                {
                                    "name": "SBOM_IMAGES",
                                    "value": "$(tasks.get-images.results.SBOM_IMAGES)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Download SBOM from images",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Images to be considered for SBOM download.",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        },
                                        {
                                            "name": "IMAGES",
                                            "value": "$(params.SBOM_IMAGES)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "value": "$(params.COSIGN_PUBLIC_KEY)"
                                            },
                                            {
                                                "name": "IMAGES",
                                                "value": "$(params.SBOM_IMAGES)"
                                            },
                                            {
                                                "name": "REKOR_HOST",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rekor_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TUF_MIRROR",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "tuf_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "download",
                                        "script": "echo \"running download-sbom-from-url-in-attestation\"\n$(workspaces.source.path)/tssc/download-sbom-from-url-in-attestation.sh\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "upload-sboms",
                            "params": [
                                {
                                    "name": "TPA_SECRET",
                                    "value": "tpa-secret"
                                }
                            ],
                            "runAfter": [
                                "download-sboms"
                            ],
                            "taskSpec": {
                                "description": "Upload SBOMs to Trustification",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "TPA Secret to obtain Trustification vars from.",
                                        "name": "TPA_SECRET",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "bombastic_api_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_id",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_secret",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_issuer_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "bombastic_api_url",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_client_id",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_client_secret",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_issuer_url",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "upload",
                                        "script": "echo \"running upload-sbom-to-trustification\"\n$(workspaces.source.path)/tssc/upload-sbom-to-trustification.sh\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "startTime": "2026-04-27T17:02:09Z"
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "PipelineRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "chains.tekton.dev/transparency": "https://rekor-server-tssc-tas.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/api/v1/log/entries?logIndex=187",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "73237762108",
                    "pipelinesascode.tekton.dev/controller-info": "{\"name\":\"default\",\"configmap\":\"pipelines-as-code\",\"secret\":\"pipelines-as-code-secret\", \"gRepo\": \"pipelines-as-code\"}",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/git-auth-secret": "pac-gitauth-epjwge",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-go-mcmxurgq-gitops-on-pull-request-jbv2p",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-go-mcmxurgq-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pipeline": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/pipelines/gitops-pull-request-tssc.yaml",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-mcmxurgq-gitops",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-go-mcmxurgq-gitops-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "c808261b7536e2b2a8d274c637a7be9410000a85",
                    "pipelinesascode.tekton.dev/sha-title": "Promote to stage environment",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-mcmxurgq-gitops/commit/c808261b7536e2b2a8d274c637a7be9410000a85",
                    "pipelinesascode.tekton.dev/source-branch": "promote-to-stage-1777307863138",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-mcmxurgq-gitops",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/task-0": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/git-clone.yaml",
                    "pipelinesascode.tekton.dev/task-1": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/gather-deploy-images.yaml",
                    "pipelinesascode.tekton.dev/task-2": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/verify-enterprise-contract.yaml",
                    "pipelinesascode.tekton.dev/task-3": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/gather-deploy-images.yaml",
                    "pipelinesascode.tekton.dev/task-4": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/download-sbom-from-url-in-attestation.yaml",
                    "pipelinesascode.tekton.dev/task-5": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/upload-sbom-to-trustification.yaml",
                    "pipelinesascode.tekton.dev/task-6": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/fetch-gitops-images.yaml",
                    "pipelinesascode.tekton.dev/task-7": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/verify-gitops-conforma.yaml",
                    "pipelinesascode.tekton.dev/task-8": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/download-gitops-sbom.yaml",
                    "pipelinesascode.tekton.dev/task-9": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/upload-gitops-sbom.yaml",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-go-mcmxurgq-gitops",
                    "results.tekton.dev/record": "tssc-app-ci/results/06d1af99-dc0f-48b4-851d-a05b850988ff/records/06d1af99-dc0f-48b4-851d-a05b850988ff",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-go-mcmxurgq-gitops\",\"commit\":\"c808261b7536e2b2a8d274c637a7be9410000a85\",\"eventType\":\"pull_request\",\"pull_request-id\":1}",
                    "results.tekton.dev/result": "tssc-app-ci/results/06d1af99-dc0f-48b4-851d-a05b850988ff",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-27T17:00:21Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "results.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer"
                ],
                "generateName": "e2e-tests-go-mcmxurgq-gitops-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-go-mcmxurgq",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-go-mcmxurgq",
                    "backstage.io/kubernetes-id": "e2e-tests-go-mcmxurgq",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-go-mcmxurgq",
                    "pipelinesascode.tekton.dev/check-run-id": "73237762108",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-go-mcmxurgq-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-go-mcmxurgq-gitops-repository",
                    "pipelinesascode.tekton.dev/sha": "c808261b7536e2b2a8d274c637a7be9410000a85",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-go-mcmxurgq-gitops",
                    "tekton.dev/pipeline": "e2e-tests-go-mcmxurgq-gitops-on-pull-request-jbv2p"
                },
                "name": "e2e-tests-go-mcmxurgq-gitops-on-pull-request-jbv2p",
                "namespace": "tssc-app-ci",
                "resourceVersion": "71489",
                "uid": "06d1af99-dc0f-48b4-851d-a05b850988ff"
            },
            "spec": {
                "params": [
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-mcmxurgq-gitops"
                    },
                    {
                        "name": "revision",
                        "value": "c808261b7536e2b2a8d274c637a7be9410000a85"
                    },
                    {
                        "name": "target-branch",
                        "value": "main"
                    },
                    {
                        "name": "fail-if-trustification-not-configured",
                        "value": "false"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Gitops repo url",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Gitops repo revision",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "default": "main",
                            "description": "The target branch for the pull request",
                            "name": "target-branch",
                            "type": "string"
                        },
                        {
                            "default": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7",
                            "description": "Enterprise Contract policy to validate against",
                            "name": "ec-policy-configuration",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should EC violations cause the pipeline to fail?",
                            "name": "ec-strict",
                            "type": "string"
                        },
                        {
                            "default": "k8s://$(context.pipelineRun.namespace)/cosign-pub",
                            "description": "The public key that EC should use to verify signatures",
                            "name": "ec-public-key",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should the pipeline fail when there are SBOMs to upload but Trustification is not properly configured (i.e. the secret is missing or doesn't have all the required keys)?",
                            "name": "fail-if-trustification-not-configured",
                            "type": "string"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "$(params.git-url)"
                                },
                                {
                                    "name": "revision",
                                    "value": "$(params.revision)"
                                },
                                {
                                    "name": "fetchTags",
                                    "value": "true"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "$(params.revision)"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "get-images",
                            "params": [
                                {
                                    "name": "PUBLIC_KEY_URL",
                                    "value": "$(params.ec-public-key)"
                                },
                                {
                                    "name": "TARGET_BRANCH",
                                    "value": "$(params.target-branch)"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Extract images from deployment YAML to pass to Conforma for validation",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a valid k8s cosign reference, e.g. k8s://my-space/my-secret where my-secret contains the expected cosign.pub attribute.",
                                        "name": "PUBLIC_KEY_URL",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "If specified, will gather only the images that changed between the current revision and the target branch. Useful for pull requests. Note that the repository cloned on the source workspace must already contain the origin/$TARGET_BRANCH reference.\n",
                                        "name": "TARGET_BRANCH",
                                        "type": "string"
                                    },
                                    {
                                        "default": [
                                            "development",
                                            "stage",
                                            "prod"
                                        ],
                                        "description": "Gather images from the manifest files for the specified environments",
                                        "name": "ENVIRONMENTS",
                                        "type": "array"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Cosign base64 encoded public key fetched from secrets.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images with SBOMs to upload to Trustification \n",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images to be verified, in a format compatible with https://github.com/konflux-ci/build-definitions/tree/main/task/verify-enterprise-contract/0.1. When there are no images to verify, this is an empty string.\n",
                                        "name": "CONFORMA_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TARGET_BRANCH",
                                            "value": "$(params.TARGET_BRANCH)"
                                        },
                                        {
                                            "name": "PUBLIC_KEY_URL",
                                            "value": "$(params.PUBLIC_KEY_URL)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "pwd\nls -la\n# Sync scripts to the writable workspace\ncp -rf /work/tssc/ $(workspaces.source.path)/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e $(workspaces.source.path)/tssc/common.sh\necho \"Successfully patched $(workspaces.source.path)/tssc/common.sh\"\n\necho \"Parsing public key url\"\nCLEAN_URL=\"${PUBLIC_KEY_URL#k8s://}\"\nNS=\"${CLEAN_URL%/*}\"\nSECRET=\"${CLEAN_URL##*/}\"\nCOSIGN_PUBLIC_KEY=$(oc get secrets $SECRET -n $NS -o json | jq -r '.data.\"cosign.pub\"')\necho $COSIGN_PUBLIC_KEY \u003e $(results.COSIGN_PUBLIC_KEY.path)\n"
                                    },
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "get-images",
                                        "script": "echo \"running gather-images-to-upload-sbom\"\n$(workspaces.source.path)/tssc/gather-images-to-upload-sbom.sh\nmv ./results/gather-deploy-images ./results/sbom-images \ncat ./results/sbom-images/IMAGES_TO_VERIFY \u003e $(results.SBOM_IMAGES.path)\n\necho \"running gather-deploy-images\"\n$(workspaces.source.path)/tssc/gather-deploy-images.sh\ncat ./results/gather-deploy-images/IMAGES_TO_VERIFY \u003e $(results.CONFORMA_IMAGES.path)\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "verify-conforma",
                            "params": [
                                {
                                    "name": "STRICT",
                                    "value": "$(params.ec-strict)"
                                },
                                {
                                    "name": "POLICY_CONFIGURATION",
                                    "value": "$(params.ec-policy-configuration)"
                                },
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Verify the enterprise contract is met",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "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": "true",
                                        "description": "Fail the task if policy fails. Set to `\"false\"` to disable it.",
                                        "name": "STRICT",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Short summary of the policy evaluation for each image.",
                                        "name": "TEST_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STRICT",
                                            "value": "$(params.STRICT)"
                                        },
                                        {
                                            "name": "POLICY_CONFIGURATION",
                                            "value": "$(params.POLICY_CONFIGURATION)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "verify",
                                        "script": "echo \"running verify-conforma\"\n$(workspaces.source.path)/tssc/verify-conforma.sh\ncat ./results/verify-conforma/TEST_OUTPUT \u003e $(results.TEST_OUTPUT.path)\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.CONFORMA_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "download-sboms",
                            "params": [
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                },
                                {
                                    "name": "SBOM_IMAGES",
                                    "value": "$(tasks.get-images.results.SBOM_IMAGES)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Download SBOM from images",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Images to be considered for SBOM download.",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        },
                                        {
                                            "name": "IMAGES",
                                            "value": "$(params.SBOM_IMAGES)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "download",
                                        "script": "echo \"running download-sbom-from-url-in-attestation\"\n$(workspaces.source.path)/tssc/download-sbom-from-url-in-attestation.sh\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "upload-sboms",
                            "params": [
                                {
                                    "name": "TPA_SECRET",
                                    "value": "$(params.trustification-secret-name)"
                                }
                            ],
                            "runAfter": [
                                "download-sboms"
                            ],
                            "taskSpec": {
                                "description": "Upload SBOMs to Trustification",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "TPA Secret to obtain Trustification vars from.",
                                        "name": "TPA_SECRET",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "bombastic_api_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_id",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_secret",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_issuer_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "upload",
                                        "script": "echo \"running upload-sbom-to-trustification\"\n$(workspaces.source.path)/tssc/upload-sbom-to-trustification.sh\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "taskRunTemplate": {
                    "serviceAccountName": "pipeline"
                },
                "timeouts": {
                    "pipeline": "1h0m0s"
                },
                "workspaces": [
                    {
                        "name": "git-auth",
                        "secret": {
                            "secretName": "pac-gitauth-epjwge"
                        }
                    },
                    {
                        "name": "workspace",
                        "volumeClaimTemplate": {
                            "metadata": {
                                "creationTimestamp": null
                            },
                            "spec": {
                                "accessModes": [
                                    "ReadWriteOnce"
                                ],
                                "resources": {
                                    "requests": {
                                        "storage": "1Gi"
                                    }
                                }
                            },
                            "status": {}
                        }
                    }
                ]
            },
            "status": {
                "childReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-m517b3ede32f16c19ef619a11a2cbb564-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-mcmxurgq-gitops-on-pull-request-jbv2p-get-images",
                        "pipelineTaskName": "get-images"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-mc517b3ede32f16c19ef619a11a2cbb564-verify-conforma",
                        "pipelineTaskName": "verify-conforma",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-go-mcmxurgq:fc50702339b1e3b8f89ded74f75e156f3ac72595\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-mcm517b3ede32f16c19ef619a11a2cbb564-download-sboms",
                        "pipelineTaskName": "download-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-go-mcmxurgq:fc50702339b1e3b8f89ded74f75e156f3ac72595\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-mcmxurgq-gitops-on-pull-request-jbv2p-upload-sboms",
                        "pipelineTaskName": "upload-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-go-mcmxurgq:fc50702339b1e3b8f89ded74f75e156f3ac72595\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    }
                ],
                "completionTime": "2026-04-27T17:01:10Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-27T17:01:10Z",
                        "message": "Tasks Completed: 5 (Failed: 0, Cancelled 0), Skipped: 0",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Gitops repo url",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Gitops repo revision",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "default": "main",
                            "description": "The target branch for the pull request",
                            "name": "target-branch",
                            "type": "string"
                        },
                        {
                            "default": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7",
                            "description": "Enterprise Contract policy to validate against",
                            "name": "ec-policy-configuration",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should EC violations cause the pipeline to fail?",
                            "name": "ec-strict",
                            "type": "string"
                        },
                        {
                            "default": "k8s://$(context.pipelineRun.namespace)/cosign-pub",
                            "description": "The public key that EC should use to verify signatures",
                            "name": "ec-public-key",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should the pipeline fail when there are SBOMs to upload but Trustification is not properly configured (i.e. the secret is missing or doesn't have all the required keys)?",
                            "name": "fail-if-trustification-not-configured",
                            "type": "string"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-mcmxurgq-gitops"
                                },
                                {
                                    "name": "revision",
                                    "value": "c808261b7536e2b2a8d274c637a7be9410000a85"
                                },
                                {
                                    "name": "fetchTags",
                                    "value": "true"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "c808261b7536e2b2a8d274c637a7be9410000a85"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "get-images",
                            "params": [
                                {
                                    "name": "PUBLIC_KEY_URL",
                                    "value": "k8s://tssc-app-ci/cosign-pub"
                                },
                                {
                                    "name": "TARGET_BRANCH",
                                    "value": "main"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Extract images from deployment YAML to pass to Conforma for validation",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a valid k8s cosign reference, e.g. k8s://my-space/my-secret where my-secret contains the expected cosign.pub attribute.",
                                        "name": "PUBLIC_KEY_URL",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "If specified, will gather only the images that changed between the current revision and the target branch. Useful for pull requests. Note that the repository cloned on the source workspace must already contain the origin/$TARGET_BRANCH reference.\n",
                                        "name": "TARGET_BRANCH",
                                        "type": "string"
                                    },
                                    {
                                        "default": [
                                            "development",
                                            "stage",
                                            "prod"
                                        ],
                                        "description": "Gather images from the manifest files for the specified environments",
                                        "name": "ENVIRONMENTS",
                                        "type": "array"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Cosign base64 encoded public key fetched from secrets.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images with SBOMs to upload to Trustification \n",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images to be verified, in a format compatible with https://github.com/konflux-ci/build-definitions/tree/main/task/verify-enterprise-contract/0.1. When there are no images to verify, this is an empty string.\n",
                                        "name": "CONFORMA_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TARGET_BRANCH",
                                            "value": "$(params.TARGET_BRANCH)"
                                        },
                                        {
                                            "name": "PUBLIC_KEY_URL",
                                            "value": "$(params.PUBLIC_KEY_URL)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TARGET_BRANCH",
                                                "value": "$(params.TARGET_BRANCH)"
                                            },
                                            {
                                                "name": "PUBLIC_KEY_URL",
                                                "value": "$(params.PUBLIC_KEY_URL)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "pwd\nls -la\n# Sync scripts to the writable workspace\ncp -rf /work/tssc/ $(workspaces.source.path)/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e $(workspaces.source.path)/tssc/common.sh\necho \"Successfully patched $(workspaces.source.path)/tssc/common.sh\"\n\necho \"Parsing public key url\"\nCLEAN_URL=\"${PUBLIC_KEY_URL#k8s://}\"\nNS=\"${CLEAN_URL%/*}\"\nSECRET=\"${CLEAN_URL##*/}\"\nCOSIGN_PUBLIC_KEY=$(oc get secrets $SECRET -n $NS -o json | jq -r '.data.\"cosign.pub\"')\necho $COSIGN_PUBLIC_KEY \u003e $(results.COSIGN_PUBLIC_KEY.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TARGET_BRANCH",
                                                "value": "$(params.TARGET_BRANCH)"
                                            },
                                            {
                                                "name": "PUBLIC_KEY_URL",
                                                "value": "$(params.PUBLIC_KEY_URL)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "get-images",
                                        "script": "echo \"running gather-images-to-upload-sbom\"\n$(workspaces.source.path)/tssc/gather-images-to-upload-sbom.sh\nmv ./results/gather-deploy-images ./results/sbom-images \ncat ./results/sbom-images/IMAGES_TO_VERIFY \u003e $(results.SBOM_IMAGES.path)\n\necho \"running gather-deploy-images\"\n$(workspaces.source.path)/tssc/gather-deploy-images.sh\ncat ./results/gather-deploy-images/IMAGES_TO_VERIFY \u003e $(results.CONFORMA_IMAGES.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "verify-conforma",
                            "params": [
                                {
                                    "name": "STRICT",
                                    "value": "true"
                                },
                                {
                                    "name": "POLICY_CONFIGURATION",
                                    "value": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7"
                                },
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Verify the enterprise contract is met",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "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": "true",
                                        "description": "Fail the task if policy fails. Set to `\"false\"` to disable it.",
                                        "name": "STRICT",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Short summary of the policy evaluation for each image.",
                                        "name": "TEST_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STRICT",
                                            "value": "$(params.STRICT)"
                                        },
                                        {
                                            "name": "POLICY_CONFIGURATION",
                                            "value": "$(params.POLICY_CONFIGURATION)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STRICT",
                                                "value": "$(params.STRICT)"
                                            },
                                            {
                                                "name": "POLICY_CONFIGURATION",
                                                "value": "$(params.POLICY_CONFIGURATION)"
                                            },
                                            {
                                                "name": "REKOR_HOST",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rekor_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TUF_MIRROR",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "tuf_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "value": "$(params.COSIGN_PUBLIC_KEY)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "verify",
                                        "script": "echo \"running verify-conforma\"\n$(workspaces.source.path)/tssc/verify-conforma.sh\ncat ./results/verify-conforma/TEST_OUTPUT \u003e $(results.TEST_OUTPUT.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.CONFORMA_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "download-sboms",
                            "params": [
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                },
                                {
                                    "name": "SBOM_IMAGES",
                                    "value": "$(tasks.get-images.results.SBOM_IMAGES)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Download SBOM from images",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Images to be considered for SBOM download.",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        },
                                        {
                                            "name": "IMAGES",
                                            "value": "$(params.SBOM_IMAGES)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "value": "$(params.COSIGN_PUBLIC_KEY)"
                                            },
                                            {
                                                "name": "IMAGES",
                                                "value": "$(params.SBOM_IMAGES)"
                                            },
                                            {
                                                "name": "REKOR_HOST",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rekor_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TUF_MIRROR",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "tuf_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "download",
                                        "script": "echo \"running download-sbom-from-url-in-attestation\"\n$(workspaces.source.path)/tssc/download-sbom-from-url-in-attestation.sh\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "upload-sboms",
                            "params": [
                                {
                                    "name": "TPA_SECRET",
                                    "value": "tpa-secret"
                                }
                            ],
                            "runAfter": [
                                "download-sboms"
                            ],
                            "taskSpec": {
                                "description": "Upload SBOMs to Trustification",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "TPA Secret to obtain Trustification vars from.",
                                        "name": "TPA_SECRET",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "bombastic_api_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_id",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_secret",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_issuer_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "bombastic_api_url",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_client_id",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_client_secret",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_issuer_url",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "upload",
                                        "script": "echo \"running upload-sbom-to-trustification\"\n$(workspaces.source.path)/tssc/upload-sbom-to-trustification.sh\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "startTime": "2026-04-27T17:00:21Z"
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "PipelineRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "chains.tekton.dev/transparency": "https://rekor-server-tssc-tas.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/api/v1/log/entries?logIndex=34",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "73233305640",
                    "pipelinesascode.tekton.dev/controller-info": "{\"name\":\"default\",\"configmap\":\"pipelines-as-code\",\"secret\":\"pipelines-as-code-secret\", \"gRepo\": \"pipelines-as-code\"}",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/git-auth-secret": "pac-gitauth-mkbrlg",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-go-mcmxurgq-on-pull-request-5xn4x",
                    "pipelinesascode.tekton.dev/max-keep-runs": "2",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-go-mcmxurgq-on-pull-request",
                    "pipelinesascode.tekton.dev/pipeline": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/pipelines/docker-build-tssc.yaml",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-mcmxurgq",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-go-mcmxurgq-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "85a65a0e168b949e873921ee895c5908ec94bb86",
                    "pipelinesascode.tekton.dev/sha-title": "Test PR from TSSC e2e test",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-mcmxurgq/commit/85a65a0e168b949e873921ee895c5908ec94bb86",
                    "pipelinesascode.tekton.dev/source-branch": "test-branch-1777307560296",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-mcmxurgq",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/task-0": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/init.yaml",
                    "pipelinesascode.tekton.dev/task-1": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/git-clone.yaml",
                    "pipelinesascode.tekton.dev/task-10": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/deploy-workload.yaml",
                    "pipelinesascode.tekton.dev/task-11": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/scan-workload.yaml",
                    "pipelinesascode.tekton.dev/task-12": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/summarize-workload.yaml",
                    "pipelinesascode.tekton.dev/task-13": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/show-workload-sbom.yaml",
                    "pipelinesascode.tekton.dev/task-14": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/deploy-workload-check.yaml",
                    "pipelinesascode.tekton.dev/task-2": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/buildah-rhtap.yaml",
                    "pipelinesascode.tekton.dev/task-3": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-image-check.yaml",
                    "pipelinesascode.tekton.dev/task-4": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-image-scan.yaml",
                    "pipelinesascode.tekton.dev/task-5": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-deploy-check.yaml",
                    "pipelinesascode.tekton.dev/task-6": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/update-deployment.yaml",
                    "pipelinesascode.tekton.dev/task-7": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/show-sbom-rhdh.yaml",
                    "pipelinesascode.tekton.dev/task-8": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/summary.yaml",
                    "pipelinesascode.tekton.dev/task-9": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/build-workload.yaml",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-go-mcmxurgq",
                    "results.tekton.dev/record": "tssc-app-ci/results/53a078aa-7a5e-4fa9-b955-0e00a62d31d7/records/53a078aa-7a5e-4fa9-b955-0e00a62d31d7",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-go-mcmxurgq\",\"commit\":\"85a65a0e168b949e873921ee895c5908ec94bb86\",\"eventType\":\"pull_request\",\"pull_request-id\":1}",
                    "results.tekton.dev/result": "tssc-app-ci/results/53a078aa-7a5e-4fa9-b955-0e00a62d31d7",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-27T16:32:50Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "results.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer"
                ],
                "generateName": "e2e-tests-go-mcmxurgq-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-go-mcmxurgq",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-go-mcmxurgq",
                    "backstage.io/kubernetes-id": "e2e-tests-go-mcmxurgq",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-go-mcmxurgq",
                    "pipelinesascode.tekton.dev/check-run-id": "73233305640",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-go-mcmxurgq-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-go-mcmxurgq-repository",
                    "pipelinesascode.tekton.dev/sha": "85a65a0e168b949e873921ee895c5908ec94bb86",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-go-mcmxurgq",
                    "tekton.dev/pipeline": "e2e-tests-go-mcmxurgq-on-pull-request-5xn4x"
                },
                "name": "e2e-tests-go-mcmxurgq-on-pull-request-5xn4x",
                "namespace": "tssc-app-ci",
                "resourceVersion": "43693",
                "uid": "53a078aa-7a5e-4fa9-b955-0e00a62d31d7"
            },
            "spec": {
                "params": [
                    {
                        "name": "dockerfile",
                        "value": "docker/Dockerfile"
                    },
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-mcmxurgq"
                    },
                    {
                        "name": "image-expires-after",
                        "value": "5d"
                    },
                    {
                        "name": "output-image",
                        "value": "quay.io/rhtap_qe/e2e-tests-go-mcmxurgq:on-pr-85a65a0e168b949e873921ee895c5908ec94bb86"
                    },
                    {
                        "name": "path-context",
                        "value": "."
                    },
                    {
                        "name": "revision",
                        "value": "85a65a0e168b949e873921ee895c5908ec94bb86"
                    },
                    {
                        "name": "event-type",
                        "value": "pull_request"
                    },
                    {
                        "name": "gitops-auth-secret-name",
                        "value": "gitops-auth-secret"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Source Repository URL",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Revision of the Source Repository",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "description": "Fully Qualified Output Image",
                            "name": "output-image",
                            "type": "string"
                        },
                        {
                            "default": ".",
                            "description": "Path to the source code of an application's component from where to build image.",
                            "name": "path-context",
                            "type": "string"
                        },
                        {
                            "default": "Dockerfile",
                            "description": "Path to the Dockerfile inside the context specified by parameter path-context",
                            "name": "dockerfile",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Force rebuild image",
                            "name": "rebuild",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Image tag expiration time, time values could be something like 1h, 2d, 3w for hours, days, and weeks, respectively.",
                            "name": "image-expires-after",
                            "type": "string"
                        },
                        {
                            "default": "rox-api-token",
                            "name": "stackrox-secret",
                            "type": "string"
                        },
                        {
                            "default": "gitops-auth-secret",
                            "description": "Secret name to enable this pipeline to update the gitops repo with the new image. ",
                            "name": "gitops-auth-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "cosign-pub",
                            "description": "Secret name to enable verify cosign signature. ",
                            "name": "cosign-public-key-secret",
                            "type": "string"
                        },
                        {
                            "default": "push",
                            "description": "Event that triggered the pipeline run, e.g. push, pull_request",
                            "name": "event-type",
                            "type": "string"
                        },
                        {
                            "default": [],
                            "description": "Array of --build-arg values (\"arg=value\" strings) for buildah",
                            "name": "build-args",
                            "type": "array"
                        },
                        {
                            "default": "",
                            "description": "Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                            "name": "build-args-file",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Digest of the image just built",
                            "name": "IMAGE_DIGEST",
                            "value": "$(tasks.build.results.IMAGE_DIGEST)"
                        },
                        {
                            "description": "Image repository and tag where the built image was pushed",
                            "name": "IMAGE_URL",
                            "value": "$(tasks.build.results.IMAGE_URL)"
                        },
                        {
                            "description": "Digests of the base images used for build",
                            "name": "BASE_IMAGES_DIGESTS",
                            "value": "$(tasks.build.results.BASE_IMAGES_DIGESTS)"
                        },
                        {
                            "description": "Link to the SBOM layer pushed to the registry",
                            "name": "SBOM_BLOB_URL",
                            "value": "$(tasks.build.results.SBOM_BLOB_URL)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_URL",
                            "value": "$(tasks.clone-repository.results.url)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_COMMIT",
                            "value": "$(tasks.clone-repository.results.commit)"
                        },
                        {
                            "description": "",
                            "name": "ACS_SCAN_OUTPUT",
                            "value": "$(tasks.scan.results.SCAN_OUTPUT)"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "$(params.git-url)"
                                },
                                {
                                    "name": "revision",
                                    "value": "$(params.revision)"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "$(params.revision)"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "build",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "cosign-public-secret-name",
                                    "value": "$(params.cosign-public-key-secret)"
                                },
                                {
                                    "name": "tpa_secret_name",
                                    "value": "$(params.trustification-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "DOCKERFILE",
                                    "value": "$(params.dockerfile)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                },
                                {
                                    "name": "BUILD_ARGS",
                                    "value": [
                                        "$(params.build-args[*])"
                                    ]
                                },
                                {
                                    "name": "BUILD_ARGS_FILE",
                                    "value": "$(params.build-args-file)"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Builds source code into a container image and pushes the image into container registry using buildah tool.\nIn addition it generates a SBOM file, injects the SBOM file into final container image and pushes the SBOM file as separate image using cosign tool.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "build-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "./Dockerfile",
                                        "description": "Path to the Dockerfile to build.",
                                        "name": "DOCKERFILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry)",
                                        "name": "TLSVERIFY",
                                        "type": "string"
                                    },
                                    {
                                        "default": [],
                                        "description": "Array of --build-arg values (\"arg=value\" strings)",
                                        "name": "BUILD_ARGS",
                                        "type": "array"
                                    },
                                    {
                                        "default": "",
                                        "description": "Path to a file with build arguments, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                                        "name": "BUILD_ARGS_FILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Digest of the image just built",
                                        "name": "IMAGE_DIGEST",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Image repository and tag where the built image was pushed",
                                        "name": "IMAGE_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Digests of the base images used for build",
                                        "name": "BASE_IMAGES_DIGESTS",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Link to the SBOM layer pushed to the registry as part of an OCI artifact.",
                                        "name": "SBOM_BLOB_URL",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "DOCKERFILE",
                                            "value": "$(params.DOCKERFILE)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "TLSVERIFY",
                                            "value": "$(params.TLSVERIFY)"
                                        },
                                        {
                                            "name": "BUILD_ARGS_FILE",
                                            "value": "$(params.BUILD_ARGS_FILE)"
                                        },
                                        {
                                            "name": "_BUILDAH_STARTED_IN_USERNS"
                                        },
                                        {
                                            "name": "BUILDAH_ISOLATION",
                                            "value": "chroot"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_PASSWORD",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_KEY",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.tpa_secret_name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "cosign.pub",
                                                    "name": "$(params.cosign-public-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "# Sync scripts to the writable workspace\ncp -rf /work/tssc/ /workspace/source/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e /workspace/source/tssc/common.sh\necho \"Successfully patched /workspace/source/tssc/common.sh\"\necho \"running init\"\npwd\nls -la\n/workspace/source/tssc/init.sh\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    },
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "build",
                                        "script": "echo \"running buildah-tssc\"\n/workspace/source/tssc/buildah-tssc.sh\ncat ./results/buildah-tssc/BASE_IMAGES_DIGESTS \u003e $(results.BASE_IMAGES_DIGESTS.path)\ncat ./results/buildah-tssc/IMAGE_DIGEST \u003e $(results.IMAGE_DIGEST.path)\ncat ./results/buildah-tssc/IMAGE_URL \u003e $(results.IMAGE_URL.path)\ncat ./results/buildah-tssc/SBOM_BLOB_URL \u003e $(results.SBOM_BLOB_URL.path)\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deploy",
                            "params": [
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Deploy built image to development environment.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy",
                                        "script": "echo \"running update-deployment\"\n/workspace/source/tssc/update-deployment.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(params.event-type)",
                                    "operator": "notin",
                                    "values": [
                                        "pull_request",
                                        "Merge Request"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deployment-check",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload-check",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy-check",
                                        "script": "echo \"running acs-deploy-check\"\n/workspace/source/tssc/acs-deploy-check.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(params.event-type)",
                                    "operator": "in",
                                    "values": [
                                        "push",
                                        "Push"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "scan",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "scan-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "scan",
                                        "script": "echo \"running acs-image-check\"\n/workspace/source/tssc/acs-image-check.sh\necho \"running acs-image-scan\"\n/workspace/source/tssc/acs-image-scan.sh\ncat ./results/acs-image-scan/SCAN_OUTPUT \u003e $(results.SCAN_OUTPUT.path)\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "show-sbom",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Show SBOM report for the built image.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "show-workload-sbom",
                                        "task.output.location": "results",
                                        "task.results.format": "application/text",
                                        "task.results.key": "LINK_TO_SBOM",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Placeholder result meant to make RHDH identify this task as the producer of the SBOM logs.",
                                        "name": "LINK_TO_SBOM",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "show-sbom",
                                        "script": "echo \"running show-sbom-rhdh\"\n/workspace/source/tssc/show-sbom-rhdh.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "summarize",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Summarize all the steps in the build pipeline.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "summarize-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "summary",
                                        "script": "echo \"running summary\"\n/workspace/source/tssc/summary.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "taskRunTemplate": {
                    "serviceAccountName": "pipeline"
                },
                "timeouts": {
                    "pipeline": "1h0m0s"
                },
                "workspaces": [
                    {
                        "name": "git-auth",
                        "secret": {
                            "secretName": "pac-gitauth-mkbrlg"
                        }
                    },
                    {
                        "name": "workspace",
                        "volumeClaimTemplate": {
                            "metadata": {
                                "creationTimestamp": null
                            },
                            "spec": {
                                "accessModes": [
                                    "ReadWriteOnce"
                                ],
                                "resources": {
                                    "requests": {
                                        "storage": "1Gi"
                                    }
                                }
                            },
                            "status": {}
                        }
                    }
                ]
            },
            "status": {
                "childReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-mcmxurgq-on-pull-request-5xn4x-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-mcmxurgq-on-pull-request-5xn4x-build",
                        "pipelineTaskName": "build"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-mcmxurgq-on-pull-request-5xn4x-scan",
                        "pipelineTaskName": "scan"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-mcmxurgq-on-pull-request-5xn4x-show-sbom",
                        "pipelineTaskName": "show-sbom"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-mcmxurgq-on-pull-request-5xn4x-summarize",
                        "pipelineTaskName": "summarize"
                    }
                ],
                "completionTime": "2026-04-27T16:34:47Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-27T16:34:47Z",
                        "message": "Tasks Completed: 5 (Failed: 0, Cancelled 0), Skipped: 2",
                        "reason": "Completed",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Source Repository URL",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Revision of the Source Repository",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "description": "Fully Qualified Output Image",
                            "name": "output-image",
                            "type": "string"
                        },
                        {
                            "default": ".",
                            "description": "Path to the source code of an application's component from where to build image.",
                            "name": "path-context",
                            "type": "string"
                        },
                        {
                            "default": "Dockerfile",
                            "description": "Path to the Dockerfile inside the context specified by parameter path-context",
                            "name": "dockerfile",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Force rebuild image",
                            "name": "rebuild",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Image tag expiration time, time values could be something like 1h, 2d, 3w for hours, days, and weeks, respectively.",
                            "name": "image-expires-after",
                            "type": "string"
                        },
                        {
                            "default": "rox-api-token",
                            "name": "stackrox-secret",
                            "type": "string"
                        },
                        {
                            "default": "gitops-auth-secret",
                            "description": "Secret name to enable this pipeline to update the gitops repo with the new image. ",
                            "name": "gitops-auth-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "cosign-pub",
                            "description": "Secret name to enable verify cosign signature. ",
                            "name": "cosign-public-key-secret",
                            "type": "string"
                        },
                        {
                            "default": "push",
                            "description": "Event that triggered the pipeline run, e.g. push, pull_request",
                            "name": "event-type",
                            "type": "string"
                        },
                        {
                            "default": [],
                            "description": "Array of --build-arg values (\"arg=value\" strings) for buildah",
                            "name": "build-args",
                            "type": "array"
                        },
                        {
                            "default": "",
                            "description": "Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                            "name": "build-args-file",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Digest of the image just built",
                            "name": "IMAGE_DIGEST",
                            "value": "$(tasks.build.results.IMAGE_DIGEST)"
                        },
                        {
                            "description": "Image repository and tag where the built image was pushed",
                            "name": "IMAGE_URL",
                            "value": "$(tasks.build.results.IMAGE_URL)"
                        },
                        {
                            "description": "Digests of the base images used for build",
                            "name": "BASE_IMAGES_DIGESTS",
                            "value": "$(tasks.build.results.BASE_IMAGES_DIGESTS)"
                        },
                        {
                            "description": "Link to the SBOM layer pushed to the registry",
                            "name": "SBOM_BLOB_URL",
                            "value": "$(tasks.build.results.SBOM_BLOB_URL)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_URL",
                            "value": "$(tasks.clone-repository.results.url)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_COMMIT",
                            "value": "$(tasks.clone-repository.results.commit)"
                        },
                        {
                            "description": "",
                            "name": "ACS_SCAN_OUTPUT",
                            "value": "$(tasks.scan.results.SCAN_OUTPUT)"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-mcmxurgq"
                                },
                                {
                                    "name": "revision",
                                    "value": "85a65a0e168b949e873921ee895c5908ec94bb86"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "85a65a0e168b949e873921ee895c5908ec94bb86"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "build",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "cosign-public-secret-name",
                                    "value": "cosign-pub"
                                },
                                {
                                    "name": "tpa_secret_name",
                                    "value": "tpa-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-go-mcmxurgq:on-pr-85a65a0e168b949e873921ee895c5908ec94bb86"
                                },
                                {
                                    "name": "DOCKERFILE",
                                    "value": "docker/Dockerfile"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                },
                                {
                                    "name": "BUILD_ARGS",
                                    "value": []
                                },
                                {
                                    "name": "BUILD_ARGS_FILE",
                                    "value": ""
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Builds source code into a container image and pushes the image into container registry using buildah tool.\nIn addition it generates a SBOM file, injects the SBOM file into final container image and pushes the SBOM file as separate image using cosign tool.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "build-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "./Dockerfile",
                                        "description": "Path to the Dockerfile to build.",
                                        "name": "DOCKERFILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry)",
                                        "name": "TLSVERIFY",
                                        "type": "string"
                                    },
                                    {
                                        "default": [],
                                        "description": "Array of --build-arg values (\"arg=value\" strings)",
                                        "name": "BUILD_ARGS",
                                        "type": "array"
                                    },
                                    {
                                        "default": "",
                                        "description": "Path to a file with build arguments, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                                        "name": "BUILD_ARGS_FILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Digest of the image just built",
                                        "name": "IMAGE_DIGEST",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Image repository and tag where the built image was pushed",
                                        "name": "IMAGE_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Digests of the base images used for build",
                                        "name": "BASE_IMAGES_DIGESTS",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Link to the SBOM layer pushed to the registry as part of an OCI artifact.",
                                        "name": "SBOM_BLOB_URL",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "DOCKERFILE",
                                            "value": "$(params.DOCKERFILE)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "TLSVERIFY",
                                            "value": "$(params.TLSVERIFY)"
                                        },
                                        {
                                            "name": "BUILD_ARGS_FILE",
                                            "value": "$(params.BUILD_ARGS_FILE)"
                                        },
                                        {
                                            "name": "_BUILDAH_STARTED_IN_USERNS"
                                        },
                                        {
                                            "name": "BUILDAH_ISOLATION",
                                            "value": "chroot"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_PASSWORD",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_KEY",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.tpa_secret_name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "cosign.pub",
                                                    "name": "$(params.cosign-public-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "DOCKERFILE",
                                                "value": "$(params.DOCKERFILE)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "TLSVERIFY",
                                                "value": "$(params.TLSVERIFY)"
                                            },
                                            {
                                                "name": "BUILD_ARGS_FILE",
                                                "value": "$(params.BUILD_ARGS_FILE)"
                                            },
                                            {
                                                "name": "_BUILDAH_STARTED_IN_USERNS"
                                            },
                                            {
                                                "name": "BUILDAH_ISOLATION",
                                                "value": "chroot"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_PASSWORD",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_KEY",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.tpa_secret_name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "cosign.pub",
                                                        "name": "$(params.cosign-public-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "# Sync scripts to the writable workspace\ncp -rf /work/tssc/ /workspace/source/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e /workspace/source/tssc/common.sh\necho \"Successfully patched /workspace/source/tssc/common.sh\"\necho \"running init\"\npwd\nls -la\n/workspace/source/tssc/init.sh\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    },
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "DOCKERFILE",
                                                "value": "$(params.DOCKERFILE)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "TLSVERIFY",
                                                "value": "$(params.TLSVERIFY)"
                                            },
                                            {
                                                "name": "BUILD_ARGS_FILE",
                                                "value": "$(params.BUILD_ARGS_FILE)"
                                            },
                                            {
                                                "name": "_BUILDAH_STARTED_IN_USERNS"
                                            },
                                            {
                                                "name": "BUILDAH_ISOLATION",
                                                "value": "chroot"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_PASSWORD",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_KEY",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.tpa_secret_name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "cosign.pub",
                                                        "name": "$(params.cosign-public-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "build",
                                        "script": "echo \"running buildah-tssc\"\n/workspace/source/tssc/buildah-tssc.sh\ncat ./results/buildah-tssc/BASE_IMAGES_DIGESTS \u003e $(results.BASE_IMAGES_DIGESTS.path)\ncat ./results/buildah-tssc/IMAGE_DIGEST \u003e $(results.IMAGE_DIGEST.path)\ncat ./results/buildah-tssc/IMAGE_URL \u003e $(results.IMAGE_URL.path)\ncat ./results/buildah-tssc/SBOM_BLOB_URL \u003e $(results.SBOM_BLOB_URL.path)\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deploy",
                            "params": [
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-go-mcmxurgq:on-pr-85a65a0e168b949e873921ee895c5908ec94bb86"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Deploy built image to development environment.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy",
                                        "script": "echo \"running update-deployment\"\n/workspace/source/tssc/update-deployment.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "pull_request",
                                    "operator": "notin",
                                    "values": [
                                        "pull_request",
                                        "Merge Request"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deployment-check",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-go-mcmxurgq:on-pr-85a65a0e168b949e873921ee895c5908ec94bb86"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload-check",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy-check",
                                        "script": "echo \"running acs-deploy-check\"\n/workspace/source/tssc/acs-deploy-check.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "pull_request",
                                    "operator": "in",
                                    "values": [
                                        "push",
                                        "Push"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "scan",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-go-mcmxurgq:on-pr-85a65a0e168b949e873921ee895c5908ec94bb86"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "scan-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "scan",
                                        "script": "echo \"running acs-image-check\"\n/workspace/source/tssc/acs-image-check.sh\necho \"running acs-image-scan\"\n/workspace/source/tssc/acs-image-scan.sh\ncat ./results/acs-image-scan/SCAN_OUTPUT \u003e $(results.SCAN_OUTPUT.path)\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "show-sbom",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-go-mcmxurgq:on-pr-85a65a0e168b949e873921ee895c5908ec94bb86"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Show SBOM report for the built image.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "show-workload-sbom",
                                        "task.output.location": "results",
                                        "task.results.format": "application/text",
                                        "task.results.key": "LINK_TO_SBOM",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Placeholder result meant to make RHDH identify this task as the producer of the SBOM logs.",
                                        "name": "LINK_TO_SBOM",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "show-sbom",
                                        "script": "echo \"running show-sbom-rhdh\"\n/workspace/source/tssc/show-sbom-rhdh.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "summarize",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-go-mcmxurgq:on-pr-85a65a0e168b949e873921ee895c5908ec94bb86"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Summarize all the steps in the build pipeline.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "summarize-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "summary",
                                        "script": "echo \"running summary\"\n/workspace/source/tssc/summary.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "results": [
                    {
                        "name": "IMAGE_DIGEST",
                        "value": "sha256:d6732d6e49d42689dd4936934ddcac7541f0ab0fc03ecc886f16e3de190a6525"
                    },
                    {
                        "name": "IMAGE_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-go-mcmxurgq:on-pr-85a65a0e168b949e873921ee895c5908ec94bb86"
                    },
                    {
                        "name": "BASE_IMAGES_DIGESTS",
                        "value": "registry.access.redhat.com/ubi9/go-toolset:9.7-1776213685@sha256:77bfb0f283eaa3215909342c3dda940605eff5b9f72d6dc18fad1d154d172d55\nregistry.access.redhat.com/ubi9/ubi-micro:latest@sha256:2173487b3b72b1a7b11edc908e9bbf1726f9df46a4f78fd6d19a2bab0a701f38\n"
                    },
                    {
                        "name": "SBOM_BLOB_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-go-mcmxurgq@sha256:2d3ee31e72cf58049c79a3f415bc255917f252a596f8a491bf3dd48716881bdc"
                    },
                    {
                        "name": "CHAINS-GIT_URL",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-mcmxurgq"
                    },
                    {
                        "name": "CHAINS-GIT_COMMIT",
                        "value": "85a65a0e168b949e873921ee895c5908ec94bb86"
                    },
                    {
                        "name": "ACS_SCAN_OUTPUT",
                        "value": "{\"vulnerabilities\":{\"critical\":0,\"high\":4,\"medium\":7,\"low\":5}}\n"
                    }
                ],
                "skippedTasks": [
                    {
                        "name": "deploy",
                        "reason": "When Expressions evaluated to false",
                        "whenExpressions": [
                            {
                                "input": "pull_request",
                                "operator": "notin",
                                "values": [
                                    "pull_request",
                                    "Merge Request"
                                ]
                            }
                        ]
                    },
                    {
                        "name": "deployment-check",
                        "reason": "When Expressions evaluated to false",
                        "whenExpressions": [
                            {
                                "input": "pull_request",
                                "operator": "in",
                                "values": [
                                    "push",
                                    "Push"
                                ]
                            }
                        ]
                    }
                ],
                "startTime": "2026-04-27T16:32:51Z"
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "PipelineRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "chains.tekton.dev/transparency": "https://rekor-server-tssc-tas.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/api/v1/log/entries?logIndex=74",
                    "pipelinesascode.tekton.dev/branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/check-run-id": "73233667998",
                    "pipelinesascode.tekton.dev/controller-info": "{\"name\":\"default\",\"configmap\":\"pipelines-as-code\",\"secret\":\"pipelines-as-code-secret\", \"gRepo\": \"pipelines-as-code\"}",
                    "pipelinesascode.tekton.dev/event-type": "push",
                    "pipelinesascode.tekton.dev/git-auth-secret": "pac-gitauth-thrktk",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-go-mcmxurgq-on-push-xrwgx",
                    "pipelinesascode.tekton.dev/max-keep-runs": "2",
                    "pipelinesascode.tekton.dev/on-event": "[push]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-go-mcmxurgq-on-push",
                    "pipelinesascode.tekton.dev/pipeline": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/pipelines/docker-build-tssc.yaml",
                    "pipelinesascode.tekton.dev/repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-mcmxurgq",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-go-mcmxurgq-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "fc50702339b1e3b8f89ded74f75e156f3ac72595",
                    "pipelinesascode.tekton.dev/sha-title": "Merge pull request #1 from rhtap-rhdh-qe/test-branch-1777307560296",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-mcmxurgq/commit/fc50702339b1e3b8f89ded74f75e156f3ac72595",
                    "pipelinesascode.tekton.dev/source-branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-mcmxurgq",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/task-0": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/init.yaml",
                    "pipelinesascode.tekton.dev/task-1": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/git-clone.yaml",
                    "pipelinesascode.tekton.dev/task-10": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/deploy-workload.yaml",
                    "pipelinesascode.tekton.dev/task-11": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/scan-workload.yaml",
                    "pipelinesascode.tekton.dev/task-12": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/summarize-workload.yaml",
                    "pipelinesascode.tekton.dev/task-13": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/show-workload-sbom.yaml",
                    "pipelinesascode.tekton.dev/task-14": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/deploy-workload-check.yaml",
                    "pipelinesascode.tekton.dev/task-2": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/buildah-rhtap.yaml",
                    "pipelinesascode.tekton.dev/task-3": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-image-check.yaml",
                    "pipelinesascode.tekton.dev/task-4": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-image-scan.yaml",
                    "pipelinesascode.tekton.dev/task-5": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-deploy-check.yaml",
                    "pipelinesascode.tekton.dev/task-6": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/update-deployment.yaml",
                    "pipelinesascode.tekton.dev/task-7": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/show-sbom-rhdh.yaml",
                    "pipelinesascode.tekton.dev/task-8": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/summary.yaml",
                    "pipelinesascode.tekton.dev/task-9": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/build-workload.yaml",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-go-mcmxurgq",
                    "results.tekton.dev/record": "tssc-app-ci/results/e53a0f4f-5207-4e64-a19d-47e9e16d90d1/records/e53a0f4f-5207-4e64-a19d-47e9e16d90d1",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-go-mcmxurgq\",\"commit\":\"fc50702339b1e3b8f89ded74f75e156f3ac72595\",\"eventType\":\"push\"}",
                    "results.tekton.dev/result": "tssc-app-ci/results/e53a0f4f-5207-4e64-a19d-47e9e16d90d1",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-27T16:35:01Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "results.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-go-mcmxurgq-on-push-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-go-mcmxurgq",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-go-mcmxurgq",
                    "backstage.io/kubernetes-id": "e2e-tests-go-mcmxurgq",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-go-mcmxurgq",
                    "pipelinesascode.tekton.dev/check-run-id": "73233667998",
                    "pipelinesascode.tekton.dev/event-type": "push",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-go-mcmxurgq-on-push",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-go-mcmxurgq-repository",
                    "pipelinesascode.tekton.dev/sha": "fc50702339b1e3b8f89ded74f75e156f3ac72595",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-go-mcmxurgq",
                    "tekton.dev/pipeline": "e2e-tests-go-mcmxurgq-on-push-xrwgx"
                },
                "name": "e2e-tests-go-mcmxurgq-on-push-xrwgx",
                "namespace": "tssc-app-ci",
                "resourceVersion": "47813",
                "uid": "e53a0f4f-5207-4e64-a19d-47e9e16d90d1"
            },
            "spec": {
                "params": [
                    {
                        "name": "dockerfile",
                        "value": "docker/Dockerfile"
                    },
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-mcmxurgq"
                    },
                    {
                        "name": "image-expires-after",
                        "value": "5d"
                    },
                    {
                        "name": "output-image",
                        "value": "quay.io/rhtap_qe/e2e-tests-go-mcmxurgq:fc50702339b1e3b8f89ded74f75e156f3ac72595"
                    },
                    {
                        "name": "path-context",
                        "value": "."
                    },
                    {
                        "name": "revision",
                        "value": "fc50702339b1e3b8f89ded74f75e156f3ac72595"
                    },
                    {
                        "name": "event-type",
                        "value": "push"
                    },
                    {
                        "name": "gitops-auth-secret-name",
                        "value": "gitops-auth-secret"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Source Repository URL",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Revision of the Source Repository",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "description": "Fully Qualified Output Image",
                            "name": "output-image",
                            "type": "string"
                        },
                        {
                            "default": ".",
                            "description": "Path to the source code of an application's component from where to build image.",
                            "name": "path-context",
                            "type": "string"
                        },
                        {
                            "default": "Dockerfile",
                            "description": "Path to the Dockerfile inside the context specified by parameter path-context",
                            "name": "dockerfile",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Force rebuild image",
                            "name": "rebuild",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Image tag expiration time, time values could be something like 1h, 2d, 3w for hours, days, and weeks, respectively.",
                            "name": "image-expires-after",
                            "type": "string"
                        },
                        {
                            "default": "rox-api-token",
                            "name": "stackrox-secret",
                            "type": "string"
                        },
                        {
                            "default": "gitops-auth-secret",
                            "description": "Secret name to enable this pipeline to update the gitops repo with the new image. ",
                            "name": "gitops-auth-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "cosign-pub",
                            "description": "Secret name to enable verify cosign signature. ",
                            "name": "cosign-public-key-secret",
                            "type": "string"
                        },
                        {
                            "default": "push",
                            "description": "Event that triggered the pipeline run, e.g. push, pull_request",
                            "name": "event-type",
                            "type": "string"
                        },
                        {
                            "default": [],
                            "description": "Array of --build-arg values (\"arg=value\" strings) for buildah",
                            "name": "build-args",
                            "type": "array"
                        },
                        {
                            "default": "",
                            "description": "Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                            "name": "build-args-file",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Digest of the image just built",
                            "name": "IMAGE_DIGEST",
                            "value": "$(tasks.build.results.IMAGE_DIGEST)"
                        },
                        {
                            "description": "Image repository and tag where the built image was pushed",
                            "name": "IMAGE_URL",
                            "value": "$(tasks.build.results.IMAGE_URL)"
                        },
                        {
                            "description": "Digests of the base images used for build",
                            "name": "BASE_IMAGES_DIGESTS",
                            "value": "$(tasks.build.results.BASE_IMAGES_DIGESTS)"
                        },
                        {
                            "description": "Link to the SBOM layer pushed to the registry",
                            "name": "SBOM_BLOB_URL",
                            "value": "$(tasks.build.results.SBOM_BLOB_URL)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_URL",
                            "value": "$(tasks.clone-repository.results.url)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_COMMIT",
                            "value": "$(tasks.clone-repository.results.commit)"
                        },
                        {
                            "description": "",
                            "name": "ACS_SCAN_OUTPUT",
                            "value": "$(tasks.scan.results.SCAN_OUTPUT)"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "$(params.git-url)"
                                },
                                {
                                    "name": "revision",
                                    "value": "$(params.revision)"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "$(params.revision)"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "build",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "cosign-public-secret-name",
                                    "value": "$(params.cosign-public-key-secret)"
                                },
                                {
                                    "name": "tpa_secret_name",
                                    "value": "$(params.trustification-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "DOCKERFILE",
                                    "value": "$(params.dockerfile)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                },
                                {
                                    "name": "BUILD_ARGS",
                                    "value": [
                                        "$(params.build-args[*])"
                                    ]
                                },
                                {
                                    "name": "BUILD_ARGS_FILE",
                                    "value": "$(params.build-args-file)"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Builds source code into a container image and pushes the image into container registry using buildah tool.\nIn addition it generates a SBOM file, injects the SBOM file into final container image and pushes the SBOM file as separate image using cosign tool.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "build-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "./Dockerfile",
                                        "description": "Path to the Dockerfile to build.",
                                        "name": "DOCKERFILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry)",
                                        "name": "TLSVERIFY",
                                        "type": "string"
                                    },
                                    {
                                        "default": [],
                                        "description": "Array of --build-arg values (\"arg=value\" strings)",
                                        "name": "BUILD_ARGS",
                                        "type": "array"
                                    },
                                    {
                                        "default": "",
                                        "description": "Path to a file with build arguments, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                                        "name": "BUILD_ARGS_FILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Digest of the image just built",
                                        "name": "IMAGE_DIGEST",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Image repository and tag where the built image was pushed",
                                        "name": "IMAGE_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Digests of the base images used for build",
                                        "name": "BASE_IMAGES_DIGESTS",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Link to the SBOM layer pushed to the registry as part of an OCI artifact.",
                                        "name": "SBOM_BLOB_URL",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "DOCKERFILE",
                                            "value": "$(params.DOCKERFILE)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "TLSVERIFY",
                                            "value": "$(params.TLSVERIFY)"
                                        },
                                        {
                                            "name": "BUILD_ARGS_FILE",
                                            "value": "$(params.BUILD_ARGS_FILE)"
                                        },
                                        {
                                            "name": "_BUILDAH_STARTED_IN_USERNS"
                                        },
                                        {
                                            "name": "BUILDAH_ISOLATION",
                                            "value": "chroot"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_PASSWORD",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_KEY",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.tpa_secret_name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "cosign.pub",
                                                    "name": "$(params.cosign-public-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "# Sync scripts to the writable workspace\ncp -rf /work/tssc/ /workspace/source/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e /workspace/source/tssc/common.sh\necho \"Successfully patched /workspace/source/tssc/common.sh\"\necho \"running init\"\npwd\nls -la\n/workspace/source/tssc/init.sh\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    },
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "build",
                                        "script": "echo \"running buildah-tssc\"\n/workspace/source/tssc/buildah-tssc.sh\ncat ./results/buildah-tssc/BASE_IMAGES_DIGESTS \u003e $(results.BASE_IMAGES_DIGESTS.path)\ncat ./results/buildah-tssc/IMAGE_DIGEST \u003e $(results.IMAGE_DIGEST.path)\ncat ./results/buildah-tssc/IMAGE_URL \u003e $(results.IMAGE_URL.path)\ncat ./results/buildah-tssc/SBOM_BLOB_URL \u003e $(results.SBOM_BLOB_URL.path)\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deploy",
                            "params": [
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Deploy built image to development environment.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy",
                                        "script": "echo \"running update-deployment\"\n/workspace/source/tssc/update-deployment.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(params.event-type)",
                                    "operator": "notin",
                                    "values": [
                                        "pull_request",
                                        "Merge Request"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deployment-check",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload-check",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy-check",
                                        "script": "echo \"running acs-deploy-check\"\n/workspace/source/tssc/acs-deploy-check.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(params.event-type)",
                                    "operator": "in",
                                    "values": [
                                        "push",
                                        "Push"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "scan",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "scan-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "scan",
                                        "script": "echo \"running acs-image-check\"\n/workspace/source/tssc/acs-image-check.sh\necho \"running acs-image-scan\"\n/workspace/source/tssc/acs-image-scan.sh\ncat ./results/acs-image-scan/SCAN_OUTPUT \u003e $(results.SCAN_OUTPUT.path)\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "show-sbom",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Show SBOM report for the built image.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "show-workload-sbom",
                                        "task.output.location": "results",
                                        "task.results.format": "application/text",
                                        "task.results.key": "LINK_TO_SBOM",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Placeholder result meant to make RHDH identify this task as the producer of the SBOM logs.",
                                        "name": "LINK_TO_SBOM",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "show-sbom",
                                        "script": "echo \"running show-sbom-rhdh\"\n/workspace/source/tssc/show-sbom-rhdh.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "summarize",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Summarize all the steps in the build pipeline.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "summarize-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "summary",
                                        "script": "echo \"running summary\"\n/workspace/source/tssc/summary.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "taskRunTemplate": {
                    "serviceAccountName": "pipeline"
                },
                "timeouts": {
                    "pipeline": "1h0m0s"
                },
                "workspaces": [
                    {
                        "name": "gitops-auth",
                        "secret": {
                            "secretName": "$(params.gitops-auth-secret-name)"
                        }
                    },
                    {
                        "name": "git-auth",
                        "secret": {
                            "secretName": "pac-gitauth-thrktk"
                        }
                    },
                    {
                        "name": "workspace",
                        "volumeClaimTemplate": {
                            "metadata": {
                                "creationTimestamp": null
                            },
                            "spec": {
                                "accessModes": [
                                    "ReadWriteOnce"
                                ],
                                "resources": {
                                    "requests": {
                                        "storage": "1Gi"
                                    }
                                }
                            },
                            "status": {}
                        }
                    }
                ]
            },
            "status": {
                "childReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-mcmxurgq-on-push-xrwgx-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-mcmxurgq-on-push-xrwgx-build",
                        "pipelineTaskName": "build"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-mcmxurgq-on-push-xrwgx-deploy",
                        "pipelineTaskName": "deploy",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "notin",
                                "values": [
                                    "pull_request",
                                    "Merge Request"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-mcmxurgq-on-push-xrwgx-deployment-check",
                        "pipelineTaskName": "deployment-check",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "in",
                                "values": [
                                    "push",
                                    "Push"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-mcmxurgq-on-push-xrwgx-scan",
                        "pipelineTaskName": "scan"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-mcmxurgq-on-push-xrwgx-show-sbom",
                        "pipelineTaskName": "show-sbom"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-mcmxurgq-on-push-xrwgx-summarize",
                        "pipelineTaskName": "summarize"
                    }
                ],
                "completionTime": "2026-04-27T16:36:52Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-27T16:36:52Z",
                        "message": "Tasks Completed: 7 (Failed: 0, Cancelled 0), Skipped: 0",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Source Repository URL",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Revision of the Source Repository",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "description": "Fully Qualified Output Image",
                            "name": "output-image",
                            "type": "string"
                        },
                        {
                            "default": ".",
                            "description": "Path to the source code of an application's component from where to build image.",
                            "name": "path-context",
                            "type": "string"
                        },
                        {
                            "default": "Dockerfile",
                            "description": "Path to the Dockerfile inside the context specified by parameter path-context",
                            "name": "dockerfile",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Force rebuild image",
                            "name": "rebuild",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Image tag expiration time, time values could be something like 1h, 2d, 3w for hours, days, and weeks, respectively.",
                            "name": "image-expires-after",
                            "type": "string"
                        },
                        {
                            "default": "rox-api-token",
                            "name": "stackrox-secret",
                            "type": "string"
                        },
                        {
                            "default": "gitops-auth-secret",
                            "description": "Secret name to enable this pipeline to update the gitops repo with the new image. ",
                            "name": "gitops-auth-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "cosign-pub",
                            "description": "Secret name to enable verify cosign signature. ",
                            "name": "cosign-public-key-secret",
                            "type": "string"
                        },
                        {
                            "default": "push",
                            "description": "Event that triggered the pipeline run, e.g. push, pull_request",
                            "name": "event-type",
                            "type": "string"
                        },
                        {
                            "default": [],
                            "description": "Array of --build-arg values (\"arg=value\" strings) for buildah",
                            "name": "build-args",
                            "type": "array"
                        },
                        {
                            "default": "",
                            "description": "Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                            "name": "build-args-file",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Digest of the image just built",
                            "name": "IMAGE_DIGEST",
                            "value": "$(tasks.build.results.IMAGE_DIGEST)"
                        },
                        {
                            "description": "Image repository and tag where the built image was pushed",
                            "name": "IMAGE_URL",
                            "value": "$(tasks.build.results.IMAGE_URL)"
                        },
                        {
                            "description": "Digests of the base images used for build",
                            "name": "BASE_IMAGES_DIGESTS",
                            "value": "$(tasks.build.results.BASE_IMAGES_DIGESTS)"
                        },
                        {
                            "description": "Link to the SBOM layer pushed to the registry",
                            "name": "SBOM_BLOB_URL",
                            "value": "$(tasks.build.results.SBOM_BLOB_URL)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_URL",
                            "value": "$(tasks.clone-repository.results.url)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_COMMIT",
                            "value": "$(tasks.clone-repository.results.commit)"
                        },
                        {
                            "description": "",
                            "name": "ACS_SCAN_OUTPUT",
                            "value": "$(tasks.scan.results.SCAN_OUTPUT)"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-mcmxurgq"
                                },
                                {
                                    "name": "revision",
                                    "value": "fc50702339b1e3b8f89ded74f75e156f3ac72595"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "fc50702339b1e3b8f89ded74f75e156f3ac72595"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "build",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "cosign-public-secret-name",
                                    "value": "cosign-pub"
                                },
                                {
                                    "name": "tpa_secret_name",
                                    "value": "tpa-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-go-mcmxurgq:fc50702339b1e3b8f89ded74f75e156f3ac72595"
                                },
                                {
                                    "name": "DOCKERFILE",
                                    "value": "docker/Dockerfile"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                },
                                {
                                    "name": "BUILD_ARGS",
                                    "value": []
                                },
                                {
                                    "name": "BUILD_ARGS_FILE",
                                    "value": ""
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Builds source code into a container image and pushes the image into container registry using buildah tool.\nIn addition it generates a SBOM file, injects the SBOM file into final container image and pushes the SBOM file as separate image using cosign tool.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "build-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "./Dockerfile",
                                        "description": "Path to the Dockerfile to build.",
                                        "name": "DOCKERFILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry)",
                                        "name": "TLSVERIFY",
                                        "type": "string"
                                    },
                                    {
                                        "default": [],
                                        "description": "Array of --build-arg values (\"arg=value\" strings)",
                                        "name": "BUILD_ARGS",
                                        "type": "array"
                                    },
                                    {
                                        "default": "",
                                        "description": "Path to a file with build arguments, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                                        "name": "BUILD_ARGS_FILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Digest of the image just built",
                                        "name": "IMAGE_DIGEST",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Image repository and tag where the built image was pushed",
                                        "name": "IMAGE_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Digests of the base images used for build",
                                        "name": "BASE_IMAGES_DIGESTS",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Link to the SBOM layer pushed to the registry as part of an OCI artifact.",
                                        "name": "SBOM_BLOB_URL",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "DOCKERFILE",
                                            "value": "$(params.DOCKERFILE)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "TLSVERIFY",
                                            "value": "$(params.TLSVERIFY)"
                                        },
                                        {
                                            "name": "BUILD_ARGS_FILE",
                                            "value": "$(params.BUILD_ARGS_FILE)"
                                        },
                                        {
                                            "name": "_BUILDAH_STARTED_IN_USERNS"
                                        },
                                        {
                                            "name": "BUILDAH_ISOLATION",
                                            "value": "chroot"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_PASSWORD",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_KEY",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.tpa_secret_name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "cosign.pub",
                                                    "name": "$(params.cosign-public-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "DOCKERFILE",
                                                "value": "$(params.DOCKERFILE)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "TLSVERIFY",
                                                "value": "$(params.TLSVERIFY)"
                                            },
                                            {
                                                "name": "BUILD_ARGS_FILE",
                                                "value": "$(params.BUILD_ARGS_FILE)"
                                            },
                                            {
                                                "name": "_BUILDAH_STARTED_IN_USERNS"
                                            },
                                            {
                                                "name": "BUILDAH_ISOLATION",
                                                "value": "chroot"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_PASSWORD",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_KEY",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.tpa_secret_name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "cosign.pub",
                                                        "name": "$(params.cosign-public-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "# Sync scripts to the writable workspace\ncp -rf /work/tssc/ /workspace/source/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e /workspace/source/tssc/common.sh\necho \"Successfully patched /workspace/source/tssc/common.sh\"\necho \"running init\"\npwd\nls -la\n/workspace/source/tssc/init.sh\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    },
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "DOCKERFILE",
                                                "value": "$(params.DOCKERFILE)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "TLSVERIFY",
                                                "value": "$(params.TLSVERIFY)"
                                            },
                                            {
                                                "name": "BUILD_ARGS_FILE",
                                                "value": "$(params.BUILD_ARGS_FILE)"
                                            },
                                            {
                                                "name": "_BUILDAH_STARTED_IN_USERNS"
                                            },
                                            {
                                                "name": "BUILDAH_ISOLATION",
                                                "value": "chroot"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_PASSWORD",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_KEY",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.tpa_secret_name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "cosign.pub",
                                                        "name": "$(params.cosign-public-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "build",
                                        "script": "echo \"running buildah-tssc\"\n/workspace/source/tssc/buildah-tssc.sh\ncat ./results/buildah-tssc/BASE_IMAGES_DIGESTS \u003e $(results.BASE_IMAGES_DIGESTS.path)\ncat ./results/buildah-tssc/IMAGE_DIGEST \u003e $(results.IMAGE_DIGEST.path)\ncat ./results/buildah-tssc/IMAGE_URL \u003e $(results.IMAGE_URL.path)\ncat ./results/buildah-tssc/SBOM_BLOB_URL \u003e $(results.SBOM_BLOB_URL.path)\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deploy",
                            "params": [
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-go-mcmxurgq:fc50702339b1e3b8f89ded74f75e156f3ac72595"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Deploy built image to development environment.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy",
                                        "script": "echo \"running update-deployment\"\n/workspace/source/tssc/update-deployment.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "push",
                                    "operator": "notin",
                                    "values": [
                                        "pull_request",
                                        "Merge Request"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deployment-check",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-go-mcmxurgq:fc50702339b1e3b8f89ded74f75e156f3ac72595"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload-check",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy-check",
                                        "script": "echo \"running acs-deploy-check\"\n/workspace/source/tssc/acs-deploy-check.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "push",
                                    "operator": "in",
                                    "values": [
                                        "push",
                                        "Push"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "scan",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-go-mcmxurgq:fc50702339b1e3b8f89ded74f75e156f3ac72595"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "scan-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "scan",
                                        "script": "echo \"running acs-image-check\"\n/workspace/source/tssc/acs-image-check.sh\necho \"running acs-image-scan\"\n/workspace/source/tssc/acs-image-scan.sh\ncat ./results/acs-image-scan/SCAN_OUTPUT \u003e $(results.SCAN_OUTPUT.path)\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "show-sbom",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-go-mcmxurgq:fc50702339b1e3b8f89ded74f75e156f3ac72595"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Show SBOM report for the built image.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "show-workload-sbom",
                                        "task.output.location": "results",
                                        "task.results.format": "application/text",
                                        "task.results.key": "LINK_TO_SBOM",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Placeholder result meant to make RHDH identify this task as the producer of the SBOM logs.",
                                        "name": "LINK_TO_SBOM",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "show-sbom",
                                        "script": "echo \"running show-sbom-rhdh\"\n/workspace/source/tssc/show-sbom-rhdh.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "summarize",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-go-mcmxurgq:fc50702339b1e3b8f89ded74f75e156f3ac72595"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Summarize all the steps in the build pipeline.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "summarize-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "summary",
                                        "script": "echo \"running summary\"\n/workspace/source/tssc/summary.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "results": [
                    {
                        "name": "IMAGE_DIGEST",
                        "value": "sha256:8f543c300c187227a85c25635b5d71b4115f0bb3fef248bc06f15751140d3f97"
                    },
                    {
                        "name": "IMAGE_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-go-mcmxurgq:fc50702339b1e3b8f89ded74f75e156f3ac72595"
                    },
                    {
                        "name": "BASE_IMAGES_DIGESTS",
                        "value": "registry.access.redhat.com/ubi9/go-toolset:9.7-1776213685@sha256:77bfb0f283eaa3215909342c3dda940605eff5b9f72d6dc18fad1d154d172d55\nregistry.access.redhat.com/ubi9/ubi-micro:latest@sha256:2173487b3b72b1a7b11edc908e9bbf1726f9df46a4f78fd6d19a2bab0a701f38\n"
                    },
                    {
                        "name": "SBOM_BLOB_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-go-mcmxurgq@sha256:54be758b98cab6948d376d4c209a237dbdbf9b14815378d68395e48528fab4bd"
                    },
                    {
                        "name": "CHAINS-GIT_URL",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-mcmxurgq"
                    },
                    {
                        "name": "CHAINS-GIT_COMMIT",
                        "value": "fc50702339b1e3b8f89ded74f75e156f3ac72595"
                    },
                    {
                        "name": "ACS_SCAN_OUTPUT",
                        "value": "{\"vulnerabilities\":{\"critical\":0,\"high\":4,\"medium\":7,\"low\":5}}\n"
                    }
                ],
                "startTime": "2026-04-27T16:35:01Z"
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "PipelineRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "chains.tekton.dev/transparency": "https://rekor-server-tssc-tas.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/api/v1/log/entries?logIndex=152",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "73234423931",
                    "pipelinesascode.tekton.dev/controller-info": "{\"name\":\"default\",\"configmap\":\"pipelines-as-code\",\"secret\":\"pipelines-as-code-secret\", \"gRepo\": \"pipelines-as-code\"}",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/git-auth-secret": "pac-gitauth-zojpuz",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-java-quarkus-jjkcnsga-gitops-on-pull-request-lv7gf",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-quarkus-jjkcnsga-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pipeline": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/pipelines/gitops-pull-request-tssc.yaml",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-jjkcnsga-gitops",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-quarkus-jjkcnsga-gitops-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "05ed9370197c859ccc41bc9e744ded3fb48ad0ac",
                    "pipelinesascode.tekton.dev/sha-title": "Promote to stage environment",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-jjkcnsga-gitops/commit/05ed9370197c859ccc41bc9e744ded3fb48ad0ac",
                    "pipelinesascode.tekton.dev/source-branch": "promote-to-stage-1777307963385",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-jjkcnsga-gitops",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/task-0": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/git-clone.yaml",
                    "pipelinesascode.tekton.dev/task-1": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/gather-deploy-images.yaml",
                    "pipelinesascode.tekton.dev/task-2": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/verify-enterprise-contract.yaml",
                    "pipelinesascode.tekton.dev/task-3": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/gather-deploy-images.yaml",
                    "pipelinesascode.tekton.dev/task-4": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/download-sbom-from-url-in-attestation.yaml",
                    "pipelinesascode.tekton.dev/task-5": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/upload-sbom-to-trustification.yaml",
                    "pipelinesascode.tekton.dev/task-6": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/fetch-gitops-images.yaml",
                    "pipelinesascode.tekton.dev/task-7": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/verify-gitops-conforma.yaml",
                    "pipelinesascode.tekton.dev/task-8": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/download-gitops-sbom.yaml",
                    "pipelinesascode.tekton.dev/task-9": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/upload-gitops-sbom.yaml",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-java-quarkus-jjkcnsga-gitops",
                    "results.tekton.dev/record": "tssc-app-ci/results/9d2bbadc-e934-4359-9941-329e6b3c72c5/records/9d2bbadc-e934-4359-9941-329e6b3c72c5",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-java-quarkus-jjkcnsga-gitops\",\"commit\":\"05ed9370197c859ccc41bc9e744ded3fb48ad0ac\",\"eventType\":\"pull_request\",\"pull_request-id\":1}",
                    "results.tekton.dev/result": "tssc-app-ci/results/9d2bbadc-e934-4359-9941-329e6b3c72c5",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-27T16:39:34Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "results.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer"
                ],
                "generateName": "e2e-tests-java-quarkus-jjkcnsga-gitops-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-java-quarkus-jjkcnsga",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-java-quarkus-jjkcnsga",
                    "backstage.io/kubernetes-id": "e2e-tests-java-quarkus-jjkcnsga",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-java-quarkus-jjkcnsga",
                    "pipelinesascode.tekton.dev/check-run-id": "73234423931",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-quarkus-jjkcnsga-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-quarkus-jjkcnsga-gitops-repository",
                    "pipelinesascode.tekton.dev/sha": "05ed9370197c859ccc41bc9e744ded3fb48ad0ac",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-java-quarkus-jjkcnsga-gitops",
                    "tekton.dev/pipeline": "e2e-tests-java-quarkus-jjkcnsga-gitops-on-pull-request-lv7gf"
                },
                "name": "e2e-tests-java-quarkus-jjkcnsga-gitops-on-pull-request-lv7gf",
                "namespace": "tssc-app-ci",
                "resourceVersion": "54379",
                "uid": "9d2bbadc-e934-4359-9941-329e6b3c72c5"
            },
            "spec": {
                "params": [
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-jjkcnsga-gitops"
                    },
                    {
                        "name": "revision",
                        "value": "05ed9370197c859ccc41bc9e744ded3fb48ad0ac"
                    },
                    {
                        "name": "target-branch",
                        "value": "main"
                    },
                    {
                        "name": "fail-if-trustification-not-configured",
                        "value": "false"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Gitops repo url",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Gitops repo revision",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "default": "main",
                            "description": "The target branch for the pull request",
                            "name": "target-branch",
                            "type": "string"
                        },
                        {
                            "default": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7",
                            "description": "Enterprise Contract policy to validate against",
                            "name": "ec-policy-configuration",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should EC violations cause the pipeline to fail?",
                            "name": "ec-strict",
                            "type": "string"
                        },
                        {
                            "default": "k8s://$(context.pipelineRun.namespace)/cosign-pub",
                            "description": "The public key that EC should use to verify signatures",
                            "name": "ec-public-key",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should the pipeline fail when there are SBOMs to upload but Trustification is not properly configured (i.e. the secret is missing or doesn't have all the required keys)?",
                            "name": "fail-if-trustification-not-configured",
                            "type": "string"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "$(params.git-url)"
                                },
                                {
                                    "name": "revision",
                                    "value": "$(params.revision)"
                                },
                                {
                                    "name": "fetchTags",
                                    "value": "true"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "$(params.revision)"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "get-images",
                            "params": [
                                {
                                    "name": "PUBLIC_KEY_URL",
                                    "value": "$(params.ec-public-key)"
                                },
                                {
                                    "name": "TARGET_BRANCH",
                                    "value": "$(params.target-branch)"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Extract images from deployment YAML to pass to Conforma for validation",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a valid k8s cosign reference, e.g. k8s://my-space/my-secret where my-secret contains the expected cosign.pub attribute.",
                                        "name": "PUBLIC_KEY_URL",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "If specified, will gather only the images that changed between the current revision and the target branch. Useful for pull requests. Note that the repository cloned on the source workspace must already contain the origin/$TARGET_BRANCH reference.\n",
                                        "name": "TARGET_BRANCH",
                                        "type": "string"
                                    },
                                    {
                                        "default": [
                                            "development",
                                            "stage",
                                            "prod"
                                        ],
                                        "description": "Gather images from the manifest files for the specified environments",
                                        "name": "ENVIRONMENTS",
                                        "type": "array"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Cosign base64 encoded public key fetched from secrets.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images with SBOMs to upload to Trustification \n",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images to be verified, in a format compatible with https://github.com/konflux-ci/build-definitions/tree/main/task/verify-enterprise-contract/0.1. When there are no images to verify, this is an empty string.\n",
                                        "name": "CONFORMA_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TARGET_BRANCH",
                                            "value": "$(params.TARGET_BRANCH)"
                                        },
                                        {
                                            "name": "PUBLIC_KEY_URL",
                                            "value": "$(params.PUBLIC_KEY_URL)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "pwd\nls -la\n# Sync scripts to the writable workspace\ncp -rf /work/tssc/ $(workspaces.source.path)/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e $(workspaces.source.path)/tssc/common.sh\necho \"Successfully patched $(workspaces.source.path)/tssc/common.sh\"\n\necho \"Parsing public key url\"\nCLEAN_URL=\"${PUBLIC_KEY_URL#k8s://}\"\nNS=\"${CLEAN_URL%/*}\"\nSECRET=\"${CLEAN_URL##*/}\"\nCOSIGN_PUBLIC_KEY=$(oc get secrets $SECRET -n $NS -o json | jq -r '.data.\"cosign.pub\"')\necho $COSIGN_PUBLIC_KEY \u003e $(results.COSIGN_PUBLIC_KEY.path)\n"
                                    },
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "get-images",
                                        "script": "echo \"running gather-images-to-upload-sbom\"\n$(workspaces.source.path)/tssc/gather-images-to-upload-sbom.sh\nmv ./results/gather-deploy-images ./results/sbom-images \ncat ./results/sbom-images/IMAGES_TO_VERIFY \u003e $(results.SBOM_IMAGES.path)\n\necho \"running gather-deploy-images\"\n$(workspaces.source.path)/tssc/gather-deploy-images.sh\ncat ./results/gather-deploy-images/IMAGES_TO_VERIFY \u003e $(results.CONFORMA_IMAGES.path)\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "verify-conforma",
                            "params": [
                                {
                                    "name": "STRICT",
                                    "value": "$(params.ec-strict)"
                                },
                                {
                                    "name": "POLICY_CONFIGURATION",
                                    "value": "$(params.ec-policy-configuration)"
                                },
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Verify the enterprise contract is met",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "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": "true",
                                        "description": "Fail the task if policy fails. Set to `\"false\"` to disable it.",
                                        "name": "STRICT",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Short summary of the policy evaluation for each image.",
                                        "name": "TEST_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STRICT",
                                            "value": "$(params.STRICT)"
                                        },
                                        {
                                            "name": "POLICY_CONFIGURATION",
                                            "value": "$(params.POLICY_CONFIGURATION)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "verify",
                                        "script": "echo \"running verify-conforma\"\n$(workspaces.source.path)/tssc/verify-conforma.sh\ncat ./results/verify-conforma/TEST_OUTPUT \u003e $(results.TEST_OUTPUT.path)\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.CONFORMA_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "download-sboms",
                            "params": [
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                },
                                {
                                    "name": "SBOM_IMAGES",
                                    "value": "$(tasks.get-images.results.SBOM_IMAGES)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Download SBOM from images",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Images to be considered for SBOM download.",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        },
                                        {
                                            "name": "IMAGES",
                                            "value": "$(params.SBOM_IMAGES)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "download",
                                        "script": "echo \"running download-sbom-from-url-in-attestation\"\n$(workspaces.source.path)/tssc/download-sbom-from-url-in-attestation.sh\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "upload-sboms",
                            "params": [
                                {
                                    "name": "TPA_SECRET",
                                    "value": "$(params.trustification-secret-name)"
                                }
                            ],
                            "runAfter": [
                                "download-sboms"
                            ],
                            "taskSpec": {
                                "description": "Upload SBOMs to Trustification",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "TPA Secret to obtain Trustification vars from.",
                                        "name": "TPA_SECRET",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "bombastic_api_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_id",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_secret",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_issuer_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "upload",
                                        "script": "echo \"running upload-sbom-to-trustification\"\n$(workspaces.source.path)/tssc/upload-sbom-to-trustification.sh\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "taskRunTemplate": {
                    "serviceAccountName": "pipeline"
                },
                "timeouts": {
                    "pipeline": "1h0m0s"
                },
                "workspaces": [
                    {
                        "name": "git-auth",
                        "secret": {
                            "secretName": "pac-gitauth-zojpuz"
                        }
                    },
                    {
                        "name": "workspace",
                        "volumeClaimTemplate": {
                            "metadata": {
                                "creationTimestamp": null
                            },
                            "spec": {
                                "accessModes": [
                                    "ReadWriteOnce"
                                ],
                                "resources": {
                                    "requests": {
                                        "storage": "1Gi"
                                    }
                                }
                            },
                            "status": {}
                        }
                    }
                ]
            },
            "status": {
                "childReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java1e400b933db7ff848d461fd979f4578c-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quark1e400b933db7ff848d461fd979f4578c-get-images",
                        "pipelineTaskName": "get-images"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-1e400b933db7ff848d461fd979f4578c-verify-conforma",
                        "pipelineTaskName": "verify-conforma",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:0085e2fd1a3a9f80739a3c8132c80eddf8675f16\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-q1e400b933db7ff848d461fd979f4578c-download-sboms",
                        "pipelineTaskName": "download-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:0085e2fd1a3a9f80739a3c8132c80eddf8675f16\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-qua1e400b933db7ff848d461fd979f4578c-upload-sboms",
                        "pipelineTaskName": "upload-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:0085e2fd1a3a9f80739a3c8132c80eddf8675f16\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    }
                ],
                "completionTime": "2026-04-27T16:40:32Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-27T16:40:32Z",
                        "message": "Tasks Completed: 5 (Failed: 0, Cancelled 0), Skipped: 0",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Gitops repo url",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Gitops repo revision",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "default": "main",
                            "description": "The target branch for the pull request",
                            "name": "target-branch",
                            "type": "string"
                        },
                        {
                            "default": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7",
                            "description": "Enterprise Contract policy to validate against",
                            "name": "ec-policy-configuration",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should EC violations cause the pipeline to fail?",
                            "name": "ec-strict",
                            "type": "string"
                        },
                        {
                            "default": "k8s://$(context.pipelineRun.namespace)/cosign-pub",
                            "description": "The public key that EC should use to verify signatures",
                            "name": "ec-public-key",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should the pipeline fail when there are SBOMs to upload but Trustification is not properly configured (i.e. the secret is missing or doesn't have all the required keys)?",
                            "name": "fail-if-trustification-not-configured",
                            "type": "string"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-jjkcnsga-gitops"
                                },
                                {
                                    "name": "revision",
                                    "value": "05ed9370197c859ccc41bc9e744ded3fb48ad0ac"
                                },
                                {
                                    "name": "fetchTags",
                                    "value": "true"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "05ed9370197c859ccc41bc9e744ded3fb48ad0ac"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "get-images",
                            "params": [
                                {
                                    "name": "PUBLIC_KEY_URL",
                                    "value": "k8s://tssc-app-ci/cosign-pub"
                                },
                                {
                                    "name": "TARGET_BRANCH",
                                    "value": "main"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Extract images from deployment YAML to pass to Conforma for validation",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a valid k8s cosign reference, e.g. k8s://my-space/my-secret where my-secret contains the expected cosign.pub attribute.",
                                        "name": "PUBLIC_KEY_URL",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "If specified, will gather only the images that changed between the current revision and the target branch. Useful for pull requests. Note that the repository cloned on the source workspace must already contain the origin/$TARGET_BRANCH reference.\n",
                                        "name": "TARGET_BRANCH",
                                        "type": "string"
                                    },
                                    {
                                        "default": [
                                            "development",
                                            "stage",
                                            "prod"
                                        ],
                                        "description": "Gather images from the manifest files for the specified environments",
                                        "name": "ENVIRONMENTS",
                                        "type": "array"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Cosign base64 encoded public key fetched from secrets.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images with SBOMs to upload to Trustification \n",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images to be verified, in a format compatible with https://github.com/konflux-ci/build-definitions/tree/main/task/verify-enterprise-contract/0.1. When there are no images to verify, this is an empty string.\n",
                                        "name": "CONFORMA_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TARGET_BRANCH",
                                            "value": "$(params.TARGET_BRANCH)"
                                        },
                                        {
                                            "name": "PUBLIC_KEY_URL",
                                            "value": "$(params.PUBLIC_KEY_URL)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TARGET_BRANCH",
                                                "value": "$(params.TARGET_BRANCH)"
                                            },
                                            {
                                                "name": "PUBLIC_KEY_URL",
                                                "value": "$(params.PUBLIC_KEY_URL)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "pwd\nls -la\n# Sync scripts to the writable workspace\ncp -rf /work/tssc/ $(workspaces.source.path)/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e $(workspaces.source.path)/tssc/common.sh\necho \"Successfully patched $(workspaces.source.path)/tssc/common.sh\"\n\necho \"Parsing public key url\"\nCLEAN_URL=\"${PUBLIC_KEY_URL#k8s://}\"\nNS=\"${CLEAN_URL%/*}\"\nSECRET=\"${CLEAN_URL##*/}\"\nCOSIGN_PUBLIC_KEY=$(oc get secrets $SECRET -n $NS -o json | jq -r '.data.\"cosign.pub\"')\necho $COSIGN_PUBLIC_KEY \u003e $(results.COSIGN_PUBLIC_KEY.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TARGET_BRANCH",
                                                "value": "$(params.TARGET_BRANCH)"
                                            },
                                            {
                                                "name": "PUBLIC_KEY_URL",
                                                "value": "$(params.PUBLIC_KEY_URL)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "get-images",
                                        "script": "echo \"running gather-images-to-upload-sbom\"\n$(workspaces.source.path)/tssc/gather-images-to-upload-sbom.sh\nmv ./results/gather-deploy-images ./results/sbom-images \ncat ./results/sbom-images/IMAGES_TO_VERIFY \u003e $(results.SBOM_IMAGES.path)\n\necho \"running gather-deploy-images\"\n$(workspaces.source.path)/tssc/gather-deploy-images.sh\ncat ./results/gather-deploy-images/IMAGES_TO_VERIFY \u003e $(results.CONFORMA_IMAGES.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "verify-conforma",
                            "params": [
                                {
                                    "name": "STRICT",
                                    "value": "true"
                                },
                                {
                                    "name": "POLICY_CONFIGURATION",
                                    "value": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7"
                                },
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Verify the enterprise contract is met",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "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": "true",
                                        "description": "Fail the task if policy fails. Set to `\"false\"` to disable it.",
                                        "name": "STRICT",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Short summary of the policy evaluation for each image.",
                                        "name": "TEST_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STRICT",
                                            "value": "$(params.STRICT)"
                                        },
                                        {
                                            "name": "POLICY_CONFIGURATION",
                                            "value": "$(params.POLICY_CONFIGURATION)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STRICT",
                                                "value": "$(params.STRICT)"
                                            },
                                            {
                                                "name": "POLICY_CONFIGURATION",
                                                "value": "$(params.POLICY_CONFIGURATION)"
                                            },
                                            {
                                                "name": "REKOR_HOST",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rekor_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TUF_MIRROR",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "tuf_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "value": "$(params.COSIGN_PUBLIC_KEY)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "verify",
                                        "script": "echo \"running verify-conforma\"\n$(workspaces.source.path)/tssc/verify-conforma.sh\ncat ./results/verify-conforma/TEST_OUTPUT \u003e $(results.TEST_OUTPUT.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.CONFORMA_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "download-sboms",
                            "params": [
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                },
                                {
                                    "name": "SBOM_IMAGES",
                                    "value": "$(tasks.get-images.results.SBOM_IMAGES)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Download SBOM from images",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Images to be considered for SBOM download.",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        },
                                        {
                                            "name": "IMAGES",
                                            "value": "$(params.SBOM_IMAGES)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "value": "$(params.COSIGN_PUBLIC_KEY)"
                                            },
                                            {
                                                "name": "IMAGES",
                                                "value": "$(params.SBOM_IMAGES)"
                                            },
                                            {
                                                "name": "REKOR_HOST",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rekor_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TUF_MIRROR",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "tuf_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "download",
                                        "script": "echo \"running download-sbom-from-url-in-attestation\"\n$(workspaces.source.path)/tssc/download-sbom-from-url-in-attestation.sh\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "upload-sboms",
                            "params": [
                                {
                                    "name": "TPA_SECRET",
                                    "value": "tpa-secret"
                                }
                            ],
                            "runAfter": [
                                "download-sboms"
                            ],
                            "taskSpec": {
                                "description": "Upload SBOMs to Trustification",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "TPA Secret to obtain Trustification vars from.",
                                        "name": "TPA_SECRET",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "bombastic_api_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_id",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_secret",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_issuer_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "bombastic_api_url",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_client_id",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_client_secret",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_issuer_url",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "upload",
                                        "script": "echo \"running upload-sbom-to-trustification\"\n$(workspaces.source.path)/tssc/upload-sbom-to-trustification.sh\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "startTime": "2026-04-27T16:39:34Z"
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "PipelineRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "chains.tekton.dev/transparency": "https://rekor-server-tssc-tas.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/api/v1/log/entries?logIndex=175",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "73234708104",
                    "pipelinesascode.tekton.dev/controller-info": "{\"name\":\"default\",\"configmap\":\"pipelines-as-code\",\"secret\":\"pipelines-as-code-secret\", \"gRepo\": \"pipelines-as-code\"}",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/git-auth-secret": "pac-gitauth-tqmiye",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-java-quarkus-jjkcnsga-gitops-on-pull-request-wx89q",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-quarkus-jjkcnsga-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pipeline": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/pipelines/gitops-pull-request-tssc.yaml",
                    "pipelinesascode.tekton.dev/pull-request": "2",
                    "pipelinesascode.tekton.dev/repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-jjkcnsga-gitops",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-quarkus-jjkcnsga-gitops-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "021d906cf4f400b1aceee80e0ff23a3d62a9e666",
                    "pipelinesascode.tekton.dev/sha-title": "Promote to prod environment",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-jjkcnsga-gitops/commit/021d906cf4f400b1aceee80e0ff23a3d62a9e666",
                    "pipelinesascode.tekton.dev/source-branch": "promote-to-prod-1777308063850",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-jjkcnsga-gitops",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/task-0": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/git-clone.yaml",
                    "pipelinesascode.tekton.dev/task-1": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/gather-deploy-images.yaml",
                    "pipelinesascode.tekton.dev/task-2": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/verify-enterprise-contract.yaml",
                    "pipelinesascode.tekton.dev/task-3": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/gather-deploy-images.yaml",
                    "pipelinesascode.tekton.dev/task-4": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/download-sbom-from-url-in-attestation.yaml",
                    "pipelinesascode.tekton.dev/task-5": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/upload-sbom-to-trustification.yaml",
                    "pipelinesascode.tekton.dev/task-6": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/fetch-gitops-images.yaml",
                    "pipelinesascode.tekton.dev/task-7": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/verify-gitops-conforma.yaml",
                    "pipelinesascode.tekton.dev/task-8": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/download-gitops-sbom.yaml",
                    "pipelinesascode.tekton.dev/task-9": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/upload-gitops-sbom.yaml",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-java-quarkus-jjkcnsga-gitops",
                    "results.tekton.dev/record": "tssc-app-ci/results/8287abaa-16ef-4c12-8a61-67f9e55ef30d/records/8287abaa-16ef-4c12-8a61-67f9e55ef30d",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-java-quarkus-jjkcnsga-gitops\",\"commit\":\"021d906cf4f400b1aceee80e0ff23a3d62a9e666\",\"eventType\":\"pull_request\",\"pull_request-id\":2}",
                    "results.tekton.dev/result": "tssc-app-ci/results/8287abaa-16ef-4c12-8a61-67f9e55ef30d",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-27T16:41:15Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "results.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer"
                ],
                "generateName": "e2e-tests-java-quarkus-jjkcnsga-gitops-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-java-quarkus-jjkcnsga",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-java-quarkus-jjkcnsga",
                    "backstage.io/kubernetes-id": "e2e-tests-java-quarkus-jjkcnsga",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-java-quarkus-jjkcnsga",
                    "pipelinesascode.tekton.dev/check-run-id": "73234708104",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-quarkus-jjkcnsga-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "2",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-quarkus-jjkcnsga-gitops-repository",
                    "pipelinesascode.tekton.dev/sha": "021d906cf4f400b1aceee80e0ff23a3d62a9e666",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-java-quarkus-jjkcnsga-gitops",
                    "tekton.dev/pipeline": "e2e-tests-java-quarkus-jjkcnsga-gitops-on-pull-request-wx89q"
                },
                "name": "e2e-tests-java-quarkus-jjkcnsga-gitops-on-pull-request-wx89q",
                "namespace": "tssc-app-ci",
                "resourceVersion": "57016",
                "uid": "8287abaa-16ef-4c12-8a61-67f9e55ef30d"
            },
            "spec": {
                "params": [
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-jjkcnsga-gitops"
                    },
                    {
                        "name": "revision",
                        "value": "021d906cf4f400b1aceee80e0ff23a3d62a9e666"
                    },
                    {
                        "name": "target-branch",
                        "value": "main"
                    },
                    {
                        "name": "fail-if-trustification-not-configured",
                        "value": "false"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Gitops repo url",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Gitops repo revision",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "default": "main",
                            "description": "The target branch for the pull request",
                            "name": "target-branch",
                            "type": "string"
                        },
                        {
                            "default": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7",
                            "description": "Enterprise Contract policy to validate against",
                            "name": "ec-policy-configuration",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should EC violations cause the pipeline to fail?",
                            "name": "ec-strict",
                            "type": "string"
                        },
                        {
                            "default": "k8s://$(context.pipelineRun.namespace)/cosign-pub",
                            "description": "The public key that EC should use to verify signatures",
                            "name": "ec-public-key",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should the pipeline fail when there are SBOMs to upload but Trustification is not properly configured (i.e. the secret is missing or doesn't have all the required keys)?",
                            "name": "fail-if-trustification-not-configured",
                            "type": "string"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "$(params.git-url)"
                                },
                                {
                                    "name": "revision",
                                    "value": "$(params.revision)"
                                },
                                {
                                    "name": "fetchTags",
                                    "value": "true"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "$(params.revision)"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "get-images",
                            "params": [
                                {
                                    "name": "PUBLIC_KEY_URL",
                                    "value": "$(params.ec-public-key)"
                                },
                                {
                                    "name": "TARGET_BRANCH",
                                    "value": "$(params.target-branch)"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Extract images from deployment YAML to pass to Conforma for validation",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a valid k8s cosign reference, e.g. k8s://my-space/my-secret where my-secret contains the expected cosign.pub attribute.",
                                        "name": "PUBLIC_KEY_URL",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "If specified, will gather only the images that changed between the current revision and the target branch. Useful for pull requests. Note that the repository cloned on the source workspace must already contain the origin/$TARGET_BRANCH reference.\n",
                                        "name": "TARGET_BRANCH",
                                        "type": "string"
                                    },
                                    {
                                        "default": [
                                            "development",
                                            "stage",
                                            "prod"
                                        ],
                                        "description": "Gather images from the manifest files for the specified environments",
                                        "name": "ENVIRONMENTS",
                                        "type": "array"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Cosign base64 encoded public key fetched from secrets.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images with SBOMs to upload to Trustification \n",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images to be verified, in a format compatible with https://github.com/konflux-ci/build-definitions/tree/main/task/verify-enterprise-contract/0.1. When there are no images to verify, this is an empty string.\n",
                                        "name": "CONFORMA_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TARGET_BRANCH",
                                            "value": "$(params.TARGET_BRANCH)"
                                        },
                                        {
                                            "name": "PUBLIC_KEY_URL",
                                            "value": "$(params.PUBLIC_KEY_URL)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "pwd\nls -la\n# Sync scripts to the writable workspace\ncp -rf /work/tssc/ $(workspaces.source.path)/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e $(workspaces.source.path)/tssc/common.sh\necho \"Successfully patched $(workspaces.source.path)/tssc/common.sh\"\n\necho \"Parsing public key url\"\nCLEAN_URL=\"${PUBLIC_KEY_URL#k8s://}\"\nNS=\"${CLEAN_URL%/*}\"\nSECRET=\"${CLEAN_URL##*/}\"\nCOSIGN_PUBLIC_KEY=$(oc get secrets $SECRET -n $NS -o json | jq -r '.data.\"cosign.pub\"')\necho $COSIGN_PUBLIC_KEY \u003e $(results.COSIGN_PUBLIC_KEY.path)\n"
                                    },
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "get-images",
                                        "script": "echo \"running gather-images-to-upload-sbom\"\n$(workspaces.source.path)/tssc/gather-images-to-upload-sbom.sh\nmv ./results/gather-deploy-images ./results/sbom-images \ncat ./results/sbom-images/IMAGES_TO_VERIFY \u003e $(results.SBOM_IMAGES.path)\n\necho \"running gather-deploy-images\"\n$(workspaces.source.path)/tssc/gather-deploy-images.sh\ncat ./results/gather-deploy-images/IMAGES_TO_VERIFY \u003e $(results.CONFORMA_IMAGES.path)\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "verify-conforma",
                            "params": [
                                {
                                    "name": "STRICT",
                                    "value": "$(params.ec-strict)"
                                },
                                {
                                    "name": "POLICY_CONFIGURATION",
                                    "value": "$(params.ec-policy-configuration)"
                                },
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Verify the enterprise contract is met",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "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": "true",
                                        "description": "Fail the task if policy fails. Set to `\"false\"` to disable it.",
                                        "name": "STRICT",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Short summary of the policy evaluation for each image.",
                                        "name": "TEST_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STRICT",
                                            "value": "$(params.STRICT)"
                                        },
                                        {
                                            "name": "POLICY_CONFIGURATION",
                                            "value": "$(params.POLICY_CONFIGURATION)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "verify",
                                        "script": "echo \"running verify-conforma\"\n$(workspaces.source.path)/tssc/verify-conforma.sh\ncat ./results/verify-conforma/TEST_OUTPUT \u003e $(results.TEST_OUTPUT.path)\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.CONFORMA_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "download-sboms",
                            "params": [
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                },
                                {
                                    "name": "SBOM_IMAGES",
                                    "value": "$(tasks.get-images.results.SBOM_IMAGES)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Download SBOM from images",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Images to be considered for SBOM download.",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        },
                                        {
                                            "name": "IMAGES",
                                            "value": "$(params.SBOM_IMAGES)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "download",
                                        "script": "echo \"running download-sbom-from-url-in-attestation\"\n$(workspaces.source.path)/tssc/download-sbom-from-url-in-attestation.sh\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "upload-sboms",
                            "params": [
                                {
                                    "name": "TPA_SECRET",
                                    "value": "$(params.trustification-secret-name)"
                                }
                            ],
                            "runAfter": [
                                "download-sboms"
                            ],
                            "taskSpec": {
                                "description": "Upload SBOMs to Trustification",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "TPA Secret to obtain Trustification vars from.",
                                        "name": "TPA_SECRET",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "bombastic_api_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_id",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_secret",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_issuer_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "upload",
                                        "script": "echo \"running upload-sbom-to-trustification\"\n$(workspaces.source.path)/tssc/upload-sbom-to-trustification.sh\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "taskRunTemplate": {
                    "serviceAccountName": "pipeline"
                },
                "timeouts": {
                    "pipeline": "1h0m0s"
                },
                "workspaces": [
                    {
                        "name": "git-auth",
                        "secret": {
                            "secretName": "pac-gitauth-tqmiye"
                        }
                    },
                    {
                        "name": "workspace",
                        "volumeClaimTemplate": {
                            "metadata": {
                                "creationTimestamp": null
                            },
                            "spec": {
                                "accessModes": [
                                    "ReadWriteOnce"
                                ],
                                "resources": {
                                    "requests": {
                                        "storage": "1Gi"
                                    }
                                }
                            },
                            "status": {}
                        }
                    }
                ]
            },
            "status": {
                "childReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-javaf301183aeac96a4f433a1fc81dfc419f-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quarkf301183aeac96a4f433a1fc81dfc419f-get-images",
                        "pipelineTaskName": "get-images"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-f301183aeac96a4f433a1fc81dfc419f-verify-conforma",
                        "pipelineTaskName": "verify-conforma",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:0085e2fd1a3a9f80739a3c8132c80eddf8675f16\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-qf301183aeac96a4f433a1fc81dfc419f-download-sboms",
                        "pipelineTaskName": "download-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:0085e2fd1a3a9f80739a3c8132c80eddf8675f16\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quaf301183aeac96a4f433a1fc81dfc419f-upload-sboms",
                        "pipelineTaskName": "upload-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:0085e2fd1a3a9f80739a3c8132c80eddf8675f16\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    }
                ],
                "completionTime": "2026-04-27T16:42:07Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-27T16:42:07Z",
                        "message": "Tasks Completed: 5 (Failed: 0, Cancelled 0), Skipped: 0",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Gitops repo url",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Gitops repo revision",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "default": "main",
                            "description": "The target branch for the pull request",
                            "name": "target-branch",
                            "type": "string"
                        },
                        {
                            "default": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7",
                            "description": "Enterprise Contract policy to validate against",
                            "name": "ec-policy-configuration",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should EC violations cause the pipeline to fail?",
                            "name": "ec-strict",
                            "type": "string"
                        },
                        {
                            "default": "k8s://$(context.pipelineRun.namespace)/cosign-pub",
                            "description": "The public key that EC should use to verify signatures",
                            "name": "ec-public-key",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should the pipeline fail when there are SBOMs to upload but Trustification is not properly configured (i.e. the secret is missing or doesn't have all the required keys)?",
                            "name": "fail-if-trustification-not-configured",
                            "type": "string"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-jjkcnsga-gitops"
                                },
                                {
                                    "name": "revision",
                                    "value": "021d906cf4f400b1aceee80e0ff23a3d62a9e666"
                                },
                                {
                                    "name": "fetchTags",
                                    "value": "true"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "021d906cf4f400b1aceee80e0ff23a3d62a9e666"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "get-images",
                            "params": [
                                {
                                    "name": "PUBLIC_KEY_URL",
                                    "value": "k8s://tssc-app-ci/cosign-pub"
                                },
                                {
                                    "name": "TARGET_BRANCH",
                                    "value": "main"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Extract images from deployment YAML to pass to Conforma for validation",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a valid k8s cosign reference, e.g. k8s://my-space/my-secret where my-secret contains the expected cosign.pub attribute.",
                                        "name": "PUBLIC_KEY_URL",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "If specified, will gather only the images that changed between the current revision and the target branch. Useful for pull requests. Note that the repository cloned on the source workspace must already contain the origin/$TARGET_BRANCH reference.\n",
                                        "name": "TARGET_BRANCH",
                                        "type": "string"
                                    },
                                    {
                                        "default": [
                                            "development",
                                            "stage",
                                            "prod"
                                        ],
                                        "description": "Gather images from the manifest files for the specified environments",
                                        "name": "ENVIRONMENTS",
                                        "type": "array"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Cosign base64 encoded public key fetched from secrets.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images with SBOMs to upload to Trustification \n",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images to be verified, in a format compatible with https://github.com/konflux-ci/build-definitions/tree/main/task/verify-enterprise-contract/0.1. When there are no images to verify, this is an empty string.\n",
                                        "name": "CONFORMA_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TARGET_BRANCH",
                                            "value": "$(params.TARGET_BRANCH)"
                                        },
                                        {
                                            "name": "PUBLIC_KEY_URL",
                                            "value": "$(params.PUBLIC_KEY_URL)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TARGET_BRANCH",
                                                "value": "$(params.TARGET_BRANCH)"
                                            },
                                            {
                                                "name": "PUBLIC_KEY_URL",
                                                "value": "$(params.PUBLIC_KEY_URL)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "pwd\nls -la\n# Sync scripts to the writable workspace\ncp -rf /work/tssc/ $(workspaces.source.path)/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e $(workspaces.source.path)/tssc/common.sh\necho \"Successfully patched $(workspaces.source.path)/tssc/common.sh\"\n\necho \"Parsing public key url\"\nCLEAN_URL=\"${PUBLIC_KEY_URL#k8s://}\"\nNS=\"${CLEAN_URL%/*}\"\nSECRET=\"${CLEAN_URL##*/}\"\nCOSIGN_PUBLIC_KEY=$(oc get secrets $SECRET -n $NS -o json | jq -r '.data.\"cosign.pub\"')\necho $COSIGN_PUBLIC_KEY \u003e $(results.COSIGN_PUBLIC_KEY.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TARGET_BRANCH",
                                                "value": "$(params.TARGET_BRANCH)"
                                            },
                                            {
                                                "name": "PUBLIC_KEY_URL",
                                                "value": "$(params.PUBLIC_KEY_URL)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "get-images",
                                        "script": "echo \"running gather-images-to-upload-sbom\"\n$(workspaces.source.path)/tssc/gather-images-to-upload-sbom.sh\nmv ./results/gather-deploy-images ./results/sbom-images \ncat ./results/sbom-images/IMAGES_TO_VERIFY \u003e $(results.SBOM_IMAGES.path)\n\necho \"running gather-deploy-images\"\n$(workspaces.source.path)/tssc/gather-deploy-images.sh\ncat ./results/gather-deploy-images/IMAGES_TO_VERIFY \u003e $(results.CONFORMA_IMAGES.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "verify-conforma",
                            "params": [
                                {
                                    "name": "STRICT",
                                    "value": "true"
                                },
                                {
                                    "name": "POLICY_CONFIGURATION",
                                    "value": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7"
                                },
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Verify the enterprise contract is met",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "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": "true",
                                        "description": "Fail the task if policy fails. Set to `\"false\"` to disable it.",
                                        "name": "STRICT",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Short summary of the policy evaluation for each image.",
                                        "name": "TEST_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STRICT",
                                            "value": "$(params.STRICT)"
                                        },
                                        {
                                            "name": "POLICY_CONFIGURATION",
                                            "value": "$(params.POLICY_CONFIGURATION)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STRICT",
                                                "value": "$(params.STRICT)"
                                            },
                                            {
                                                "name": "POLICY_CONFIGURATION",
                                                "value": "$(params.POLICY_CONFIGURATION)"
                                            },
                                            {
                                                "name": "REKOR_HOST",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rekor_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TUF_MIRROR",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "tuf_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "value": "$(params.COSIGN_PUBLIC_KEY)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "verify",
                                        "script": "echo \"running verify-conforma\"\n$(workspaces.source.path)/tssc/verify-conforma.sh\ncat ./results/verify-conforma/TEST_OUTPUT \u003e $(results.TEST_OUTPUT.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.CONFORMA_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "download-sboms",
                            "params": [
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                },
                                {
                                    "name": "SBOM_IMAGES",
                                    "value": "$(tasks.get-images.results.SBOM_IMAGES)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Download SBOM from images",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Images to be considered for SBOM download.",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        },
                                        {
                                            "name": "IMAGES",
                                            "value": "$(params.SBOM_IMAGES)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "value": "$(params.COSIGN_PUBLIC_KEY)"
                                            },
                                            {
                                                "name": "IMAGES",
                                                "value": "$(params.SBOM_IMAGES)"
                                            },
                                            {
                                                "name": "REKOR_HOST",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rekor_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TUF_MIRROR",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "tuf_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "download",
                                        "script": "echo \"running download-sbom-from-url-in-attestation\"\n$(workspaces.source.path)/tssc/download-sbom-from-url-in-attestation.sh\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "upload-sboms",
                            "params": [
                                {
                                    "name": "TPA_SECRET",
                                    "value": "tpa-secret"
                                }
                            ],
                            "runAfter": [
                                "download-sboms"
                            ],
                            "taskSpec": {
                                "description": "Upload SBOMs to Trustification",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "TPA Secret to obtain Trustification vars from.",
                                        "name": "TPA_SECRET",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "bombastic_api_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_id",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_secret",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_issuer_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "bombastic_api_url",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_client_id",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_client_secret",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_issuer_url",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "upload",
                                        "script": "echo \"running upload-sbom-to-trustification\"\n$(workspaces.source.path)/tssc/upload-sbom-to-trustification.sh\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "startTime": "2026-04-27T16:41:15Z"
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "PipelineRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "chains.tekton.dev/transparency": "https://rekor-server-tssc-tas.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/api/v1/log/entries?logIndex=52",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "73233191650",
                    "pipelinesascode.tekton.dev/controller-info": "{\"name\":\"default\",\"configmap\":\"pipelines-as-code\",\"secret\":\"pipelines-as-code-secret\", \"gRepo\": \"pipelines-as-code\"}",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/git-auth-secret": "pac-gitauth-kdacwo",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-java-quarkus-jjkcnsga-on-pull-request-56jpp",
                    "pipelinesascode.tekton.dev/max-keep-runs": "2",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-quarkus-jjkcnsga-on-pull-request",
                    "pipelinesascode.tekton.dev/pipeline": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/pipelines/docker-build-tssc.yaml",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-jjkcnsga",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-quarkus-jjkcnsga-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "5c772e0b00155c05de5f0f009f016b68777724a9",
                    "pipelinesascode.tekton.dev/sha-title": "Test PR from TSSC e2e test",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-jjkcnsga/commit/5c772e0b00155c05de5f0f009f016b68777724a9",
                    "pipelinesascode.tekton.dev/source-branch": "test-branch-1777307519448",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-jjkcnsga",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/task-0": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/init.yaml",
                    "pipelinesascode.tekton.dev/task-1": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/git-clone.yaml",
                    "pipelinesascode.tekton.dev/task-10": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/deploy-workload.yaml",
                    "pipelinesascode.tekton.dev/task-11": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/scan-workload.yaml",
                    "pipelinesascode.tekton.dev/task-12": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/summarize-workload.yaml",
                    "pipelinesascode.tekton.dev/task-13": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/show-workload-sbom.yaml",
                    "pipelinesascode.tekton.dev/task-14": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/deploy-workload-check.yaml",
                    "pipelinesascode.tekton.dev/task-2": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/buildah-rhtap.yaml",
                    "pipelinesascode.tekton.dev/task-3": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-image-check.yaml",
                    "pipelinesascode.tekton.dev/task-4": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-image-scan.yaml",
                    "pipelinesascode.tekton.dev/task-5": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-deploy-check.yaml",
                    "pipelinesascode.tekton.dev/task-6": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/update-deployment.yaml",
                    "pipelinesascode.tekton.dev/task-7": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/show-sbom-rhdh.yaml",
                    "pipelinesascode.tekton.dev/task-8": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/summary.yaml",
                    "pipelinesascode.tekton.dev/task-9": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/build-workload.yaml",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-java-quarkus-jjkcnsga",
                    "results.tekton.dev/record": "tssc-app-ci/results/2f87a054-5d91-4d4f-8bb7-20e6ad162ce7/records/2f87a054-5d91-4d4f-8bb7-20e6ad162ce7",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-java-quarkus-jjkcnsga\",\"commit\":\"5c772e0b00155c05de5f0f009f016b68777724a9\",\"eventType\":\"pull_request\",\"pull_request-id\":1}",
                    "results.tekton.dev/result": "tssc-app-ci/results/2f87a054-5d91-4d4f-8bb7-20e6ad162ce7",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-27T16:32:10Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "results.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer"
                ],
                "generateName": "e2e-tests-java-quarkus-jjkcnsga-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-java-quarkus-jjkcnsga",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-java-quarkus-jjkcnsga",
                    "backstage.io/kubernetes-id": "e2e-tests-java-quarkus-jjkcnsga",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-java-quarkus-jjkcnsga",
                    "pipelinesascode.tekton.dev/check-run-id": "73233191650",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-quarkus-jjkcnsga-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-quarkus-jjkcnsga-repository",
                    "pipelinesascode.tekton.dev/sha": "5c772e0b00155c05de5f0f009f016b68777724a9",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-java-quarkus-jjkcnsga",
                    "tekton.dev/pipeline": "e2e-tests-java-quarkus-jjkcnsga-on-pull-request-56jpp"
                },
                "name": "e2e-tests-java-quarkus-jjkcnsga-on-pull-request-56jpp",
                "namespace": "tssc-app-ci",
                "resourceVersion": "45130",
                "uid": "2f87a054-5d91-4d4f-8bb7-20e6ad162ce7"
            },
            "spec": {
                "params": [
                    {
                        "name": "dockerfile",
                        "value": "src/main/docker/Dockerfile.jvm.staged"
                    },
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-jjkcnsga"
                    },
                    {
                        "name": "image-expires-after",
                        "value": "5d"
                    },
                    {
                        "name": "output-image",
                        "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:on-pr-5c772e0b00155c05de5f0f009f016b68777724a9"
                    },
                    {
                        "name": "path-context",
                        "value": "."
                    },
                    {
                        "name": "revision",
                        "value": "5c772e0b00155c05de5f0f009f016b68777724a9"
                    },
                    {
                        "name": "event-type",
                        "value": "pull_request"
                    },
                    {
                        "name": "gitops-auth-secret-name",
                        "value": "gitops-auth-secret"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Source Repository URL",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Revision of the Source Repository",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "description": "Fully Qualified Output Image",
                            "name": "output-image",
                            "type": "string"
                        },
                        {
                            "default": ".",
                            "description": "Path to the source code of an application's component from where to build image.",
                            "name": "path-context",
                            "type": "string"
                        },
                        {
                            "default": "Dockerfile",
                            "description": "Path to the Dockerfile inside the context specified by parameter path-context",
                            "name": "dockerfile",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Force rebuild image",
                            "name": "rebuild",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Image tag expiration time, time values could be something like 1h, 2d, 3w for hours, days, and weeks, respectively.",
                            "name": "image-expires-after",
                            "type": "string"
                        },
                        {
                            "default": "rox-api-token",
                            "name": "stackrox-secret",
                            "type": "string"
                        },
                        {
                            "default": "gitops-auth-secret",
                            "description": "Secret name to enable this pipeline to update the gitops repo with the new image. ",
                            "name": "gitops-auth-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "cosign-pub",
                            "description": "Secret name to enable verify cosign signature. ",
                            "name": "cosign-public-key-secret",
                            "type": "string"
                        },
                        {
                            "default": "push",
                            "description": "Event that triggered the pipeline run, e.g. push, pull_request",
                            "name": "event-type",
                            "type": "string"
                        },
                        {
                            "default": [],
                            "description": "Array of --build-arg values (\"arg=value\" strings) for buildah",
                            "name": "build-args",
                            "type": "array"
                        },
                        {
                            "default": "",
                            "description": "Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                            "name": "build-args-file",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Digest of the image just built",
                            "name": "IMAGE_DIGEST",
                            "value": "$(tasks.build.results.IMAGE_DIGEST)"
                        },
                        {
                            "description": "Image repository and tag where the built image was pushed",
                            "name": "IMAGE_URL",
                            "value": "$(tasks.build.results.IMAGE_URL)"
                        },
                        {
                            "description": "Digests of the base images used for build",
                            "name": "BASE_IMAGES_DIGESTS",
                            "value": "$(tasks.build.results.BASE_IMAGES_DIGESTS)"
                        },
                        {
                            "description": "Link to the SBOM layer pushed to the registry",
                            "name": "SBOM_BLOB_URL",
                            "value": "$(tasks.build.results.SBOM_BLOB_URL)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_URL",
                            "value": "$(tasks.clone-repository.results.url)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_COMMIT",
                            "value": "$(tasks.clone-repository.results.commit)"
                        },
                        {
                            "description": "",
                            "name": "ACS_SCAN_OUTPUT",
                            "value": "$(tasks.scan.results.SCAN_OUTPUT)"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "$(params.git-url)"
                                },
                                {
                                    "name": "revision",
                                    "value": "$(params.revision)"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "$(params.revision)"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "build",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "cosign-public-secret-name",
                                    "value": "$(params.cosign-public-key-secret)"
                                },
                                {
                                    "name": "tpa_secret_name",
                                    "value": "$(params.trustification-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "DOCKERFILE",
                                    "value": "$(params.dockerfile)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                },
                                {
                                    "name": "BUILD_ARGS",
                                    "value": [
                                        "$(params.build-args[*])"
                                    ]
                                },
                                {
                                    "name": "BUILD_ARGS_FILE",
                                    "value": "$(params.build-args-file)"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Builds source code into a container image and pushes the image into container registry using buildah tool.\nIn addition it generates a SBOM file, injects the SBOM file into final container image and pushes the SBOM file as separate image using cosign tool.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "build-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "./Dockerfile",
                                        "description": "Path to the Dockerfile to build.",
                                        "name": "DOCKERFILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry)",
                                        "name": "TLSVERIFY",
                                        "type": "string"
                                    },
                                    {
                                        "default": [],
                                        "description": "Array of --build-arg values (\"arg=value\" strings)",
                                        "name": "BUILD_ARGS",
                                        "type": "array"
                                    },
                                    {
                                        "default": "",
                                        "description": "Path to a file with build arguments, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                                        "name": "BUILD_ARGS_FILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Digest of the image just built",
                                        "name": "IMAGE_DIGEST",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Image repository and tag where the built image was pushed",
                                        "name": "IMAGE_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Digests of the base images used for build",
                                        "name": "BASE_IMAGES_DIGESTS",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Link to the SBOM layer pushed to the registry as part of an OCI artifact.",
                                        "name": "SBOM_BLOB_URL",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "DOCKERFILE",
                                            "value": "$(params.DOCKERFILE)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "TLSVERIFY",
                                            "value": "$(params.TLSVERIFY)"
                                        },
                                        {
                                            "name": "BUILD_ARGS_FILE",
                                            "value": "$(params.BUILD_ARGS_FILE)"
                                        },
                                        {
                                            "name": "_BUILDAH_STARTED_IN_USERNS"
                                        },
                                        {
                                            "name": "BUILDAH_ISOLATION",
                                            "value": "chroot"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_PASSWORD",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_KEY",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.tpa_secret_name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "cosign.pub",
                                                    "name": "$(params.cosign-public-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "# Sync scripts to the writable workspace\ncp -rf /work/tssc/ /workspace/source/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e /workspace/source/tssc/common.sh\necho \"Successfully patched /workspace/source/tssc/common.sh\"\necho \"running init\"\npwd\nls -la\n/workspace/source/tssc/init.sh\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    },
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "build",
                                        "script": "echo \"running buildah-tssc\"\n/workspace/source/tssc/buildah-tssc.sh\ncat ./results/buildah-tssc/BASE_IMAGES_DIGESTS \u003e $(results.BASE_IMAGES_DIGESTS.path)\ncat ./results/buildah-tssc/IMAGE_DIGEST \u003e $(results.IMAGE_DIGEST.path)\ncat ./results/buildah-tssc/IMAGE_URL \u003e $(results.IMAGE_URL.path)\ncat ./results/buildah-tssc/SBOM_BLOB_URL \u003e $(results.SBOM_BLOB_URL.path)\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deploy",
                            "params": [
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Deploy built image to development environment.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy",
                                        "script": "echo \"running update-deployment\"\n/workspace/source/tssc/update-deployment.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(params.event-type)",
                                    "operator": "notin",
                                    "values": [
                                        "pull_request",
                                        "Merge Request"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deployment-check",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload-check",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy-check",
                                        "script": "echo \"running acs-deploy-check\"\n/workspace/source/tssc/acs-deploy-check.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(params.event-type)",
                                    "operator": "in",
                                    "values": [
                                        "push",
                                        "Push"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "scan",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "scan-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "scan",
                                        "script": "echo \"running acs-image-check\"\n/workspace/source/tssc/acs-image-check.sh\necho \"running acs-image-scan\"\n/workspace/source/tssc/acs-image-scan.sh\ncat ./results/acs-image-scan/SCAN_OUTPUT \u003e $(results.SCAN_OUTPUT.path)\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "show-sbom",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Show SBOM report for the built image.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "show-workload-sbom",
                                        "task.output.location": "results",
                                        "task.results.format": "application/text",
                                        "task.results.key": "LINK_TO_SBOM",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Placeholder result meant to make RHDH identify this task as the producer of the SBOM logs.",
                                        "name": "LINK_TO_SBOM",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "show-sbom",
                                        "script": "echo \"running show-sbom-rhdh\"\n/workspace/source/tssc/show-sbom-rhdh.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "summarize",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Summarize all the steps in the build pipeline.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "summarize-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "summary",
                                        "script": "echo \"running summary\"\n/workspace/source/tssc/summary.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "taskRunTemplate": {
                    "serviceAccountName": "pipeline"
                },
                "timeouts": {
                    "pipeline": "1h0m0s"
                },
                "workspaces": [
                    {
                        "name": "git-auth",
                        "secret": {
                            "secretName": "pac-gitauth-kdacwo"
                        }
                    },
                    {
                        "name": "workspace",
                        "volumeClaimTemplate": {
                            "metadata": {
                                "creationTimestamp": null
                            },
                            "spec": {
                                "accessModes": [
                                    "ReadWriteOnce"
                                ],
                                "resources": {
                                    "requests": {
                                        "storage": "1Gi"
                                    }
                                }
                            },
                            "status": {}
                        }
                    }
                ]
            },
            "status": {
                "childReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java49ff54b2bfcb331dba7a99af436155c0-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quarkus-jjkcnsga-on-pull-request-56jpp-build",
                        "pipelineTaskName": "build"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quarkus-jjkcnsga-on-pull-request-56jpp-scan",
                        "pipelineTaskName": "scan"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quarkus-jjkcnsga-on-pull-request-56jpp-show-sbom",
                        "pipelineTaskName": "show-sbom"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quarkus-jjkcnsga-on-pull-request-56jpp-summarize",
                        "pipelineTaskName": "summarize"
                    }
                ],
                "completionTime": "2026-04-27T16:35:30Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-27T16:35:30Z",
                        "message": "Tasks Completed: 5 (Failed: 0, Cancelled 0), Skipped: 2",
                        "reason": "Completed",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Source Repository URL",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Revision of the Source Repository",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "description": "Fully Qualified Output Image",
                            "name": "output-image",
                            "type": "string"
                        },
                        {
                            "default": ".",
                            "description": "Path to the source code of an application's component from where to build image.",
                            "name": "path-context",
                            "type": "string"
                        },
                        {
                            "default": "Dockerfile",
                            "description": "Path to the Dockerfile inside the context specified by parameter path-context",
                            "name": "dockerfile",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Force rebuild image",
                            "name": "rebuild",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Image tag expiration time, time values could be something like 1h, 2d, 3w for hours, days, and weeks, respectively.",
                            "name": "image-expires-after",
                            "type": "string"
                        },
                        {
                            "default": "rox-api-token",
                            "name": "stackrox-secret",
                            "type": "string"
                        },
                        {
                            "default": "gitops-auth-secret",
                            "description": "Secret name to enable this pipeline to update the gitops repo with the new image. ",
                            "name": "gitops-auth-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "cosign-pub",
                            "description": "Secret name to enable verify cosign signature. ",
                            "name": "cosign-public-key-secret",
                            "type": "string"
                        },
                        {
                            "default": "push",
                            "description": "Event that triggered the pipeline run, e.g. push, pull_request",
                            "name": "event-type",
                            "type": "string"
                        },
                        {
                            "default": [],
                            "description": "Array of --build-arg values (\"arg=value\" strings) for buildah",
                            "name": "build-args",
                            "type": "array"
                        },
                        {
                            "default": "",
                            "description": "Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                            "name": "build-args-file",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Digest of the image just built",
                            "name": "IMAGE_DIGEST",
                            "value": "$(tasks.build.results.IMAGE_DIGEST)"
                        },
                        {
                            "description": "Image repository and tag where the built image was pushed",
                            "name": "IMAGE_URL",
                            "value": "$(tasks.build.results.IMAGE_URL)"
                        },
                        {
                            "description": "Digests of the base images used for build",
                            "name": "BASE_IMAGES_DIGESTS",
                            "value": "$(tasks.build.results.BASE_IMAGES_DIGESTS)"
                        },
                        {
                            "description": "Link to the SBOM layer pushed to the registry",
                            "name": "SBOM_BLOB_URL",
                            "value": "$(tasks.build.results.SBOM_BLOB_URL)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_URL",
                            "value": "$(tasks.clone-repository.results.url)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_COMMIT",
                            "value": "$(tasks.clone-repository.results.commit)"
                        },
                        {
                            "description": "",
                            "name": "ACS_SCAN_OUTPUT",
                            "value": "$(tasks.scan.results.SCAN_OUTPUT)"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-jjkcnsga"
                                },
                                {
                                    "name": "revision",
                                    "value": "5c772e0b00155c05de5f0f009f016b68777724a9"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "5c772e0b00155c05de5f0f009f016b68777724a9"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "build",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "cosign-public-secret-name",
                                    "value": "cosign-pub"
                                },
                                {
                                    "name": "tpa_secret_name",
                                    "value": "tpa-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:on-pr-5c772e0b00155c05de5f0f009f016b68777724a9"
                                },
                                {
                                    "name": "DOCKERFILE",
                                    "value": "src/main/docker/Dockerfile.jvm.staged"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                },
                                {
                                    "name": "BUILD_ARGS",
                                    "value": []
                                },
                                {
                                    "name": "BUILD_ARGS_FILE",
                                    "value": ""
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Builds source code into a container image and pushes the image into container registry using buildah tool.\nIn addition it generates a SBOM file, injects the SBOM file into final container image and pushes the SBOM file as separate image using cosign tool.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "build-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "./Dockerfile",
                                        "description": "Path to the Dockerfile to build.",
                                        "name": "DOCKERFILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry)",
                                        "name": "TLSVERIFY",
                                        "type": "string"
                                    },
                                    {
                                        "default": [],
                                        "description": "Array of --build-arg values (\"arg=value\" strings)",
                                        "name": "BUILD_ARGS",
                                        "type": "array"
                                    },
                                    {
                                        "default": "",
                                        "description": "Path to a file with build arguments, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                                        "name": "BUILD_ARGS_FILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Digest of the image just built",
                                        "name": "IMAGE_DIGEST",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Image repository and tag where the built image was pushed",
                                        "name": "IMAGE_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Digests of the base images used for build",
                                        "name": "BASE_IMAGES_DIGESTS",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Link to the SBOM layer pushed to the registry as part of an OCI artifact.",
                                        "name": "SBOM_BLOB_URL",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "DOCKERFILE",
                                            "value": "$(params.DOCKERFILE)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "TLSVERIFY",
                                            "value": "$(params.TLSVERIFY)"
                                        },
                                        {
                                            "name": "BUILD_ARGS_FILE",
                                            "value": "$(params.BUILD_ARGS_FILE)"
                                        },
                                        {
                                            "name": "_BUILDAH_STARTED_IN_USERNS"
                                        },
                                        {
                                            "name": "BUILDAH_ISOLATION",
                                            "value": "chroot"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_PASSWORD",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_KEY",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.tpa_secret_name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "cosign.pub",
                                                    "name": "$(params.cosign-public-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "DOCKERFILE",
                                                "value": "$(params.DOCKERFILE)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "TLSVERIFY",
                                                "value": "$(params.TLSVERIFY)"
                                            },
                                            {
                                                "name": "BUILD_ARGS_FILE",
                                                "value": "$(params.BUILD_ARGS_FILE)"
                                            },
                                            {
                                                "name": "_BUILDAH_STARTED_IN_USERNS"
                                            },
                                            {
                                                "name": "BUILDAH_ISOLATION",
                                                "value": "chroot"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_PASSWORD",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_KEY",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.tpa_secret_name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "cosign.pub",
                                                        "name": "$(params.cosign-public-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "# Sync scripts to the writable workspace\ncp -rf /work/tssc/ /workspace/source/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e /workspace/source/tssc/common.sh\necho \"Successfully patched /workspace/source/tssc/common.sh\"\necho \"running init\"\npwd\nls -la\n/workspace/source/tssc/init.sh\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    },
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "DOCKERFILE",
                                                "value": "$(params.DOCKERFILE)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "TLSVERIFY",
                                                "value": "$(params.TLSVERIFY)"
                                            },
                                            {
                                                "name": "BUILD_ARGS_FILE",
                                                "value": "$(params.BUILD_ARGS_FILE)"
                                            },
                                            {
                                                "name": "_BUILDAH_STARTED_IN_USERNS"
                                            },
                                            {
                                                "name": "BUILDAH_ISOLATION",
                                                "value": "chroot"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_PASSWORD",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_KEY",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.tpa_secret_name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "cosign.pub",
                                                        "name": "$(params.cosign-public-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "build",
                                        "script": "echo \"running buildah-tssc\"\n/workspace/source/tssc/buildah-tssc.sh\ncat ./results/buildah-tssc/BASE_IMAGES_DIGESTS \u003e $(results.BASE_IMAGES_DIGESTS.path)\ncat ./results/buildah-tssc/IMAGE_DIGEST \u003e $(results.IMAGE_DIGEST.path)\ncat ./results/buildah-tssc/IMAGE_URL \u003e $(results.IMAGE_URL.path)\ncat ./results/buildah-tssc/SBOM_BLOB_URL \u003e $(results.SBOM_BLOB_URL.path)\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deploy",
                            "params": [
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:on-pr-5c772e0b00155c05de5f0f009f016b68777724a9"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Deploy built image to development environment.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy",
                                        "script": "echo \"running update-deployment\"\n/workspace/source/tssc/update-deployment.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "pull_request",
                                    "operator": "notin",
                                    "values": [
                                        "pull_request",
                                        "Merge Request"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deployment-check",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:on-pr-5c772e0b00155c05de5f0f009f016b68777724a9"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload-check",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy-check",
                                        "script": "echo \"running acs-deploy-check\"\n/workspace/source/tssc/acs-deploy-check.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "pull_request",
                                    "operator": "in",
                                    "values": [
                                        "push",
                                        "Push"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "scan",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:on-pr-5c772e0b00155c05de5f0f009f016b68777724a9"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "scan-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "scan",
                                        "script": "echo \"running acs-image-check\"\n/workspace/source/tssc/acs-image-check.sh\necho \"running acs-image-scan\"\n/workspace/source/tssc/acs-image-scan.sh\ncat ./results/acs-image-scan/SCAN_OUTPUT \u003e $(results.SCAN_OUTPUT.path)\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "show-sbom",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:on-pr-5c772e0b00155c05de5f0f009f016b68777724a9"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Show SBOM report for the built image.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "show-workload-sbom",
                                        "task.output.location": "results",
                                        "task.results.format": "application/text",
                                        "task.results.key": "LINK_TO_SBOM",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Placeholder result meant to make RHDH identify this task as the producer of the SBOM logs.",
                                        "name": "LINK_TO_SBOM",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "show-sbom",
                                        "script": "echo \"running show-sbom-rhdh\"\n/workspace/source/tssc/show-sbom-rhdh.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "summarize",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:on-pr-5c772e0b00155c05de5f0f009f016b68777724a9"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Summarize all the steps in the build pipeline.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "summarize-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "summary",
                                        "script": "echo \"running summary\"\n/workspace/source/tssc/summary.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "results": [
                    {
                        "name": "IMAGE_DIGEST",
                        "value": "sha256:60247b889d249e7279adf2418c8eaaafc172cd424b142d573827557a159308cf"
                    },
                    {
                        "name": "IMAGE_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:on-pr-5c772e0b00155c05de5f0f009f016b68777724a9"
                    },
                    {
                        "name": "BASE_IMAGES_DIGESTS",
                        "value": "registry.access.redhat.com/ubi9/openjdk-21:latest@sha256:253d78f68108c9188e810c6d534071dc16b437ddae185541c4292e2236c09d0a\nregistry.access.redhat.com/ubi9/openjdk-21-runtime:latest@sha256:4f77a4aef51bb959a7af413b702d2b5db9b530c9bc09d10758947d5c73b7bafc\n"
                    },
                    {
                        "name": "SBOM_BLOB_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga@sha256:2fb7995bbed39608c20ae14861a2b765eaa5857c335599ae620ec627bc4c3a0f"
                    },
                    {
                        "name": "CHAINS-GIT_URL",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-jjkcnsga"
                    },
                    {
                        "name": "CHAINS-GIT_COMMIT",
                        "value": "5c772e0b00155c05de5f0f009f016b68777724a9"
                    },
                    {
                        "name": "ACS_SCAN_OUTPUT",
                        "value": "{\"vulnerabilities\":{\"critical\":0,\"high\":12,\"medium\":79,\"low\":57}}\n"
                    }
                ],
                "skippedTasks": [
                    {
                        "name": "deploy",
                        "reason": "When Expressions evaluated to false",
                        "whenExpressions": [
                            {
                                "input": "pull_request",
                                "operator": "notin",
                                "values": [
                                    "pull_request",
                                    "Merge Request"
                                ]
                            }
                        ]
                    },
                    {
                        "name": "deployment-check",
                        "reason": "When Expressions evaluated to false",
                        "whenExpressions": [
                            {
                                "input": "pull_request",
                                "operator": "in",
                                "values": [
                                    "push",
                                    "Push"
                                ]
                            }
                        ]
                    }
                ],
                "startTime": "2026-04-27T16:32:10Z"
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "PipelineRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "chains.tekton.dev/transparency": "https://rekor-server-tssc-tas.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/api/v1/log/entries?logIndex=27",
                    "pipelinesascode.tekton.dev/branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/check-run-id": "73233028281",
                    "pipelinesascode.tekton.dev/controller-info": "{\"name\":\"default\",\"configmap\":\"pipelines-as-code\",\"secret\":\"pipelines-as-code-secret\", \"gRepo\": \"pipelines-as-code\"}",
                    "pipelinesascode.tekton.dev/event-type": "push",
                    "pipelinesascode.tekton.dev/git-auth-secret": "pac-gitauth-ivqhip",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-java-quarkus-jjkcnsga-on-push-6sm4f",
                    "pipelinesascode.tekton.dev/max-keep-runs": "2",
                    "pipelinesascode.tekton.dev/on-event": "[push]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-quarkus-jjkcnsga-on-push",
                    "pipelinesascode.tekton.dev/pipeline": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/pipelines/docker-build-tssc.yaml",
                    "pipelinesascode.tekton.dev/repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-jjkcnsga",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-quarkus-jjkcnsga-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-qe-ci[bot]",
                    "pipelinesascode.tekton.dev/sha": "d7769ed52258d7267851c56328a054b39c613201",
                    "pipelinesascode.tekton.dev/sha-title": "initial commit",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-jjkcnsga/commit/d7769ed52258d7267851c56328a054b39c613201",
                    "pipelinesascode.tekton.dev/source-branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-jjkcnsga",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/task-0": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/init.yaml",
                    "pipelinesascode.tekton.dev/task-1": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/git-clone.yaml",
                    "pipelinesascode.tekton.dev/task-10": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/deploy-workload.yaml",
                    "pipelinesascode.tekton.dev/task-11": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/scan-workload.yaml",
                    "pipelinesascode.tekton.dev/task-12": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/summarize-workload.yaml",
                    "pipelinesascode.tekton.dev/task-13": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/show-workload-sbom.yaml",
                    "pipelinesascode.tekton.dev/task-14": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/deploy-workload-check.yaml",
                    "pipelinesascode.tekton.dev/task-2": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/buildah-rhtap.yaml",
                    "pipelinesascode.tekton.dev/task-3": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-image-check.yaml",
                    "pipelinesascode.tekton.dev/task-4": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-image-scan.yaml",
                    "pipelinesascode.tekton.dev/task-5": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-deploy-check.yaml",
                    "pipelinesascode.tekton.dev/task-6": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/update-deployment.yaml",
                    "pipelinesascode.tekton.dev/task-7": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/show-sbom-rhdh.yaml",
                    "pipelinesascode.tekton.dev/task-8": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/summary.yaml",
                    "pipelinesascode.tekton.dev/task-9": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/build-workload.yaml",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-java-quarkus-jjkcnsga",
                    "results.tekton.dev/record": "tssc-app-ci/results/66d45200-0381-4472-95d5-658c46224db1/records/66d45200-0381-4472-95d5-658c46224db1",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-java-quarkus-jjkcnsga\",\"commit\":\"d7769ed52258d7267851c56328a054b39c613201\",\"eventType\":\"push\"}",
                    "results.tekton.dev/result": "tssc-app-ci/results/66d45200-0381-4472-95d5-658c46224db1",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-27T16:31:10Z",
                "finalizers": [
                    "results.tekton.dev/pipelinerun",
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer"
                ],
                "generateName": "e2e-tests-java-quarkus-jjkcnsga-on-push-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-java-quarkus-jjkcnsga",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-java-quarkus-jjkcnsga",
                    "backstage.io/kubernetes-id": "e2e-tests-java-quarkus-jjkcnsga",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-java-quarkus-jjkcnsga",
                    "pipelinesascode.tekton.dev/check-run-id": "73233028281",
                    "pipelinesascode.tekton.dev/event-type": "push",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-quarkus-jjkcnsga-on-push",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-quarkus-jjkcnsga-repository",
                    "pipelinesascode.tekton.dev/sha": "d7769ed52258d7267851c56328a054b39c613201",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-java-quarkus-jjkcnsga",
                    "tekton.dev/pipeline": "e2e-tests-java-quarkus-jjkcnsga-on-push-6sm4f"
                },
                "name": "e2e-tests-java-quarkus-jjkcnsga-on-push-6sm4f",
                "namespace": "tssc-app-ci",
                "resourceVersion": "42967",
                "uid": "66d45200-0381-4472-95d5-658c46224db1"
            },
            "spec": {
                "params": [
                    {
                        "name": "dockerfile",
                        "value": "src/main/docker/Dockerfile.jvm.staged"
                    },
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-jjkcnsga"
                    },
                    {
                        "name": "image-expires-after",
                        "value": "5d"
                    },
                    {
                        "name": "output-image",
                        "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:d7769ed52258d7267851c56328a054b39c613201"
                    },
                    {
                        "name": "path-context",
                        "value": "."
                    },
                    {
                        "name": "revision",
                        "value": "d7769ed52258d7267851c56328a054b39c613201"
                    },
                    {
                        "name": "event-type",
                        "value": "push"
                    },
                    {
                        "name": "gitops-auth-secret-name",
                        "value": "gitops-auth-secret"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Source Repository URL",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Revision of the Source Repository",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "description": "Fully Qualified Output Image",
                            "name": "output-image",
                            "type": "string"
                        },
                        {
                            "default": ".",
                            "description": "Path to the source code of an application's component from where to build image.",
                            "name": "path-context",
                            "type": "string"
                        },
                        {
                            "default": "Dockerfile",
                            "description": "Path to the Dockerfile inside the context specified by parameter path-context",
                            "name": "dockerfile",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Force rebuild image",
                            "name": "rebuild",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Image tag expiration time, time values could be something like 1h, 2d, 3w for hours, days, and weeks, respectively.",
                            "name": "image-expires-after",
                            "type": "string"
                        },
                        {
                            "default": "rox-api-token",
                            "name": "stackrox-secret",
                            "type": "string"
                        },
                        {
                            "default": "gitops-auth-secret",
                            "description": "Secret name to enable this pipeline to update the gitops repo with the new image. ",
                            "name": "gitops-auth-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "cosign-pub",
                            "description": "Secret name to enable verify cosign signature. ",
                            "name": "cosign-public-key-secret",
                            "type": "string"
                        },
                        {
                            "default": "push",
                            "description": "Event that triggered the pipeline run, e.g. push, pull_request",
                            "name": "event-type",
                            "type": "string"
                        },
                        {
                            "default": [],
                            "description": "Array of --build-arg values (\"arg=value\" strings) for buildah",
                            "name": "build-args",
                            "type": "array"
                        },
                        {
                            "default": "",
                            "description": "Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                            "name": "build-args-file",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Digest of the image just built",
                            "name": "IMAGE_DIGEST",
                            "value": "$(tasks.build.results.IMAGE_DIGEST)"
                        },
                        {
                            "description": "Image repository and tag where the built image was pushed",
                            "name": "IMAGE_URL",
                            "value": "$(tasks.build.results.IMAGE_URL)"
                        },
                        {
                            "description": "Digests of the base images used for build",
                            "name": "BASE_IMAGES_DIGESTS",
                            "value": "$(tasks.build.results.BASE_IMAGES_DIGESTS)"
                        },
                        {
                            "description": "Link to the SBOM layer pushed to the registry",
                            "name": "SBOM_BLOB_URL",
                            "value": "$(tasks.build.results.SBOM_BLOB_URL)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_URL",
                            "value": "$(tasks.clone-repository.results.url)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_COMMIT",
                            "value": "$(tasks.clone-repository.results.commit)"
                        },
                        {
                            "description": "",
                            "name": "ACS_SCAN_OUTPUT",
                            "value": "$(tasks.scan.results.SCAN_OUTPUT)"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "$(params.git-url)"
                                },
                                {
                                    "name": "revision",
                                    "value": "$(params.revision)"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "$(params.revision)"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "build",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "cosign-public-secret-name",
                                    "value": "$(params.cosign-public-key-secret)"
                                },
                                {
                                    "name": "tpa_secret_name",
                                    "value": "$(params.trustification-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "DOCKERFILE",
                                    "value": "$(params.dockerfile)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                },
                                {
                                    "name": "BUILD_ARGS",
                                    "value": [
                                        "$(params.build-args[*])"
                                    ]
                                },
                                {
                                    "name": "BUILD_ARGS_FILE",
                                    "value": "$(params.build-args-file)"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Builds source code into a container image and pushes the image into container registry using buildah tool.\nIn addition it generates a SBOM file, injects the SBOM file into final container image and pushes the SBOM file as separate image using cosign tool.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "build-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "./Dockerfile",
                                        "description": "Path to the Dockerfile to build.",
                                        "name": "DOCKERFILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry)",
                                        "name": "TLSVERIFY",
                                        "type": "string"
                                    },
                                    {
                                        "default": [],
                                        "description": "Array of --build-arg values (\"arg=value\" strings)",
                                        "name": "BUILD_ARGS",
                                        "type": "array"
                                    },
                                    {
                                        "default": "",
                                        "description": "Path to a file with build arguments, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                                        "name": "BUILD_ARGS_FILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Digest of the image just built",
                                        "name": "IMAGE_DIGEST",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Image repository and tag where the built image was pushed",
                                        "name": "IMAGE_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Digests of the base images used for build",
                                        "name": "BASE_IMAGES_DIGESTS",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Link to the SBOM layer pushed to the registry as part of an OCI artifact.",
                                        "name": "SBOM_BLOB_URL",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "DOCKERFILE",
                                            "value": "$(params.DOCKERFILE)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "TLSVERIFY",
                                            "value": "$(params.TLSVERIFY)"
                                        },
                                        {
                                            "name": "BUILD_ARGS_FILE",
                                            "value": "$(params.BUILD_ARGS_FILE)"
                                        },
                                        {
                                            "name": "_BUILDAH_STARTED_IN_USERNS"
                                        },
                                        {
                                            "name": "BUILDAH_ISOLATION",
                                            "value": "chroot"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_PASSWORD",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_KEY",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.tpa_secret_name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "cosign.pub",
                                                    "name": "$(params.cosign-public-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "# Sync scripts to the writable workspace\ncp -rf /work/tssc/ /workspace/source/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e /workspace/source/tssc/common.sh\necho \"Successfully patched /workspace/source/tssc/common.sh\"\necho \"running init\"\npwd\nls -la\n/workspace/source/tssc/init.sh\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    },
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "build",
                                        "script": "echo \"running buildah-tssc\"\n/workspace/source/tssc/buildah-tssc.sh\ncat ./results/buildah-tssc/BASE_IMAGES_DIGESTS \u003e $(results.BASE_IMAGES_DIGESTS.path)\ncat ./results/buildah-tssc/IMAGE_DIGEST \u003e $(results.IMAGE_DIGEST.path)\ncat ./results/buildah-tssc/IMAGE_URL \u003e $(results.IMAGE_URL.path)\ncat ./results/buildah-tssc/SBOM_BLOB_URL \u003e $(results.SBOM_BLOB_URL.path)\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deploy",
                            "params": [
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Deploy built image to development environment.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy",
                                        "script": "echo \"running update-deployment\"\n/workspace/source/tssc/update-deployment.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(params.event-type)",
                                    "operator": "notin",
                                    "values": [
                                        "pull_request",
                                        "Merge Request"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deployment-check",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload-check",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy-check",
                                        "script": "echo \"running acs-deploy-check\"\n/workspace/source/tssc/acs-deploy-check.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(params.event-type)",
                                    "operator": "in",
                                    "values": [
                                        "push",
                                        "Push"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "scan",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "scan-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "scan",
                                        "script": "echo \"running acs-image-check\"\n/workspace/source/tssc/acs-image-check.sh\necho \"running acs-image-scan\"\n/workspace/source/tssc/acs-image-scan.sh\ncat ./results/acs-image-scan/SCAN_OUTPUT \u003e $(results.SCAN_OUTPUT.path)\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "show-sbom",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Show SBOM report for the built image.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "show-workload-sbom",
                                        "task.output.location": "results",
                                        "task.results.format": "application/text",
                                        "task.results.key": "LINK_TO_SBOM",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Placeholder result meant to make RHDH identify this task as the producer of the SBOM logs.",
                                        "name": "LINK_TO_SBOM",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "show-sbom",
                                        "script": "echo \"running show-sbom-rhdh\"\n/workspace/source/tssc/show-sbom-rhdh.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "summarize",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Summarize all the steps in the build pipeline.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "summarize-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "summary",
                                        "script": "echo \"running summary\"\n/workspace/source/tssc/summary.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "taskRunTemplate": {
                    "serviceAccountName": "pipeline"
                },
                "timeouts": {
                    "pipeline": "1h0m0s"
                },
                "workspaces": [
                    {
                        "name": "gitops-auth",
                        "secret": {
                            "secretName": "$(params.gitops-auth-secret-name)"
                        }
                    },
                    {
                        "name": "git-auth",
                        "secret": {
                            "secretName": "pac-gitauth-ivqhip"
                        }
                    },
                    {
                        "name": "workspace",
                        "volumeClaimTemplate": {
                            "metadata": {
                                "creationTimestamp": null
                            },
                            "spec": {
                                "accessModes": [
                                    "ReadWriteOnce"
                                ],
                                "resources": {
                                    "requests": {
                                        "storage": "1Gi"
                                    }
                                }
                            },
                            "status": {}
                        }
                    }
                ]
            },
            "status": {
                "childReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quarkus-jjkcnsga-on-push-6sm4f-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quarkus-jjkcnsga-on-push-6sm4f-build",
                        "pipelineTaskName": "build"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quarkus-jjkcnsga-on-push-6sm4f-deploy",
                        "pipelineTaskName": "deploy",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "notin",
                                "values": [
                                    "pull_request",
                                    "Merge Request"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quarkus-jjkcnsga-on-push-6sm4f-deployment-check",
                        "pipelineTaskName": "deployment-check",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "in",
                                "values": [
                                    "push",
                                    "Push"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quarkus-jjkcnsga-on-push-6sm4f-scan",
                        "pipelineTaskName": "scan"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quarkus-jjkcnsga-on-push-6sm4f-show-sbom",
                        "pipelineTaskName": "show-sbom"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quarkus-jjkcnsga-on-push-6sm4f-summarize",
                        "pipelineTaskName": "summarize"
                    }
                ],
                "completionTime": "2026-04-27T16:34:30Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-27T16:34:30Z",
                        "message": "Tasks Completed: 7 (Failed: 0, Cancelled 0), Skipped: 0",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Source Repository URL",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Revision of the Source Repository",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "description": "Fully Qualified Output Image",
                            "name": "output-image",
                            "type": "string"
                        },
                        {
                            "default": ".",
                            "description": "Path to the source code of an application's component from where to build image.",
                            "name": "path-context",
                            "type": "string"
                        },
                        {
                            "default": "Dockerfile",
                            "description": "Path to the Dockerfile inside the context specified by parameter path-context",
                            "name": "dockerfile",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Force rebuild image",
                            "name": "rebuild",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Image tag expiration time, time values could be something like 1h, 2d, 3w for hours, days, and weeks, respectively.",
                            "name": "image-expires-after",
                            "type": "string"
                        },
                        {
                            "default": "rox-api-token",
                            "name": "stackrox-secret",
                            "type": "string"
                        },
                        {
                            "default": "gitops-auth-secret",
                            "description": "Secret name to enable this pipeline to update the gitops repo with the new image. ",
                            "name": "gitops-auth-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "cosign-pub",
                            "description": "Secret name to enable verify cosign signature. ",
                            "name": "cosign-public-key-secret",
                            "type": "string"
                        },
                        {
                            "default": "push",
                            "description": "Event that triggered the pipeline run, e.g. push, pull_request",
                            "name": "event-type",
                            "type": "string"
                        },
                        {
                            "default": [],
                            "description": "Array of --build-arg values (\"arg=value\" strings) for buildah",
                            "name": "build-args",
                            "type": "array"
                        },
                        {
                            "default": "",
                            "description": "Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                            "name": "build-args-file",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Digest of the image just built",
                            "name": "IMAGE_DIGEST",
                            "value": "$(tasks.build.results.IMAGE_DIGEST)"
                        },
                        {
                            "description": "Image repository and tag where the built image was pushed",
                            "name": "IMAGE_URL",
                            "value": "$(tasks.build.results.IMAGE_URL)"
                        },
                        {
                            "description": "Digests of the base images used for build",
                            "name": "BASE_IMAGES_DIGESTS",
                            "value": "$(tasks.build.results.BASE_IMAGES_DIGESTS)"
                        },
                        {
                            "description": "Link to the SBOM layer pushed to the registry",
                            "name": "SBOM_BLOB_URL",
                            "value": "$(tasks.build.results.SBOM_BLOB_URL)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_URL",
                            "value": "$(tasks.clone-repository.results.url)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_COMMIT",
                            "value": "$(tasks.clone-repository.results.commit)"
                        },
                        {
                            "description": "",
                            "name": "ACS_SCAN_OUTPUT",
                            "value": "$(tasks.scan.results.SCAN_OUTPUT)"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-jjkcnsga"
                                },
                                {
                                    "name": "revision",
                                    "value": "d7769ed52258d7267851c56328a054b39c613201"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "d7769ed52258d7267851c56328a054b39c613201"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "build",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "cosign-public-secret-name",
                                    "value": "cosign-pub"
                                },
                                {
                                    "name": "tpa_secret_name",
                                    "value": "tpa-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:d7769ed52258d7267851c56328a054b39c613201"
                                },
                                {
                                    "name": "DOCKERFILE",
                                    "value": "src/main/docker/Dockerfile.jvm.staged"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                },
                                {
                                    "name": "BUILD_ARGS",
                                    "value": []
                                },
                                {
                                    "name": "BUILD_ARGS_FILE",
                                    "value": ""
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Builds source code into a container image and pushes the image into container registry using buildah tool.\nIn addition it generates a SBOM file, injects the SBOM file into final container image and pushes the SBOM file as separate image using cosign tool.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "build-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "./Dockerfile",
                                        "description": "Path to the Dockerfile to build.",
                                        "name": "DOCKERFILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry)",
                                        "name": "TLSVERIFY",
                                        "type": "string"
                                    },
                                    {
                                        "default": [],
                                        "description": "Array of --build-arg values (\"arg=value\" strings)",
                                        "name": "BUILD_ARGS",
                                        "type": "array"
                                    },
                                    {
                                        "default": "",
                                        "description": "Path to a file with build arguments, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                                        "name": "BUILD_ARGS_FILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Digest of the image just built",
                                        "name": "IMAGE_DIGEST",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Image repository and tag where the built image was pushed",
                                        "name": "IMAGE_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Digests of the base images used for build",
                                        "name": "BASE_IMAGES_DIGESTS",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Link to the SBOM layer pushed to the registry as part of an OCI artifact.",
                                        "name": "SBOM_BLOB_URL",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "DOCKERFILE",
                                            "value": "$(params.DOCKERFILE)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "TLSVERIFY",
                                            "value": "$(params.TLSVERIFY)"
                                        },
                                        {
                                            "name": "BUILD_ARGS_FILE",
                                            "value": "$(params.BUILD_ARGS_FILE)"
                                        },
                                        {
                                            "name": "_BUILDAH_STARTED_IN_USERNS"
                                        },
                                        {
                                            "name": "BUILDAH_ISOLATION",
                                            "value": "chroot"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_PASSWORD",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_KEY",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.tpa_secret_name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "cosign.pub",
                                                    "name": "$(params.cosign-public-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "DOCKERFILE",
                                                "value": "$(params.DOCKERFILE)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "TLSVERIFY",
                                                "value": "$(params.TLSVERIFY)"
                                            },
                                            {
                                                "name": "BUILD_ARGS_FILE",
                                                "value": "$(params.BUILD_ARGS_FILE)"
                                            },
                                            {
                                                "name": "_BUILDAH_STARTED_IN_USERNS"
                                            },
                                            {
                                                "name": "BUILDAH_ISOLATION",
                                                "value": "chroot"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_PASSWORD",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_KEY",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.tpa_secret_name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "cosign.pub",
                                                        "name": "$(params.cosign-public-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "# Sync scripts to the writable workspace\ncp -rf /work/tssc/ /workspace/source/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e /workspace/source/tssc/common.sh\necho \"Successfully patched /workspace/source/tssc/common.sh\"\necho \"running init\"\npwd\nls -la\n/workspace/source/tssc/init.sh\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    },
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "DOCKERFILE",
                                                "value": "$(params.DOCKERFILE)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "TLSVERIFY",
                                                "value": "$(params.TLSVERIFY)"
                                            },
                                            {
                                                "name": "BUILD_ARGS_FILE",
                                                "value": "$(params.BUILD_ARGS_FILE)"
                                            },
                                            {
                                                "name": "_BUILDAH_STARTED_IN_USERNS"
                                            },
                                            {
                                                "name": "BUILDAH_ISOLATION",
                                                "value": "chroot"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_PASSWORD",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_KEY",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.tpa_secret_name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "cosign.pub",
                                                        "name": "$(params.cosign-public-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "build",
                                        "script": "echo \"running buildah-tssc\"\n/workspace/source/tssc/buildah-tssc.sh\ncat ./results/buildah-tssc/BASE_IMAGES_DIGESTS \u003e $(results.BASE_IMAGES_DIGESTS.path)\ncat ./results/buildah-tssc/IMAGE_DIGEST \u003e $(results.IMAGE_DIGEST.path)\ncat ./results/buildah-tssc/IMAGE_URL \u003e $(results.IMAGE_URL.path)\ncat ./results/buildah-tssc/SBOM_BLOB_URL \u003e $(results.SBOM_BLOB_URL.path)\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deploy",
                            "params": [
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:d7769ed52258d7267851c56328a054b39c613201"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Deploy built image to development environment.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy",
                                        "script": "echo \"running update-deployment\"\n/workspace/source/tssc/update-deployment.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "push",
                                    "operator": "notin",
                                    "values": [
                                        "pull_request",
                                        "Merge Request"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deployment-check",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:d7769ed52258d7267851c56328a054b39c613201"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload-check",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy-check",
                                        "script": "echo \"running acs-deploy-check\"\n/workspace/source/tssc/acs-deploy-check.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "push",
                                    "operator": "in",
                                    "values": [
                                        "push",
                                        "Push"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "scan",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:d7769ed52258d7267851c56328a054b39c613201"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "scan-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "scan",
                                        "script": "echo \"running acs-image-check\"\n/workspace/source/tssc/acs-image-check.sh\necho \"running acs-image-scan\"\n/workspace/source/tssc/acs-image-scan.sh\ncat ./results/acs-image-scan/SCAN_OUTPUT \u003e $(results.SCAN_OUTPUT.path)\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "show-sbom",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:d7769ed52258d7267851c56328a054b39c613201"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Show SBOM report for the built image.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "show-workload-sbom",
                                        "task.output.location": "results",
                                        "task.results.format": "application/text",
                                        "task.results.key": "LINK_TO_SBOM",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Placeholder result meant to make RHDH identify this task as the producer of the SBOM logs.",
                                        "name": "LINK_TO_SBOM",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "show-sbom",
                                        "script": "echo \"running show-sbom-rhdh\"\n/workspace/source/tssc/show-sbom-rhdh.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "summarize",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:d7769ed52258d7267851c56328a054b39c613201"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Summarize all the steps in the build pipeline.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "summarize-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "summary",
                                        "script": "echo \"running summary\"\n/workspace/source/tssc/summary.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "results": [
                    {
                        "name": "IMAGE_DIGEST",
                        "value": "sha256:054cc8b052b99fb2258d333cd64f0dfba54b45298494d5c63cfeaa429846eeb6"
                    },
                    {
                        "name": "IMAGE_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:d7769ed52258d7267851c56328a054b39c613201"
                    },
                    {
                        "name": "BASE_IMAGES_DIGESTS",
                        "value": "registry.access.redhat.com/ubi9/openjdk-21:latest@sha256:253d78f68108c9188e810c6d534071dc16b437ddae185541c4292e2236c09d0a\nregistry.access.redhat.com/ubi9/openjdk-21-runtime:latest@sha256:4f77a4aef51bb959a7af413b702d2b5db9b530c9bc09d10758947d5c73b7bafc\n"
                    },
                    {
                        "name": "SBOM_BLOB_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga@sha256:9f8b04fa8e17fd5aad66fcdea70052420d1163f082915fbf14d75dcdc2b107cc"
                    },
                    {
                        "name": "CHAINS-GIT_URL",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-jjkcnsga"
                    },
                    {
                        "name": "CHAINS-GIT_COMMIT",
                        "value": "d7769ed52258d7267851c56328a054b39c613201"
                    },
                    {
                        "name": "ACS_SCAN_OUTPUT",
                        "value": "{\"vulnerabilities\":{\"critical\":0,\"high\":12,\"medium\":79,\"low\":57}}\n"
                    }
                ],
                "startTime": "2026-04-27T16:31:10Z"
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "PipelineRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "chains.tekton.dev/transparency": "https://rekor-server-tssc-tas.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/api/v1/log/entries?logIndex=122",
                    "pipelinesascode.tekton.dev/branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/check-run-id": "73233797514",
                    "pipelinesascode.tekton.dev/controller-info": "{\"name\":\"default\",\"configmap\":\"pipelines-as-code\",\"secret\":\"pipelines-as-code-secret\", \"gRepo\": \"pipelines-as-code\"}",
                    "pipelinesascode.tekton.dev/event-type": "push",
                    "pipelinesascode.tekton.dev/git-auth-secret": "pac-gitauth-tlyjmh",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-java-quarkus-jjkcnsga-on-push-6vlnj",
                    "pipelinesascode.tekton.dev/max-keep-runs": "2",
                    "pipelinesascode.tekton.dev/on-event": "[push]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-quarkus-jjkcnsga-on-push",
                    "pipelinesascode.tekton.dev/pipeline": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/pipelines/docker-build-tssc.yaml",
                    "pipelinesascode.tekton.dev/repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-jjkcnsga",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-quarkus-jjkcnsga-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "0085e2fd1a3a9f80739a3c8132c80eddf8675f16",
                    "pipelinesascode.tekton.dev/sha-title": "Merge pull request #1 from rhtap-rhdh-qe/test-branch-1777307519448",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-jjkcnsga/commit/0085e2fd1a3a9f80739a3c8132c80eddf8675f16",
                    "pipelinesascode.tekton.dev/source-branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-jjkcnsga",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/task-0": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/init.yaml",
                    "pipelinesascode.tekton.dev/task-1": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/git-clone.yaml",
                    "pipelinesascode.tekton.dev/task-10": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/deploy-workload.yaml",
                    "pipelinesascode.tekton.dev/task-11": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/scan-workload.yaml",
                    "pipelinesascode.tekton.dev/task-12": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/summarize-workload.yaml",
                    "pipelinesascode.tekton.dev/task-13": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/show-workload-sbom.yaml",
                    "pipelinesascode.tekton.dev/task-14": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/deploy-workload-check.yaml",
                    "pipelinesascode.tekton.dev/task-2": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/buildah-rhtap.yaml",
                    "pipelinesascode.tekton.dev/task-3": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-image-check.yaml",
                    "pipelinesascode.tekton.dev/task-4": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-image-scan.yaml",
                    "pipelinesascode.tekton.dev/task-5": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-deploy-check.yaml",
                    "pipelinesascode.tekton.dev/task-6": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/update-deployment.yaml",
                    "pipelinesascode.tekton.dev/task-7": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/show-sbom-rhdh.yaml",
                    "pipelinesascode.tekton.dev/task-8": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/summary.yaml",
                    "pipelinesascode.tekton.dev/task-9": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/build-workload.yaml",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-java-quarkus-jjkcnsga",
                    "results.tekton.dev/record": "tssc-app-ci/results/625c0812-4d87-4192-bcc6-8d2014cd2476/records/625c0812-4d87-4192-bcc6-8d2014cd2476",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-java-quarkus-jjkcnsga\",\"commit\":\"0085e2fd1a3a9f80739a3c8132c80eddf8675f16\",\"eventType\":\"push\"}",
                    "results.tekton.dev/result": "tssc-app-ci/results/625c0812-4d87-4192-bcc6-8d2014cd2476",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-27T16:35:49Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "results.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-java-quarkus-jjkcnsga-on-push-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-java-quarkus-jjkcnsga",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-java-quarkus-jjkcnsga",
                    "backstage.io/kubernetes-id": "e2e-tests-java-quarkus-jjkcnsga",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-java-quarkus-jjkcnsga",
                    "pipelinesascode.tekton.dev/check-run-id": "73233797514",
                    "pipelinesascode.tekton.dev/event-type": "push",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-quarkus-jjkcnsga-on-push",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-quarkus-jjkcnsga-repository",
                    "pipelinesascode.tekton.dev/sha": "0085e2fd1a3a9f80739a3c8132c80eddf8675f16",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-java-quarkus-jjkcnsga",
                    "tekton.dev/pipeline": "e2e-tests-java-quarkus-jjkcnsga-on-push-6vlnj"
                },
                "name": "e2e-tests-java-quarkus-jjkcnsga-on-push-6vlnj",
                "namespace": "tssc-app-ci",
                "resourceVersion": "51417",
                "uid": "625c0812-4d87-4192-bcc6-8d2014cd2476"
            },
            "spec": {
                "params": [
                    {
                        "name": "dockerfile",
                        "value": "src/main/docker/Dockerfile.jvm.staged"
                    },
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-jjkcnsga"
                    },
                    {
                        "name": "image-expires-after",
                        "value": "5d"
                    },
                    {
                        "name": "output-image",
                        "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:0085e2fd1a3a9f80739a3c8132c80eddf8675f16"
                    },
                    {
                        "name": "path-context",
                        "value": "."
                    },
                    {
                        "name": "revision",
                        "value": "0085e2fd1a3a9f80739a3c8132c80eddf8675f16"
                    },
                    {
                        "name": "event-type",
                        "value": "push"
                    },
                    {
                        "name": "gitops-auth-secret-name",
                        "value": "gitops-auth-secret"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Source Repository URL",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Revision of the Source Repository",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "description": "Fully Qualified Output Image",
                            "name": "output-image",
                            "type": "string"
                        },
                        {
                            "default": ".",
                            "description": "Path to the source code of an application's component from where to build image.",
                            "name": "path-context",
                            "type": "string"
                        },
                        {
                            "default": "Dockerfile",
                            "description": "Path to the Dockerfile inside the context specified by parameter path-context",
                            "name": "dockerfile",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Force rebuild image",
                            "name": "rebuild",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Image tag expiration time, time values could be something like 1h, 2d, 3w for hours, days, and weeks, respectively.",
                            "name": "image-expires-after",
                            "type": "string"
                        },
                        {
                            "default": "rox-api-token",
                            "name": "stackrox-secret",
                            "type": "string"
                        },
                        {
                            "default": "gitops-auth-secret",
                            "description": "Secret name to enable this pipeline to update the gitops repo with the new image. ",
                            "name": "gitops-auth-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "cosign-pub",
                            "description": "Secret name to enable verify cosign signature. ",
                            "name": "cosign-public-key-secret",
                            "type": "string"
                        },
                        {
                            "default": "push",
                            "description": "Event that triggered the pipeline run, e.g. push, pull_request",
                            "name": "event-type",
                            "type": "string"
                        },
                        {
                            "default": [],
                            "description": "Array of --build-arg values (\"arg=value\" strings) for buildah",
                            "name": "build-args",
                            "type": "array"
                        },
                        {
                            "default": "",
                            "description": "Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                            "name": "build-args-file",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Digest of the image just built",
                            "name": "IMAGE_DIGEST",
                            "value": "$(tasks.build.results.IMAGE_DIGEST)"
                        },
                        {
                            "description": "Image repository and tag where the built image was pushed",
                            "name": "IMAGE_URL",
                            "value": "$(tasks.build.results.IMAGE_URL)"
                        },
                        {
                            "description": "Digests of the base images used for build",
                            "name": "BASE_IMAGES_DIGESTS",
                            "value": "$(tasks.build.results.BASE_IMAGES_DIGESTS)"
                        },
                        {
                            "description": "Link to the SBOM layer pushed to the registry",
                            "name": "SBOM_BLOB_URL",
                            "value": "$(tasks.build.results.SBOM_BLOB_URL)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_URL",
                            "value": "$(tasks.clone-repository.results.url)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_COMMIT",
                            "value": "$(tasks.clone-repository.results.commit)"
                        },
                        {
                            "description": "",
                            "name": "ACS_SCAN_OUTPUT",
                            "value": "$(tasks.scan.results.SCAN_OUTPUT)"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "$(params.git-url)"
                                },
                                {
                                    "name": "revision",
                                    "value": "$(params.revision)"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "$(params.revision)"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "build",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "cosign-public-secret-name",
                                    "value": "$(params.cosign-public-key-secret)"
                                },
                                {
                                    "name": "tpa_secret_name",
                                    "value": "$(params.trustification-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "DOCKERFILE",
                                    "value": "$(params.dockerfile)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                },
                                {
                                    "name": "BUILD_ARGS",
                                    "value": [
                                        "$(params.build-args[*])"
                                    ]
                                },
                                {
                                    "name": "BUILD_ARGS_FILE",
                                    "value": "$(params.build-args-file)"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Builds source code into a container image and pushes the image into container registry using buildah tool.\nIn addition it generates a SBOM file, injects the SBOM file into final container image and pushes the SBOM file as separate image using cosign tool.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "build-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "./Dockerfile",
                                        "description": "Path to the Dockerfile to build.",
                                        "name": "DOCKERFILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry)",
                                        "name": "TLSVERIFY",
                                        "type": "string"
                                    },
                                    {
                                        "default": [],
                                        "description": "Array of --build-arg values (\"arg=value\" strings)",
                                        "name": "BUILD_ARGS",
                                        "type": "array"
                                    },
                                    {
                                        "default": "",
                                        "description": "Path to a file with build arguments, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                                        "name": "BUILD_ARGS_FILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Digest of the image just built",
                                        "name": "IMAGE_DIGEST",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Image repository and tag where the built image was pushed",
                                        "name": "IMAGE_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Digests of the base images used for build",
                                        "name": "BASE_IMAGES_DIGESTS",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Link to the SBOM layer pushed to the registry as part of an OCI artifact.",
                                        "name": "SBOM_BLOB_URL",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "DOCKERFILE",
                                            "value": "$(params.DOCKERFILE)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "TLSVERIFY",
                                            "value": "$(params.TLSVERIFY)"
                                        },
                                        {
                                            "name": "BUILD_ARGS_FILE",
                                            "value": "$(params.BUILD_ARGS_FILE)"
                                        },
                                        {
                                            "name": "_BUILDAH_STARTED_IN_USERNS"
                                        },
                                        {
                                            "name": "BUILDAH_ISOLATION",
                                            "value": "chroot"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_PASSWORD",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_KEY",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.tpa_secret_name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "cosign.pub",
                                                    "name": "$(params.cosign-public-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "# Sync scripts to the writable workspace\ncp -rf /work/tssc/ /workspace/source/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e /workspace/source/tssc/common.sh\necho \"Successfully patched /workspace/source/tssc/common.sh\"\necho \"running init\"\npwd\nls -la\n/workspace/source/tssc/init.sh\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    },
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "build",
                                        "script": "echo \"running buildah-tssc\"\n/workspace/source/tssc/buildah-tssc.sh\ncat ./results/buildah-tssc/BASE_IMAGES_DIGESTS \u003e $(results.BASE_IMAGES_DIGESTS.path)\ncat ./results/buildah-tssc/IMAGE_DIGEST \u003e $(results.IMAGE_DIGEST.path)\ncat ./results/buildah-tssc/IMAGE_URL \u003e $(results.IMAGE_URL.path)\ncat ./results/buildah-tssc/SBOM_BLOB_URL \u003e $(results.SBOM_BLOB_URL.path)\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deploy",
                            "params": [
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Deploy built image to development environment.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy",
                                        "script": "echo \"running update-deployment\"\n/workspace/source/tssc/update-deployment.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(params.event-type)",
                                    "operator": "notin",
                                    "values": [
                                        "pull_request",
                                        "Merge Request"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deployment-check",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload-check",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy-check",
                                        "script": "echo \"running acs-deploy-check\"\n/workspace/source/tssc/acs-deploy-check.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(params.event-type)",
                                    "operator": "in",
                                    "values": [
                                        "push",
                                        "Push"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "scan",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "scan-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "scan",
                                        "script": "echo \"running acs-image-check\"\n/workspace/source/tssc/acs-image-check.sh\necho \"running acs-image-scan\"\n/workspace/source/tssc/acs-image-scan.sh\ncat ./results/acs-image-scan/SCAN_OUTPUT \u003e $(results.SCAN_OUTPUT.path)\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "show-sbom",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Show SBOM report for the built image.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "show-workload-sbom",
                                        "task.output.location": "results",
                                        "task.results.format": "application/text",
                                        "task.results.key": "LINK_TO_SBOM",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Placeholder result meant to make RHDH identify this task as the producer of the SBOM logs.",
                                        "name": "LINK_TO_SBOM",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "show-sbom",
                                        "script": "echo \"running show-sbom-rhdh\"\n/workspace/source/tssc/show-sbom-rhdh.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "summarize",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Summarize all the steps in the build pipeline.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "summarize-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "summary",
                                        "script": "echo \"running summary\"\n/workspace/source/tssc/summary.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "taskRunTemplate": {
                    "serviceAccountName": "pipeline"
                },
                "timeouts": {
                    "pipeline": "1h0m0s"
                },
                "workspaces": [
                    {
                        "name": "gitops-auth",
                        "secret": {
                            "secretName": "$(params.gitops-auth-secret-name)"
                        }
                    },
                    {
                        "name": "git-auth",
                        "secret": {
                            "secretName": "pac-gitauth-tlyjmh"
                        }
                    },
                    {
                        "name": "workspace",
                        "volumeClaimTemplate": {
                            "metadata": {
                                "creationTimestamp": null
                            },
                            "spec": {
                                "accessModes": [
                                    "ReadWriteOnce"
                                ],
                                "resources": {
                                    "requests": {
                                        "storage": "1Gi"
                                    }
                                }
                            },
                            "status": {}
                        }
                    }
                ]
            },
            "status": {
                "childReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quarkus-jjkcnsga-on-push-6vlnj-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quarkus-jjkcnsga-on-push-6vlnj-build",
                        "pipelineTaskName": "build"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quarkus-jjkcnsga-on-push-6vlnj-deploy",
                        "pipelineTaskName": "deploy",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "notin",
                                "values": [
                                    "pull_request",
                                    "Merge Request"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quarkus-jjkcnsga-on-push-6vlnj-deployment-check",
                        "pipelineTaskName": "deployment-check",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "in",
                                "values": [
                                    "push",
                                    "Push"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quarkus-jjkcnsga-on-push-6vlnj-scan",
                        "pipelineTaskName": "scan"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quarkus-jjkcnsga-on-push-6vlnj-show-sbom",
                        "pipelineTaskName": "show-sbom"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quarkus-jjkcnsga-on-push-6vlnj-summarize",
                        "pipelineTaskName": "summarize"
                    }
                ],
                "completionTime": "2026-04-27T16:38:49Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-27T16:38:49Z",
                        "message": "Tasks Completed: 7 (Failed: 0, Cancelled 0), Skipped: 0",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Source Repository URL",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Revision of the Source Repository",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "description": "Fully Qualified Output Image",
                            "name": "output-image",
                            "type": "string"
                        },
                        {
                            "default": ".",
                            "description": "Path to the source code of an application's component from where to build image.",
                            "name": "path-context",
                            "type": "string"
                        },
                        {
                            "default": "Dockerfile",
                            "description": "Path to the Dockerfile inside the context specified by parameter path-context",
                            "name": "dockerfile",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Force rebuild image",
                            "name": "rebuild",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Image tag expiration time, time values could be something like 1h, 2d, 3w for hours, days, and weeks, respectively.",
                            "name": "image-expires-after",
                            "type": "string"
                        },
                        {
                            "default": "rox-api-token",
                            "name": "stackrox-secret",
                            "type": "string"
                        },
                        {
                            "default": "gitops-auth-secret",
                            "description": "Secret name to enable this pipeline to update the gitops repo with the new image. ",
                            "name": "gitops-auth-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "cosign-pub",
                            "description": "Secret name to enable verify cosign signature. ",
                            "name": "cosign-public-key-secret",
                            "type": "string"
                        },
                        {
                            "default": "push",
                            "description": "Event that triggered the pipeline run, e.g. push, pull_request",
                            "name": "event-type",
                            "type": "string"
                        },
                        {
                            "default": [],
                            "description": "Array of --build-arg values (\"arg=value\" strings) for buildah",
                            "name": "build-args",
                            "type": "array"
                        },
                        {
                            "default": "",
                            "description": "Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                            "name": "build-args-file",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Digest of the image just built",
                            "name": "IMAGE_DIGEST",
                            "value": "$(tasks.build.results.IMAGE_DIGEST)"
                        },
                        {
                            "description": "Image repository and tag where the built image was pushed",
                            "name": "IMAGE_URL",
                            "value": "$(tasks.build.results.IMAGE_URL)"
                        },
                        {
                            "description": "Digests of the base images used for build",
                            "name": "BASE_IMAGES_DIGESTS",
                            "value": "$(tasks.build.results.BASE_IMAGES_DIGESTS)"
                        },
                        {
                            "description": "Link to the SBOM layer pushed to the registry",
                            "name": "SBOM_BLOB_URL",
                            "value": "$(tasks.build.results.SBOM_BLOB_URL)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_URL",
                            "value": "$(tasks.clone-repository.results.url)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_COMMIT",
                            "value": "$(tasks.clone-repository.results.commit)"
                        },
                        {
                            "description": "",
                            "name": "ACS_SCAN_OUTPUT",
                            "value": "$(tasks.scan.results.SCAN_OUTPUT)"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-jjkcnsga"
                                },
                                {
                                    "name": "revision",
                                    "value": "0085e2fd1a3a9f80739a3c8132c80eddf8675f16"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "0085e2fd1a3a9f80739a3c8132c80eddf8675f16"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "build",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "cosign-public-secret-name",
                                    "value": "cosign-pub"
                                },
                                {
                                    "name": "tpa_secret_name",
                                    "value": "tpa-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:0085e2fd1a3a9f80739a3c8132c80eddf8675f16"
                                },
                                {
                                    "name": "DOCKERFILE",
                                    "value": "src/main/docker/Dockerfile.jvm.staged"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                },
                                {
                                    "name": "BUILD_ARGS",
                                    "value": []
                                },
                                {
                                    "name": "BUILD_ARGS_FILE",
                                    "value": ""
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Builds source code into a container image and pushes the image into container registry using buildah tool.\nIn addition it generates a SBOM file, injects the SBOM file into final container image and pushes the SBOM file as separate image using cosign tool.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "build-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "./Dockerfile",
                                        "description": "Path to the Dockerfile to build.",
                                        "name": "DOCKERFILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry)",
                                        "name": "TLSVERIFY",
                                        "type": "string"
                                    },
                                    {
                                        "default": [],
                                        "description": "Array of --build-arg values (\"arg=value\" strings)",
                                        "name": "BUILD_ARGS",
                                        "type": "array"
                                    },
                                    {
                                        "default": "",
                                        "description": "Path to a file with build arguments, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                                        "name": "BUILD_ARGS_FILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Digest of the image just built",
                                        "name": "IMAGE_DIGEST",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Image repository and tag where the built image was pushed",
                                        "name": "IMAGE_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Digests of the base images used for build",
                                        "name": "BASE_IMAGES_DIGESTS",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Link to the SBOM layer pushed to the registry as part of an OCI artifact.",
                                        "name": "SBOM_BLOB_URL",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "DOCKERFILE",
                                            "value": "$(params.DOCKERFILE)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "TLSVERIFY",
                                            "value": "$(params.TLSVERIFY)"
                                        },
                                        {
                                            "name": "BUILD_ARGS_FILE",
                                            "value": "$(params.BUILD_ARGS_FILE)"
                                        },
                                        {
                                            "name": "_BUILDAH_STARTED_IN_USERNS"
                                        },
                                        {
                                            "name": "BUILDAH_ISOLATION",
                                            "value": "chroot"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_PASSWORD",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_KEY",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.tpa_secret_name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "cosign.pub",
                                                    "name": "$(params.cosign-public-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "DOCKERFILE",
                                                "value": "$(params.DOCKERFILE)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "TLSVERIFY",
                                                "value": "$(params.TLSVERIFY)"
                                            },
                                            {
                                                "name": "BUILD_ARGS_FILE",
                                                "value": "$(params.BUILD_ARGS_FILE)"
                                            },
                                            {
                                                "name": "_BUILDAH_STARTED_IN_USERNS"
                                            },
                                            {
                                                "name": "BUILDAH_ISOLATION",
                                                "value": "chroot"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_PASSWORD",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_KEY",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.tpa_secret_name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "cosign.pub",
                                                        "name": "$(params.cosign-public-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "# Sync scripts to the writable workspace\ncp -rf /work/tssc/ /workspace/source/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e /workspace/source/tssc/common.sh\necho \"Successfully patched /workspace/source/tssc/common.sh\"\necho \"running init\"\npwd\nls -la\n/workspace/source/tssc/init.sh\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    },
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "DOCKERFILE",
                                                "value": "$(params.DOCKERFILE)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "TLSVERIFY",
                                                "value": "$(params.TLSVERIFY)"
                                            },
                                            {
                                                "name": "BUILD_ARGS_FILE",
                                                "value": "$(params.BUILD_ARGS_FILE)"
                                            },
                                            {
                                                "name": "_BUILDAH_STARTED_IN_USERNS"
                                            },
                                            {
                                                "name": "BUILDAH_ISOLATION",
                                                "value": "chroot"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_PASSWORD",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_KEY",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.tpa_secret_name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "cosign.pub",
                                                        "name": "$(params.cosign-public-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "build",
                                        "script": "echo \"running buildah-tssc\"\n/workspace/source/tssc/buildah-tssc.sh\ncat ./results/buildah-tssc/BASE_IMAGES_DIGESTS \u003e $(results.BASE_IMAGES_DIGESTS.path)\ncat ./results/buildah-tssc/IMAGE_DIGEST \u003e $(results.IMAGE_DIGEST.path)\ncat ./results/buildah-tssc/IMAGE_URL \u003e $(results.IMAGE_URL.path)\ncat ./results/buildah-tssc/SBOM_BLOB_URL \u003e $(results.SBOM_BLOB_URL.path)\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deploy",
                            "params": [
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:0085e2fd1a3a9f80739a3c8132c80eddf8675f16"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Deploy built image to development environment.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy",
                                        "script": "echo \"running update-deployment\"\n/workspace/source/tssc/update-deployment.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "push",
                                    "operator": "notin",
                                    "values": [
                                        "pull_request",
                                        "Merge Request"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deployment-check",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:0085e2fd1a3a9f80739a3c8132c80eddf8675f16"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload-check",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy-check",
                                        "script": "echo \"running acs-deploy-check\"\n/workspace/source/tssc/acs-deploy-check.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "push",
                                    "operator": "in",
                                    "values": [
                                        "push",
                                        "Push"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "scan",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:0085e2fd1a3a9f80739a3c8132c80eddf8675f16"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "scan-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "scan",
                                        "script": "echo \"running acs-image-check\"\n/workspace/source/tssc/acs-image-check.sh\necho \"running acs-image-scan\"\n/workspace/source/tssc/acs-image-scan.sh\ncat ./results/acs-image-scan/SCAN_OUTPUT \u003e $(results.SCAN_OUTPUT.path)\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "show-sbom",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:0085e2fd1a3a9f80739a3c8132c80eddf8675f16"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Show SBOM report for the built image.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "show-workload-sbom",
                                        "task.output.location": "results",
                                        "task.results.format": "application/text",
                                        "task.results.key": "LINK_TO_SBOM",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Placeholder result meant to make RHDH identify this task as the producer of the SBOM logs.",
                                        "name": "LINK_TO_SBOM",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "show-sbom",
                                        "script": "echo \"running show-sbom-rhdh\"\n/workspace/source/tssc/show-sbom-rhdh.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "summarize",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:0085e2fd1a3a9f80739a3c8132c80eddf8675f16"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Summarize all the steps in the build pipeline.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "summarize-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "summary",
                                        "script": "echo \"running summary\"\n/workspace/source/tssc/summary.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "results": [
                    {
                        "name": "IMAGE_DIGEST",
                        "value": "sha256:60a65a887d8aa7e2fa674055feccd7d04040f8a142dca5e64dabcc67edc2baee"
                    },
                    {
                        "name": "IMAGE_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga:0085e2fd1a3a9f80739a3c8132c80eddf8675f16"
                    },
                    {
                        "name": "BASE_IMAGES_DIGESTS",
                        "value": "registry.access.redhat.com/ubi9/openjdk-21:latest@sha256:253d78f68108c9188e810c6d534071dc16b437ddae185541c4292e2236c09d0a\nregistry.access.redhat.com/ubi9/openjdk-21-runtime:latest@sha256:4f77a4aef51bb959a7af413b702d2b5db9b530c9bc09d10758947d5c73b7bafc\n"
                    },
                    {
                        "name": "SBOM_BLOB_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-jjkcnsga@sha256:7b3ab3eec4b5f7542fc21805c03d9328e297905816f0e19a541c99643d222cc2"
                    },
                    {
                        "name": "CHAINS-GIT_URL",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-jjkcnsga"
                    },
                    {
                        "name": "CHAINS-GIT_COMMIT",
                        "value": "0085e2fd1a3a9f80739a3c8132c80eddf8675f16"
                    },
                    {
                        "name": "ACS_SCAN_OUTPUT",
                        "value": "{\"vulnerabilities\":{\"critical\":0,\"high\":12,\"medium\":79,\"low\":57}}\n"
                    }
                ],
                "startTime": "2026-04-27T16:35:49Z"
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "PipelineRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "chains.tekton.dev/transparency": "https://rekor-server-tssc-tas.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/api/v1/log/entries?logIndex=171",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "73234669993",
                    "pipelinesascode.tekton.dev/controller-info": "{\"name\":\"default\",\"configmap\":\"pipelines-as-code\",\"secret\":\"pipelines-as-code-secret\", \"gRepo\": \"pipelines-as-code\"}",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/git-auth-secret": "pac-gitauth-dlbyuy",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-java-springboot-pdwrzgco-gitops-on-pull-request-px5gc",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-springboot-pdwrzgco-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pipeline": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/pipelines/gitops-pull-request-tssc.yaml",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-pdwrzgco-gitops",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-springboot-pdwrzgco-gitops-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "d60c3bf614484efa37ce9b6ca49b8ec0cc76ca14",
                    "pipelinesascode.tekton.dev/sha-title": "Promote to stage environment",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-pdwrzgco-gitops/commit/d60c3bf614484efa37ce9b6ca49b8ec0cc76ca14",
                    "pipelinesascode.tekton.dev/source-branch": "promote-to-stage-1777308049614",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-pdwrzgco-gitops",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/task-0": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/git-clone.yaml",
                    "pipelinesascode.tekton.dev/task-1": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/gather-deploy-images.yaml",
                    "pipelinesascode.tekton.dev/task-2": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/verify-enterprise-contract.yaml",
                    "pipelinesascode.tekton.dev/task-3": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/gather-deploy-images.yaml",
                    "pipelinesascode.tekton.dev/task-4": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/download-sbom-from-url-in-attestation.yaml",
                    "pipelinesascode.tekton.dev/task-5": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/upload-sbom-to-trustification.yaml",
                    "pipelinesascode.tekton.dev/task-6": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/fetch-gitops-images.yaml",
                    "pipelinesascode.tekton.dev/task-7": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/verify-gitops-conforma.yaml",
                    "pipelinesascode.tekton.dev/task-8": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/download-gitops-sbom.yaml",
                    "pipelinesascode.tekton.dev/task-9": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/upload-gitops-sbom.yaml",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-java-springboot-pdwrzgco-gitops",
                    "results.tekton.dev/record": "tssc-app-ci/results/058c2562-1431-40a3-bd11-893f14fccb7e/records/058c2562-1431-40a3-bd11-893f14fccb7e",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-java-springboot-pdwrzgco-gitops\",\"commit\":\"d60c3bf614484efa37ce9b6ca49b8ec0cc76ca14\",\"eventType\":\"pull_request\",\"pull_request-id\":1}",
                    "results.tekton.dev/result": "tssc-app-ci/results/058c2562-1431-40a3-bd11-893f14fccb7e",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-27T16:41:00Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "results.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-java-springboot-pdwrzgco-gitops-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-java-springboot-pdwrzgco",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-java-springboot-pdwrzgco",
                    "backstage.io/kubernetes-id": "e2e-tests-java-springboot-pdwrzgco",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-java-springboot-pdwrzgco",
                    "pipelinesascode.tekton.dev/check-run-id": "73234669993",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-springboot-pdwrzgco-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-springboot-pdwrzgco-gitops-repository",
                    "pipelinesascode.tekton.dev/sha": "d60c3bf614484efa37ce9b6ca49b8ec0cc76ca14",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-java-springboot-pdwrzgco-gitops",
                    "tekton.dev/pipeline": "e2e-tests-java-springboot-pdwrzgco-gitops-on-pull-request-px5gc"
                },
                "name": "e2e-tests-java-springboot-pdwrzgco-gitops-on-pull-request-px5gc",
                "namespace": "tssc-app-ci",
                "resourceVersion": "56693",
                "uid": "058c2562-1431-40a3-bd11-893f14fccb7e"
            },
            "spec": {
                "params": [
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-pdwrzgco-gitops"
                    },
                    {
                        "name": "revision",
                        "value": "d60c3bf614484efa37ce9b6ca49b8ec0cc76ca14"
                    },
                    {
                        "name": "target-branch",
                        "value": "main"
                    },
                    {
                        "name": "fail-if-trustification-not-configured",
                        "value": "false"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Gitops repo url",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Gitops repo revision",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "default": "main",
                            "description": "The target branch for the pull request",
                            "name": "target-branch",
                            "type": "string"
                        },
                        {
                            "default": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7",
                            "description": "Enterprise Contract policy to validate against",
                            "name": "ec-policy-configuration",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should EC violations cause the pipeline to fail?",
                            "name": "ec-strict",
                            "type": "string"
                        },
                        {
                            "default": "k8s://$(context.pipelineRun.namespace)/cosign-pub",
                            "description": "The public key that EC should use to verify signatures",
                            "name": "ec-public-key",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should the pipeline fail when there are SBOMs to upload but Trustification is not properly configured (i.e. the secret is missing or doesn't have all the required keys)?",
                            "name": "fail-if-trustification-not-configured",
                            "type": "string"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "$(params.git-url)"
                                },
                                {
                                    "name": "revision",
                                    "value": "$(params.revision)"
                                },
                                {
                                    "name": "fetchTags",
                                    "value": "true"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "$(params.revision)"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "get-images",
                            "params": [
                                {
                                    "name": "PUBLIC_KEY_URL",
                                    "value": "$(params.ec-public-key)"
                                },
                                {
                                    "name": "TARGET_BRANCH",
                                    "value": "$(params.target-branch)"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Extract images from deployment YAML to pass to Conforma for validation",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a valid k8s cosign reference, e.g. k8s://my-space/my-secret where my-secret contains the expected cosign.pub attribute.",
                                        "name": "PUBLIC_KEY_URL",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "If specified, will gather only the images that changed between the current revision and the target branch. Useful for pull requests. Note that the repository cloned on the source workspace must already contain the origin/$TARGET_BRANCH reference.\n",
                                        "name": "TARGET_BRANCH",
                                        "type": "string"
                                    },
                                    {
                                        "default": [
                                            "development",
                                            "stage",
                                            "prod"
                                        ],
                                        "description": "Gather images from the manifest files for the specified environments",
                                        "name": "ENVIRONMENTS",
                                        "type": "array"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Cosign base64 encoded public key fetched from secrets.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images with SBOMs to upload to Trustification \n",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images to be verified, in a format compatible with https://github.com/konflux-ci/build-definitions/tree/main/task/verify-enterprise-contract/0.1. When there are no images to verify, this is an empty string.\n",
                                        "name": "CONFORMA_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TARGET_BRANCH",
                                            "value": "$(params.TARGET_BRANCH)"
                                        },
                                        {
                                            "name": "PUBLIC_KEY_URL",
                                            "value": "$(params.PUBLIC_KEY_URL)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "pwd\nls -la\n# Sync scripts to the writable workspace\ncp -rf /work/tssc/ $(workspaces.source.path)/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e $(workspaces.source.path)/tssc/common.sh\necho \"Successfully patched $(workspaces.source.path)/tssc/common.sh\"\n\necho \"Parsing public key url\"\nCLEAN_URL=\"${PUBLIC_KEY_URL#k8s://}\"\nNS=\"${CLEAN_URL%/*}\"\nSECRET=\"${CLEAN_URL##*/}\"\nCOSIGN_PUBLIC_KEY=$(oc get secrets $SECRET -n $NS -o json | jq -r '.data.\"cosign.pub\"')\necho $COSIGN_PUBLIC_KEY \u003e $(results.COSIGN_PUBLIC_KEY.path)\n"
                                    },
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "get-images",
                                        "script": "echo \"running gather-images-to-upload-sbom\"\n$(workspaces.source.path)/tssc/gather-images-to-upload-sbom.sh\nmv ./results/gather-deploy-images ./results/sbom-images \ncat ./results/sbom-images/IMAGES_TO_VERIFY \u003e $(results.SBOM_IMAGES.path)\n\necho \"running gather-deploy-images\"\n$(workspaces.source.path)/tssc/gather-deploy-images.sh\ncat ./results/gather-deploy-images/IMAGES_TO_VERIFY \u003e $(results.CONFORMA_IMAGES.path)\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "verify-conforma",
                            "params": [
                                {
                                    "name": "STRICT",
                                    "value": "$(params.ec-strict)"
                                },
                                {
                                    "name": "POLICY_CONFIGURATION",
                                    "value": "$(params.ec-policy-configuration)"
                                },
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Verify the enterprise contract is met",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "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": "true",
                                        "description": "Fail the task if policy fails. Set to `\"false\"` to disable it.",
                                        "name": "STRICT",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Short summary of the policy evaluation for each image.",
                                        "name": "TEST_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STRICT",
                                            "value": "$(params.STRICT)"
                                        },
                                        {
                                            "name": "POLICY_CONFIGURATION",
                                            "value": "$(params.POLICY_CONFIGURATION)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "verify",
                                        "script": "echo \"running verify-conforma\"\n$(workspaces.source.path)/tssc/verify-conforma.sh\ncat ./results/verify-conforma/TEST_OUTPUT \u003e $(results.TEST_OUTPUT.path)\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.CONFORMA_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "download-sboms",
                            "params": [
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                },
                                {
                                    "name": "SBOM_IMAGES",
                                    "value": "$(tasks.get-images.results.SBOM_IMAGES)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Download SBOM from images",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Images to be considered for SBOM download.",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        },
                                        {
                                            "name": "IMAGES",
                                            "value": "$(params.SBOM_IMAGES)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "download",
                                        "script": "echo \"running download-sbom-from-url-in-attestation\"\n$(workspaces.source.path)/tssc/download-sbom-from-url-in-attestation.sh\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "upload-sboms",
                            "params": [
                                {
                                    "name": "TPA_SECRET",
                                    "value": "$(params.trustification-secret-name)"
                                }
                            ],
                            "runAfter": [
                                "download-sboms"
                            ],
                            "taskSpec": {
                                "description": "Upload SBOMs to Trustification",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "TPA Secret to obtain Trustification vars from.",
                                        "name": "TPA_SECRET",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "bombastic_api_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_id",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_secret",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_issuer_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "upload",
                                        "script": "echo \"running upload-sbom-to-trustification\"\n$(workspaces.source.path)/tssc/upload-sbom-to-trustification.sh\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "taskRunTemplate": {
                    "serviceAccountName": "pipeline"
                },
                "timeouts": {
                    "pipeline": "1h0m0s"
                },
                "workspaces": [
                    {
                        "name": "git-auth",
                        "secret": {
                            "secretName": "pac-gitauth-dlbyuy"
                        }
                    },
                    {
                        "name": "workspace",
                        "volumeClaimTemplate": {
                            "metadata": {
                                "creationTimestamp": null
                            },
                            "spec": {
                                "accessModes": [
                                    "ReadWriteOnce"
                                ],
                                "resources": {
                                    "requests": {
                                        "storage": "1Gi"
                                    }
                                }
                            },
                            "status": {}
                        }
                    }
                ]
            },
            "status": {
                "childReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java3f589c2f3c639808594a8649d25bba5a-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-sprin3f589c2f3c639808594a8649d25bba5a-get-images",
                        "pipelineTaskName": "get-images"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-3f589c2f3c639808594a8649d25bba5a-verify-conforma",
                        "pipelineTaskName": "verify-conforma",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:8dacdd0a0ab25f32b6a35bab31769cc88f2c2e6b\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-s3f589c2f3c639808594a8649d25bba5a-download-sboms",
                        "pipelineTaskName": "download-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:8dacdd0a0ab25f32b6a35bab31769cc88f2c2e6b\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-spr3f589c2f3c639808594a8649d25bba5a-upload-sboms",
                        "pipelineTaskName": "upload-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:8dacdd0a0ab25f32b6a35bab31769cc88f2c2e6b\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    }
                ],
                "completionTime": "2026-04-27T16:41:46Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-27T16:41:46Z",
                        "message": "Tasks Completed: 5 (Failed: 0, Cancelled 0), Skipped: 0",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Gitops repo url",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Gitops repo revision",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "default": "main",
                            "description": "The target branch for the pull request",
                            "name": "target-branch",
                            "type": "string"
                        },
                        {
                            "default": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7",
                            "description": "Enterprise Contract policy to validate against",
                            "name": "ec-policy-configuration",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should EC violations cause the pipeline to fail?",
                            "name": "ec-strict",
                            "type": "string"
                        },
                        {
                            "default": "k8s://$(context.pipelineRun.namespace)/cosign-pub",
                            "description": "The public key that EC should use to verify signatures",
                            "name": "ec-public-key",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should the pipeline fail when there are SBOMs to upload but Trustification is not properly configured (i.e. the secret is missing or doesn't have all the required keys)?",
                            "name": "fail-if-trustification-not-configured",
                            "type": "string"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-pdwrzgco-gitops"
                                },
                                {
                                    "name": "revision",
                                    "value": "d60c3bf614484efa37ce9b6ca49b8ec0cc76ca14"
                                },
                                {
                                    "name": "fetchTags",
                                    "value": "true"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "d60c3bf614484efa37ce9b6ca49b8ec0cc76ca14"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "get-images",
                            "params": [
                                {
                                    "name": "PUBLIC_KEY_URL",
                                    "value": "k8s://tssc-app-ci/cosign-pub"
                                },
                                {
                                    "name": "TARGET_BRANCH",
                                    "value": "main"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Extract images from deployment YAML to pass to Conforma for validation",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a valid k8s cosign reference, e.g. k8s://my-space/my-secret where my-secret contains the expected cosign.pub attribute.",
                                        "name": "PUBLIC_KEY_URL",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "If specified, will gather only the images that changed between the current revision and the target branch. Useful for pull requests. Note that the repository cloned on the source workspace must already contain the origin/$TARGET_BRANCH reference.\n",
                                        "name": "TARGET_BRANCH",
                                        "type": "string"
                                    },
                                    {
                                        "default": [
                                            "development",
                                            "stage",
                                            "prod"
                                        ],
                                        "description": "Gather images from the manifest files for the specified environments",
                                        "name": "ENVIRONMENTS",
                                        "type": "array"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Cosign base64 encoded public key fetched from secrets.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images with SBOMs to upload to Trustification \n",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images to be verified, in a format compatible with https://github.com/konflux-ci/build-definitions/tree/main/task/verify-enterprise-contract/0.1. When there are no images to verify, this is an empty string.\n",
                                        "name": "CONFORMA_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TARGET_BRANCH",
                                            "value": "$(params.TARGET_BRANCH)"
                                        },
                                        {
                                            "name": "PUBLIC_KEY_URL",
                                            "value": "$(params.PUBLIC_KEY_URL)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TARGET_BRANCH",
                                                "value": "$(params.TARGET_BRANCH)"
                                            },
                                            {
                                                "name": "PUBLIC_KEY_URL",
                                                "value": "$(params.PUBLIC_KEY_URL)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "pwd\nls -la\n# Sync scripts to the writable workspace\ncp -rf /work/tssc/ $(workspaces.source.path)/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e $(workspaces.source.path)/tssc/common.sh\necho \"Successfully patched $(workspaces.source.path)/tssc/common.sh\"\n\necho \"Parsing public key url\"\nCLEAN_URL=\"${PUBLIC_KEY_URL#k8s://}\"\nNS=\"${CLEAN_URL%/*}\"\nSECRET=\"${CLEAN_URL##*/}\"\nCOSIGN_PUBLIC_KEY=$(oc get secrets $SECRET -n $NS -o json | jq -r '.data.\"cosign.pub\"')\necho $COSIGN_PUBLIC_KEY \u003e $(results.COSIGN_PUBLIC_KEY.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TARGET_BRANCH",
                                                "value": "$(params.TARGET_BRANCH)"
                                            },
                                            {
                                                "name": "PUBLIC_KEY_URL",
                                                "value": "$(params.PUBLIC_KEY_URL)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "get-images",
                                        "script": "echo \"running gather-images-to-upload-sbom\"\n$(workspaces.source.path)/tssc/gather-images-to-upload-sbom.sh\nmv ./results/gather-deploy-images ./results/sbom-images \ncat ./results/sbom-images/IMAGES_TO_VERIFY \u003e $(results.SBOM_IMAGES.path)\n\necho \"running gather-deploy-images\"\n$(workspaces.source.path)/tssc/gather-deploy-images.sh\ncat ./results/gather-deploy-images/IMAGES_TO_VERIFY \u003e $(results.CONFORMA_IMAGES.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "verify-conforma",
                            "params": [
                                {
                                    "name": "STRICT",
                                    "value": "true"
                                },
                                {
                                    "name": "POLICY_CONFIGURATION",
                                    "value": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7"
                                },
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Verify the enterprise contract is met",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "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": "true",
                                        "description": "Fail the task if policy fails. Set to `\"false\"` to disable it.",
                                        "name": "STRICT",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Short summary of the policy evaluation for each image.",
                                        "name": "TEST_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STRICT",
                                            "value": "$(params.STRICT)"
                                        },
                                        {
                                            "name": "POLICY_CONFIGURATION",
                                            "value": "$(params.POLICY_CONFIGURATION)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STRICT",
                                                "value": "$(params.STRICT)"
                                            },
                                            {
                                                "name": "POLICY_CONFIGURATION",
                                                "value": "$(params.POLICY_CONFIGURATION)"
                                            },
                                            {
                                                "name": "REKOR_HOST",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rekor_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TUF_MIRROR",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "tuf_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "value": "$(params.COSIGN_PUBLIC_KEY)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "verify",
                                        "script": "echo \"running verify-conforma\"\n$(workspaces.source.path)/tssc/verify-conforma.sh\ncat ./results/verify-conforma/TEST_OUTPUT \u003e $(results.TEST_OUTPUT.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.CONFORMA_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "download-sboms",
                            "params": [
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                },
                                {
                                    "name": "SBOM_IMAGES",
                                    "value": "$(tasks.get-images.results.SBOM_IMAGES)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Download SBOM from images",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Images to be considered for SBOM download.",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        },
                                        {
                                            "name": "IMAGES",
                                            "value": "$(params.SBOM_IMAGES)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "value": "$(params.COSIGN_PUBLIC_KEY)"
                                            },
                                            {
                                                "name": "IMAGES",
                                                "value": "$(params.SBOM_IMAGES)"
                                            },
                                            {
                                                "name": "REKOR_HOST",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rekor_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TUF_MIRROR",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "tuf_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "download",
                                        "script": "echo \"running download-sbom-from-url-in-attestation\"\n$(workspaces.source.path)/tssc/download-sbom-from-url-in-attestation.sh\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "upload-sboms",
                            "params": [
                                {
                                    "name": "TPA_SECRET",
                                    "value": "tpa-secret"
                                }
                            ],
                            "runAfter": [
                                "download-sboms"
                            ],
                            "taskSpec": {
                                "description": "Upload SBOMs to Trustification",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "TPA Secret to obtain Trustification vars from.",
                                        "name": "TPA_SECRET",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "bombastic_api_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_id",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_secret",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_issuer_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "bombastic_api_url",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_client_id",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_client_secret",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_issuer_url",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "upload",
                                        "script": "echo \"running upload-sbom-to-trustification\"\n$(workspaces.source.path)/tssc/upload-sbom-to-trustification.sh\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "startTime": "2026-04-27T16:41:00Z"
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "PipelineRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "chains.tekton.dev/transparency": "https://rekor-server-tssc-tas.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/api/v1/log/entries?logIndex=181",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "73234944854",
                    "pipelinesascode.tekton.dev/controller-info": "{\"name\":\"default\",\"configmap\":\"pipelines-as-code\",\"secret\":\"pipelines-as-code-secret\", \"gRepo\": \"pipelines-as-code\"}",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/git-auth-secret": "pac-gitauth-adkenl",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-java-springboot-pdwrzgco-gitops-on-pull-request-tq46p",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-springboot-pdwrzgco-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pipeline": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/pipelines/gitops-pull-request-tssc.yaml",
                    "pipelinesascode.tekton.dev/pull-request": "2",
                    "pipelinesascode.tekton.dev/repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-pdwrzgco-gitops",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-springboot-pdwrzgco-gitops-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "a309efe7aed08b3d2ef6f8339a831945438d3a6d",
                    "pipelinesascode.tekton.dev/sha-title": "Promote to prod environment",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-pdwrzgco-gitops/commit/a309efe7aed08b3d2ef6f8339a831945438d3a6d",
                    "pipelinesascode.tekton.dev/source-branch": "promote-to-prod-1777308153924",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-pdwrzgco-gitops",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/task-0": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/git-clone.yaml",
                    "pipelinesascode.tekton.dev/task-1": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/gather-deploy-images.yaml",
                    "pipelinesascode.tekton.dev/task-2": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/verify-enterprise-contract.yaml",
                    "pipelinesascode.tekton.dev/task-3": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/gather-deploy-images.yaml",
                    "pipelinesascode.tekton.dev/task-4": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/download-sbom-from-url-in-attestation.yaml",
                    "pipelinesascode.tekton.dev/task-5": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/upload-sbom-to-trustification.yaml",
                    "pipelinesascode.tekton.dev/task-6": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/fetch-gitops-images.yaml",
                    "pipelinesascode.tekton.dev/task-7": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/verify-gitops-conforma.yaml",
                    "pipelinesascode.tekton.dev/task-8": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/download-gitops-sbom.yaml",
                    "pipelinesascode.tekton.dev/task-9": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/upload-gitops-sbom.yaml",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-java-springboot-pdwrzgco-gitops",
                    "results.tekton.dev/record": "tssc-app-ci/results/a68f8183-1882-48d6-958b-af8b1d3d0987/records/a68f8183-1882-48d6-958b-af8b1d3d0987",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-java-springboot-pdwrzgco-gitops\",\"commit\":\"a309efe7aed08b3d2ef6f8339a831945438d3a6d\",\"eventType\":\"pull_request\",\"pull_request-id\":2}",
                    "results.tekton.dev/result": "tssc-app-ci/results/a68f8183-1882-48d6-958b-af8b1d3d0987",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-27T16:42:43Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "results.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer"
                ],
                "generateName": "e2e-tests-java-springboot-pdwrzgco-gitops-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-java-springboot-pdwrzgco",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-java-springboot-pdwrzgco",
                    "backstage.io/kubernetes-id": "e2e-tests-java-springboot-pdwrzgco",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-java-springboot-pdwrzgco",
                    "pipelinesascode.tekton.dev/check-run-id": "73234944854",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-springboot-pdwrzgco-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "2",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-springboot-pdwrzgco-gitops-repository",
                    "pipelinesascode.tekton.dev/sha": "a309efe7aed08b3d2ef6f8339a831945438d3a6d",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-java-springboot-pdwrzgco-gitops",
                    "tekton.dev/pipeline": "e2e-tests-java-springboot-pdwrzgco-gitops-on-pull-request-tq46p"
                },
                "name": "e2e-tests-java-springboot-pdwrzgco-gitops-on-pull-request-tq46p",
                "namespace": "tssc-app-ci",
                "resourceVersion": "58438",
                "uid": "a68f8183-1882-48d6-958b-af8b1d3d0987"
            },
            "spec": {
                "params": [
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-pdwrzgco-gitops"
                    },
                    {
                        "name": "revision",
                        "value": "a309efe7aed08b3d2ef6f8339a831945438d3a6d"
                    },
                    {
                        "name": "target-branch",
                        "value": "main"
                    },
                    {
                        "name": "fail-if-trustification-not-configured",
                        "value": "false"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Gitops repo url",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Gitops repo revision",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "default": "main",
                            "description": "The target branch for the pull request",
                            "name": "target-branch",
                            "type": "string"
                        },
                        {
                            "default": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7",
                            "description": "Enterprise Contract policy to validate against",
                            "name": "ec-policy-configuration",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should EC violations cause the pipeline to fail?",
                            "name": "ec-strict",
                            "type": "string"
                        },
                        {
                            "default": "k8s://$(context.pipelineRun.namespace)/cosign-pub",
                            "description": "The public key that EC should use to verify signatures",
                            "name": "ec-public-key",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should the pipeline fail when there are SBOMs to upload but Trustification is not properly configured (i.e. the secret is missing or doesn't have all the required keys)?",
                            "name": "fail-if-trustification-not-configured",
                            "type": "string"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "$(params.git-url)"
                                },
                                {
                                    "name": "revision",
                                    "value": "$(params.revision)"
                                },
                                {
                                    "name": "fetchTags",
                                    "value": "true"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "$(params.revision)"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "get-images",
                            "params": [
                                {
                                    "name": "PUBLIC_KEY_URL",
                                    "value": "$(params.ec-public-key)"
                                },
                                {
                                    "name": "TARGET_BRANCH",
                                    "value": "$(params.target-branch)"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Extract images from deployment YAML to pass to Conforma for validation",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a valid k8s cosign reference, e.g. k8s://my-space/my-secret where my-secret contains the expected cosign.pub attribute.",
                                        "name": "PUBLIC_KEY_URL",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "If specified, will gather only the images that changed between the current revision and the target branch. Useful for pull requests. Note that the repository cloned on the source workspace must already contain the origin/$TARGET_BRANCH reference.\n",
                                        "name": "TARGET_BRANCH",
                                        "type": "string"
                                    },
                                    {
                                        "default": [
                                            "development",
                                            "stage",
                                            "prod"
                                        ],
                                        "description": "Gather images from the manifest files for the specified environments",
                                        "name": "ENVIRONMENTS",
                                        "type": "array"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Cosign base64 encoded public key fetched from secrets.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images with SBOMs to upload to Trustification \n",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images to be verified, in a format compatible with https://github.com/konflux-ci/build-definitions/tree/main/task/verify-enterprise-contract/0.1. When there are no images to verify, this is an empty string.\n",
                                        "name": "CONFORMA_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TARGET_BRANCH",
                                            "value": "$(params.TARGET_BRANCH)"
                                        },
                                        {
                                            "name": "PUBLIC_KEY_URL",
                                            "value": "$(params.PUBLIC_KEY_URL)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "pwd\nls -la\n# Sync scripts to the writable workspace\ncp -rf /work/tssc/ $(workspaces.source.path)/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e $(workspaces.source.path)/tssc/common.sh\necho \"Successfully patched $(workspaces.source.path)/tssc/common.sh\"\n\necho \"Parsing public key url\"\nCLEAN_URL=\"${PUBLIC_KEY_URL#k8s://}\"\nNS=\"${CLEAN_URL%/*}\"\nSECRET=\"${CLEAN_URL##*/}\"\nCOSIGN_PUBLIC_KEY=$(oc get secrets $SECRET -n $NS -o json | jq -r '.data.\"cosign.pub\"')\necho $COSIGN_PUBLIC_KEY \u003e $(results.COSIGN_PUBLIC_KEY.path)\n"
                                    },
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "get-images",
                                        "script": "echo \"running gather-images-to-upload-sbom\"\n$(workspaces.source.path)/tssc/gather-images-to-upload-sbom.sh\nmv ./results/gather-deploy-images ./results/sbom-images \ncat ./results/sbom-images/IMAGES_TO_VERIFY \u003e $(results.SBOM_IMAGES.path)\n\necho \"running gather-deploy-images\"\n$(workspaces.source.path)/tssc/gather-deploy-images.sh\ncat ./results/gather-deploy-images/IMAGES_TO_VERIFY \u003e $(results.CONFORMA_IMAGES.path)\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "verify-conforma",
                            "params": [
                                {
                                    "name": "STRICT",
                                    "value": "$(params.ec-strict)"
                                },
                                {
                                    "name": "POLICY_CONFIGURATION",
                                    "value": "$(params.ec-policy-configuration)"
                                },
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Verify the enterprise contract is met",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "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": "true",
                                        "description": "Fail the task if policy fails. Set to `\"false\"` to disable it.",
                                        "name": "STRICT",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Short summary of the policy evaluation for each image.",
                                        "name": "TEST_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STRICT",
                                            "value": "$(params.STRICT)"
                                        },
                                        {
                                            "name": "POLICY_CONFIGURATION",
                                            "value": "$(params.POLICY_CONFIGURATION)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "verify",
                                        "script": "echo \"running verify-conforma\"\n$(workspaces.source.path)/tssc/verify-conforma.sh\ncat ./results/verify-conforma/TEST_OUTPUT \u003e $(results.TEST_OUTPUT.path)\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.CONFORMA_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "download-sboms",
                            "params": [
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                },
                                {
                                    "name": "SBOM_IMAGES",
                                    "value": "$(tasks.get-images.results.SBOM_IMAGES)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Download SBOM from images",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Images to be considered for SBOM download.",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        },
                                        {
                                            "name": "IMAGES",
                                            "value": "$(params.SBOM_IMAGES)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "download",
                                        "script": "echo \"running download-sbom-from-url-in-attestation\"\n$(workspaces.source.path)/tssc/download-sbom-from-url-in-attestation.sh\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "upload-sboms",
                            "params": [
                                {
                                    "name": "TPA_SECRET",
                                    "value": "$(params.trustification-secret-name)"
                                }
                            ],
                            "runAfter": [
                                "download-sboms"
                            ],
                            "taskSpec": {
                                "description": "Upload SBOMs to Trustification",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "TPA Secret to obtain Trustification vars from.",
                                        "name": "TPA_SECRET",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "bombastic_api_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_id",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_secret",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_issuer_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "upload",
                                        "script": "echo \"running upload-sbom-to-trustification\"\n$(workspaces.source.path)/tssc/upload-sbom-to-trustification.sh\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "taskRunTemplate": {
                    "serviceAccountName": "pipeline"
                },
                "timeouts": {
                    "pipeline": "1h0m0s"
                },
                "workspaces": [
                    {
                        "name": "git-auth",
                        "secret": {
                            "secretName": "pac-gitauth-adkenl"
                        }
                    },
                    {
                        "name": "workspace",
                        "volumeClaimTemplate": {
                            "metadata": {
                                "creationTimestamp": null
                            },
                            "spec": {
                                "accessModes": [
                                    "ReadWriteOnce"
                                ],
                                "resources": {
                                    "requests": {
                                        "storage": "1Gi"
                                    }
                                }
                            },
                            "status": {}
                        }
                    }
                ]
            },
            "status": {
                "childReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java559de51db326b0597caae444fec1a848-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-sprin559de51db326b0597caae444fec1a848-get-images",
                        "pipelineTaskName": "get-images"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-559de51db326b0597caae444fec1a848-verify-conforma",
                        "pipelineTaskName": "verify-conforma",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:8dacdd0a0ab25f32b6a35bab31769cc88f2c2e6b\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-s559de51db326b0597caae444fec1a848-download-sboms",
                        "pipelineTaskName": "download-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:8dacdd0a0ab25f32b6a35bab31769cc88f2c2e6b\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-spr559de51db326b0597caae444fec1a848-upload-sboms",
                        "pipelineTaskName": "upload-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:8dacdd0a0ab25f32b6a35bab31769cc88f2c2e6b\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    }
                ],
                "completionTime": "2026-04-27T16:43:29Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-27T16:43:29Z",
                        "message": "Tasks Completed: 5 (Failed: 0, Cancelled 0), Skipped: 0",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Gitops repo url",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Gitops repo revision",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "default": "main",
                            "description": "The target branch for the pull request",
                            "name": "target-branch",
                            "type": "string"
                        },
                        {
                            "default": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7",
                            "description": "Enterprise Contract policy to validate against",
                            "name": "ec-policy-configuration",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should EC violations cause the pipeline to fail?",
                            "name": "ec-strict",
                            "type": "string"
                        },
                        {
                            "default": "k8s://$(context.pipelineRun.namespace)/cosign-pub",
                            "description": "The public key that EC should use to verify signatures",
                            "name": "ec-public-key",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should the pipeline fail when there are SBOMs to upload but Trustification is not properly configured (i.e. the secret is missing or doesn't have all the required keys)?",
                            "name": "fail-if-trustification-not-configured",
                            "type": "string"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-pdwrzgco-gitops"
                                },
                                {
                                    "name": "revision",
                                    "value": "a309efe7aed08b3d2ef6f8339a831945438d3a6d"
                                },
                                {
                                    "name": "fetchTags",
                                    "value": "true"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "a309efe7aed08b3d2ef6f8339a831945438d3a6d"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "get-images",
                            "params": [
                                {
                                    "name": "PUBLIC_KEY_URL",
                                    "value": "k8s://tssc-app-ci/cosign-pub"
                                },
                                {
                                    "name": "TARGET_BRANCH",
                                    "value": "main"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Extract images from deployment YAML to pass to Conforma for validation",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a valid k8s cosign reference, e.g. k8s://my-space/my-secret where my-secret contains the expected cosign.pub attribute.",
                                        "name": "PUBLIC_KEY_URL",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "If specified, will gather only the images that changed between the current revision and the target branch. Useful for pull requests. Note that the repository cloned on the source workspace must already contain the origin/$TARGET_BRANCH reference.\n",
                                        "name": "TARGET_BRANCH",
                                        "type": "string"
                                    },
                                    {
                                        "default": [
                                            "development",
                                            "stage",
                                            "prod"
                                        ],
                                        "description": "Gather images from the manifest files for the specified environments",
                                        "name": "ENVIRONMENTS",
                                        "type": "array"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Cosign base64 encoded public key fetched from secrets.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images with SBOMs to upload to Trustification \n",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images to be verified, in a format compatible with https://github.com/konflux-ci/build-definitions/tree/main/task/verify-enterprise-contract/0.1. When there are no images to verify, this is an empty string.\n",
                                        "name": "CONFORMA_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TARGET_BRANCH",
                                            "value": "$(params.TARGET_BRANCH)"
                                        },
                                        {
                                            "name": "PUBLIC_KEY_URL",
                                            "value": "$(params.PUBLIC_KEY_URL)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TARGET_BRANCH",
                                                "value": "$(params.TARGET_BRANCH)"
                                            },
                                            {
                                                "name": "PUBLIC_KEY_URL",
                                                "value": "$(params.PUBLIC_KEY_URL)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "pwd\nls -la\n# Sync scripts to the writable workspace\ncp -rf /work/tssc/ $(workspaces.source.path)/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e $(workspaces.source.path)/tssc/common.sh\necho \"Successfully patched $(workspaces.source.path)/tssc/common.sh\"\n\necho \"Parsing public key url\"\nCLEAN_URL=\"${PUBLIC_KEY_URL#k8s://}\"\nNS=\"${CLEAN_URL%/*}\"\nSECRET=\"${CLEAN_URL##*/}\"\nCOSIGN_PUBLIC_KEY=$(oc get secrets $SECRET -n $NS -o json | jq -r '.data.\"cosign.pub\"')\necho $COSIGN_PUBLIC_KEY \u003e $(results.COSIGN_PUBLIC_KEY.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TARGET_BRANCH",
                                                "value": "$(params.TARGET_BRANCH)"
                                            },
                                            {
                                                "name": "PUBLIC_KEY_URL",
                                                "value": "$(params.PUBLIC_KEY_URL)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "get-images",
                                        "script": "echo \"running gather-images-to-upload-sbom\"\n$(workspaces.source.path)/tssc/gather-images-to-upload-sbom.sh\nmv ./results/gather-deploy-images ./results/sbom-images \ncat ./results/sbom-images/IMAGES_TO_VERIFY \u003e $(results.SBOM_IMAGES.path)\n\necho \"running gather-deploy-images\"\n$(workspaces.source.path)/tssc/gather-deploy-images.sh\ncat ./results/gather-deploy-images/IMAGES_TO_VERIFY \u003e $(results.CONFORMA_IMAGES.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "verify-conforma",
                            "params": [
                                {
                                    "name": "STRICT",
                                    "value": "true"
                                },
                                {
                                    "name": "POLICY_CONFIGURATION",
                                    "value": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7"
                                },
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Verify the enterprise contract is met",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "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": "true",
                                        "description": "Fail the task if policy fails. Set to `\"false\"` to disable it.",
                                        "name": "STRICT",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Short summary of the policy evaluation for each image.",
                                        "name": "TEST_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STRICT",
                                            "value": "$(params.STRICT)"
                                        },
                                        {
                                            "name": "POLICY_CONFIGURATION",
                                            "value": "$(params.POLICY_CONFIGURATION)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STRICT",
                                                "value": "$(params.STRICT)"
                                            },
                                            {
                                                "name": "POLICY_CONFIGURATION",
                                                "value": "$(params.POLICY_CONFIGURATION)"
                                            },
                                            {
                                                "name": "REKOR_HOST",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rekor_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TUF_MIRROR",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "tuf_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "value": "$(params.COSIGN_PUBLIC_KEY)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "verify",
                                        "script": "echo \"running verify-conforma\"\n$(workspaces.source.path)/tssc/verify-conforma.sh\ncat ./results/verify-conforma/TEST_OUTPUT \u003e $(results.TEST_OUTPUT.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.CONFORMA_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "download-sboms",
                            "params": [
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                },
                                {
                                    "name": "SBOM_IMAGES",
                                    "value": "$(tasks.get-images.results.SBOM_IMAGES)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Download SBOM from images",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Images to be considered for SBOM download.",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        },
                                        {
                                            "name": "IMAGES",
                                            "value": "$(params.SBOM_IMAGES)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "value": "$(params.COSIGN_PUBLIC_KEY)"
                                            },
                                            {
                                                "name": "IMAGES",
                                                "value": "$(params.SBOM_IMAGES)"
                                            },
                                            {
                                                "name": "REKOR_HOST",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rekor_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TUF_MIRROR",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "tuf_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "download",
                                        "script": "echo \"running download-sbom-from-url-in-attestation\"\n$(workspaces.source.path)/tssc/download-sbom-from-url-in-attestation.sh\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "upload-sboms",
                            "params": [
                                {
                                    "name": "TPA_SECRET",
                                    "value": "tpa-secret"
                                }
                            ],
                            "runAfter": [
                                "download-sboms"
                            ],
                            "taskSpec": {
                                "description": "Upload SBOMs to Trustification",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "TPA Secret to obtain Trustification vars from.",
                                        "name": "TPA_SECRET",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "bombastic_api_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_id",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_secret",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_issuer_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "bombastic_api_url",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_client_id",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_client_secret",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_issuer_url",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "upload",
                                        "script": "echo \"running upload-sbom-to-trustification\"\n$(workspaces.source.path)/tssc/upload-sbom-to-trustification.sh\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "startTime": "2026-04-27T16:42:44Z"
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "PipelineRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "chains.tekton.dev/transparency": "https://rekor-server-tssc-tas.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/api/v1/log/entries?logIndex=102",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "73233696447",
                    "pipelinesascode.tekton.dev/controller-info": "{\"name\":\"default\",\"configmap\":\"pipelines-as-code\",\"secret\":\"pipelines-as-code-secret\", \"gRepo\": \"pipelines-as-code\"}",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/git-auth-secret": "pac-gitauth-yjmhby",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-java-springboot-pdwrzgco-on-pull-request-qs7m7",
                    "pipelinesascode.tekton.dev/max-keep-runs": "2",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-springboot-pdwrzgco-on-pull-request",
                    "pipelinesascode.tekton.dev/pipeline": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/pipelines/docker-build-tssc.yaml",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-pdwrzgco",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-springboot-pdwrzgco-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "3e5f41b03eb169fd9913e4cbca5dc2b69039037f",
                    "pipelinesascode.tekton.dev/sha-title": "Test PR from TSSC e2e test",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-pdwrzgco/commit/3e5f41b03eb169fd9913e4cbca5dc2b69039037f",
                    "pipelinesascode.tekton.dev/source-branch": "test-branch-1777307699955",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-pdwrzgco",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/task-0": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/init.yaml",
                    "pipelinesascode.tekton.dev/task-1": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/git-clone.yaml",
                    "pipelinesascode.tekton.dev/task-10": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/deploy-workload.yaml",
                    "pipelinesascode.tekton.dev/task-11": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/scan-workload.yaml",
                    "pipelinesascode.tekton.dev/task-12": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/summarize-workload.yaml",
                    "pipelinesascode.tekton.dev/task-13": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/show-workload-sbom.yaml",
                    "pipelinesascode.tekton.dev/task-14": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/deploy-workload-check.yaml",
                    "pipelinesascode.tekton.dev/task-2": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/buildah-rhtap.yaml",
                    "pipelinesascode.tekton.dev/task-3": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-image-check.yaml",
                    "pipelinesascode.tekton.dev/task-4": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-image-scan.yaml",
                    "pipelinesascode.tekton.dev/task-5": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-deploy-check.yaml",
                    "pipelinesascode.tekton.dev/task-6": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/update-deployment.yaml",
                    "pipelinesascode.tekton.dev/task-7": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/show-sbom-rhdh.yaml",
                    "pipelinesascode.tekton.dev/task-8": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/summary.yaml",
                    "pipelinesascode.tekton.dev/task-9": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/build-workload.yaml",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-java-springboot-pdwrzgco",
                    "results.tekton.dev/record": "tssc-app-ci/results/abe41fc0-5e3d-49fe-944c-aa01876a4cd3/records/abe41fc0-5e3d-49fe-944c-aa01876a4cd3",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-java-springboot-pdwrzgco\",\"commit\":\"3e5f41b03eb169fd9913e4cbca5dc2b69039037f\",\"eventType\":\"pull_request\",\"pull_request-id\":1}",
                    "results.tekton.dev/result": "tssc-app-ci/results/abe41fc0-5e3d-49fe-944c-aa01876a4cd3",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-27T16:35:11Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "results.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-java-springboot-pdwrzgco-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-java-springboot-pdwrzgco",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-java-springboot-pdwrzgco",
                    "backstage.io/kubernetes-id": "e2e-tests-java-springboot-pdwrzgco",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-java-springboot-pdwrzgco",
                    "pipelinesascode.tekton.dev/check-run-id": "73233696447",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-springboot-pdwrzgco-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-springboot-pdwrzgco-repository",
                    "pipelinesascode.tekton.dev/sha": "3e5f41b03eb169fd9913e4cbca5dc2b69039037f",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-java-springboot-pdwrzgco",
                    "tekton.dev/pipeline": "e2e-tests-java-springboot-pdwrzgco-on-pull-request-qs7m7"
                },
                "name": "e2e-tests-java-springboot-pdwrzgco-on-pull-request-qs7m7",
                "namespace": "tssc-app-ci",
                "resourceVersion": "49321",
                "uid": "abe41fc0-5e3d-49fe-944c-aa01876a4cd3"
            },
            "spec": {
                "params": [
                    {
                        "name": "dockerfile",
                        "value": "docker/Dockerfile"
                    },
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-pdwrzgco"
                    },
                    {
                        "name": "image-expires-after",
                        "value": "5d"
                    },
                    {
                        "name": "output-image",
                        "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:on-pr-3e5f41b03eb169fd9913e4cbca5dc2b69039037f"
                    },
                    {
                        "name": "path-context",
                        "value": "."
                    },
                    {
                        "name": "revision",
                        "value": "3e5f41b03eb169fd9913e4cbca5dc2b69039037f"
                    },
                    {
                        "name": "event-type",
                        "value": "pull_request"
                    },
                    {
                        "name": "gitops-auth-secret-name",
                        "value": "gitops-auth-secret"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Source Repository URL",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Revision of the Source Repository",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "description": "Fully Qualified Output Image",
                            "name": "output-image",
                            "type": "string"
                        },
                        {
                            "default": ".",
                            "description": "Path to the source code of an application's component from where to build image.",
                            "name": "path-context",
                            "type": "string"
                        },
                        {
                            "default": "Dockerfile",
                            "description": "Path to the Dockerfile inside the context specified by parameter path-context",
                            "name": "dockerfile",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Force rebuild image",
                            "name": "rebuild",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Image tag expiration time, time values could be something like 1h, 2d, 3w for hours, days, and weeks, respectively.",
                            "name": "image-expires-after",
                            "type": "string"
                        },
                        {
                            "default": "rox-api-token",
                            "name": "stackrox-secret",
                            "type": "string"
                        },
                        {
                            "default": "gitops-auth-secret",
                            "description": "Secret name to enable this pipeline to update the gitops repo with the new image. ",
                            "name": "gitops-auth-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "cosign-pub",
                            "description": "Secret name to enable verify cosign signature. ",
                            "name": "cosign-public-key-secret",
                            "type": "string"
                        },
                        {
                            "default": "push",
                            "description": "Event that triggered the pipeline run, e.g. push, pull_request",
                            "name": "event-type",
                            "type": "string"
                        },
                        {
                            "default": [],
                            "description": "Array of --build-arg values (\"arg=value\" strings) for buildah",
                            "name": "build-args",
                            "type": "array"
                        },
                        {
                            "default": "",
                            "description": "Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                            "name": "build-args-file",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Digest of the image just built",
                            "name": "IMAGE_DIGEST",
                            "value": "$(tasks.build.results.IMAGE_DIGEST)"
                        },
                        {
                            "description": "Image repository and tag where the built image was pushed",
                            "name": "IMAGE_URL",
                            "value": "$(tasks.build.results.IMAGE_URL)"
                        },
                        {
                            "description": "Digests of the base images used for build",
                            "name": "BASE_IMAGES_DIGESTS",
                            "value": "$(tasks.build.results.BASE_IMAGES_DIGESTS)"
                        },
                        {
                            "description": "Link to the SBOM layer pushed to the registry",
                            "name": "SBOM_BLOB_URL",
                            "value": "$(tasks.build.results.SBOM_BLOB_URL)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_URL",
                            "value": "$(tasks.clone-repository.results.url)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_COMMIT",
                            "value": "$(tasks.clone-repository.results.commit)"
                        },
                        {
                            "description": "",
                            "name": "ACS_SCAN_OUTPUT",
                            "value": "$(tasks.scan.results.SCAN_OUTPUT)"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "$(params.git-url)"
                                },
                                {
                                    "name": "revision",
                                    "value": "$(params.revision)"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "$(params.revision)"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "build",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "cosign-public-secret-name",
                                    "value": "$(params.cosign-public-key-secret)"
                                },
                                {
                                    "name": "tpa_secret_name",
                                    "value": "$(params.trustification-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "DOCKERFILE",
                                    "value": "$(params.dockerfile)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                },
                                {
                                    "name": "BUILD_ARGS",
                                    "value": [
                                        "$(params.build-args[*])"
                                    ]
                                },
                                {
                                    "name": "BUILD_ARGS_FILE",
                                    "value": "$(params.build-args-file)"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Builds source code into a container image and pushes the image into container registry using buildah tool.\nIn addition it generates a SBOM file, injects the SBOM file into final container image and pushes the SBOM file as separate image using cosign tool.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "build-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "./Dockerfile",
                                        "description": "Path to the Dockerfile to build.",
                                        "name": "DOCKERFILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry)",
                                        "name": "TLSVERIFY",
                                        "type": "string"
                                    },
                                    {
                                        "default": [],
                                        "description": "Array of --build-arg values (\"arg=value\" strings)",
                                        "name": "BUILD_ARGS",
                                        "type": "array"
                                    },
                                    {
                                        "default": "",
                                        "description": "Path to a file with build arguments, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                                        "name": "BUILD_ARGS_FILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Digest of the image just built",
                                        "name": "IMAGE_DIGEST",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Image repository and tag where the built image was pushed",
                                        "name": "IMAGE_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Digests of the base images used for build",
                                        "name": "BASE_IMAGES_DIGESTS",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Link to the SBOM layer pushed to the registry as part of an OCI artifact.",
                                        "name": "SBOM_BLOB_URL",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "DOCKERFILE",
                                            "value": "$(params.DOCKERFILE)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "TLSVERIFY",
                                            "value": "$(params.TLSVERIFY)"
                                        },
                                        {
                                            "name": "BUILD_ARGS_FILE",
                                            "value": "$(params.BUILD_ARGS_FILE)"
                                        },
                                        {
                                            "name": "_BUILDAH_STARTED_IN_USERNS"
                                        },
                                        {
                                            "name": "BUILDAH_ISOLATION",
                                            "value": "chroot"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_PASSWORD",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_KEY",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.tpa_secret_name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "cosign.pub",
                                                    "name": "$(params.cosign-public-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "# Sync scripts to the writable workspace\ncp -rf /work/tssc/ /workspace/source/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e /workspace/source/tssc/common.sh\necho \"Successfully patched /workspace/source/tssc/common.sh\"\necho \"running init\"\npwd\nls -la\n/workspace/source/tssc/init.sh\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    },
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "build",
                                        "script": "echo \"running buildah-tssc\"\n/workspace/source/tssc/buildah-tssc.sh\ncat ./results/buildah-tssc/BASE_IMAGES_DIGESTS \u003e $(results.BASE_IMAGES_DIGESTS.path)\ncat ./results/buildah-tssc/IMAGE_DIGEST \u003e $(results.IMAGE_DIGEST.path)\ncat ./results/buildah-tssc/IMAGE_URL \u003e $(results.IMAGE_URL.path)\ncat ./results/buildah-tssc/SBOM_BLOB_URL \u003e $(results.SBOM_BLOB_URL.path)\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deploy",
                            "params": [
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Deploy built image to development environment.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy",
                                        "script": "echo \"running update-deployment\"\n/workspace/source/tssc/update-deployment.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(params.event-type)",
                                    "operator": "notin",
                                    "values": [
                                        "pull_request",
                                        "Merge Request"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deployment-check",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload-check",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy-check",
                                        "script": "echo \"running acs-deploy-check\"\n/workspace/source/tssc/acs-deploy-check.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(params.event-type)",
                                    "operator": "in",
                                    "values": [
                                        "push",
                                        "Push"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "scan",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "scan-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "scan",
                                        "script": "echo \"running acs-image-check\"\n/workspace/source/tssc/acs-image-check.sh\necho \"running acs-image-scan\"\n/workspace/source/tssc/acs-image-scan.sh\ncat ./results/acs-image-scan/SCAN_OUTPUT \u003e $(results.SCAN_OUTPUT.path)\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "show-sbom",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Show SBOM report for the built image.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "show-workload-sbom",
                                        "task.output.location": "results",
                                        "task.results.format": "application/text",
                                        "task.results.key": "LINK_TO_SBOM",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Placeholder result meant to make RHDH identify this task as the producer of the SBOM logs.",
                                        "name": "LINK_TO_SBOM",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "show-sbom",
                                        "script": "echo \"running show-sbom-rhdh\"\n/workspace/source/tssc/show-sbom-rhdh.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "summarize",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Summarize all the steps in the build pipeline.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "summarize-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "summary",
                                        "script": "echo \"running summary\"\n/workspace/source/tssc/summary.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "taskRunTemplate": {
                    "serviceAccountName": "pipeline"
                },
                "timeouts": {
                    "pipeline": "1h0m0s"
                },
                "workspaces": [
                    {
                        "name": "git-auth",
                        "secret": {
                            "secretName": "pac-gitauth-yjmhby"
                        }
                    },
                    {
                        "name": "workspace",
                        "volumeClaimTemplate": {
                            "metadata": {
                                "creationTimestamp": null
                            },
                            "spec": {
                                "accessModes": [
                                    "ReadWriteOnce"
                                ],
                                "resources": {
                                    "requests": {
                                        "storage": "1Gi"
                                    }
                                }
                            },
                            "status": {}
                        }
                    }
                ]
            },
            "status": {
                "childReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java17183adbd4aa766f1e44780697a9ab6d-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-springboot-pdwrzgco-on-pull-request-qs7m7-build",
                        "pipelineTaskName": "build"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-springboot-pdwrzgco-on-pull-request-qs7m7-scan",
                        "pipelineTaskName": "scan"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-spring17183adbd4aa766f1e44780697a9ab6d-show-sbom",
                        "pipelineTaskName": "show-sbom"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-spring17183adbd4aa766f1e44780697a9ab6d-summarize",
                        "pipelineTaskName": "summarize"
                    }
                ],
                "completionTime": "2026-04-27T16:37:31Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-27T16:37:31Z",
                        "message": "Tasks Completed: 5 (Failed: 0, Cancelled 0), Skipped: 2",
                        "reason": "Completed",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Source Repository URL",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Revision of the Source Repository",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "description": "Fully Qualified Output Image",
                            "name": "output-image",
                            "type": "string"
                        },
                        {
                            "default": ".",
                            "description": "Path to the source code of an application's component from where to build image.",
                            "name": "path-context",
                            "type": "string"
                        },
                        {
                            "default": "Dockerfile",
                            "description": "Path to the Dockerfile inside the context specified by parameter path-context",
                            "name": "dockerfile",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Force rebuild image",
                            "name": "rebuild",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Image tag expiration time, time values could be something like 1h, 2d, 3w for hours, days, and weeks, respectively.",
                            "name": "image-expires-after",
                            "type": "string"
                        },
                        {
                            "default": "rox-api-token",
                            "name": "stackrox-secret",
                            "type": "string"
                        },
                        {
                            "default": "gitops-auth-secret",
                            "description": "Secret name to enable this pipeline to update the gitops repo with the new image. ",
                            "name": "gitops-auth-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "cosign-pub",
                            "description": "Secret name to enable verify cosign signature. ",
                            "name": "cosign-public-key-secret",
                            "type": "string"
                        },
                        {
                            "default": "push",
                            "description": "Event that triggered the pipeline run, e.g. push, pull_request",
                            "name": "event-type",
                            "type": "string"
                        },
                        {
                            "default": [],
                            "description": "Array of --build-arg values (\"arg=value\" strings) for buildah",
                            "name": "build-args",
                            "type": "array"
                        },
                        {
                            "default": "",
                            "description": "Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                            "name": "build-args-file",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Digest of the image just built",
                            "name": "IMAGE_DIGEST",
                            "value": "$(tasks.build.results.IMAGE_DIGEST)"
                        },
                        {
                            "description": "Image repository and tag where the built image was pushed",
                            "name": "IMAGE_URL",
                            "value": "$(tasks.build.results.IMAGE_URL)"
                        },
                        {
                            "description": "Digests of the base images used for build",
                            "name": "BASE_IMAGES_DIGESTS",
                            "value": "$(tasks.build.results.BASE_IMAGES_DIGESTS)"
                        },
                        {
                            "description": "Link to the SBOM layer pushed to the registry",
                            "name": "SBOM_BLOB_URL",
                            "value": "$(tasks.build.results.SBOM_BLOB_URL)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_URL",
                            "value": "$(tasks.clone-repository.results.url)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_COMMIT",
                            "value": "$(tasks.clone-repository.results.commit)"
                        },
                        {
                            "description": "",
                            "name": "ACS_SCAN_OUTPUT",
                            "value": "$(tasks.scan.results.SCAN_OUTPUT)"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-pdwrzgco"
                                },
                                {
                                    "name": "revision",
                                    "value": "3e5f41b03eb169fd9913e4cbca5dc2b69039037f"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "3e5f41b03eb169fd9913e4cbca5dc2b69039037f"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "build",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "cosign-public-secret-name",
                                    "value": "cosign-pub"
                                },
                                {
                                    "name": "tpa_secret_name",
                                    "value": "tpa-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:on-pr-3e5f41b03eb169fd9913e4cbca5dc2b69039037f"
                                },
                                {
                                    "name": "DOCKERFILE",
                                    "value": "docker/Dockerfile"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                },
                                {
                                    "name": "BUILD_ARGS",
                                    "value": []
                                },
                                {
                                    "name": "BUILD_ARGS_FILE",
                                    "value": ""
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Builds source code into a container image and pushes the image into container registry using buildah tool.\nIn addition it generates a SBOM file, injects the SBOM file into final container image and pushes the SBOM file as separate image using cosign tool.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "build-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "./Dockerfile",
                                        "description": "Path to the Dockerfile to build.",
                                        "name": "DOCKERFILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry)",
                                        "name": "TLSVERIFY",
                                        "type": "string"
                                    },
                                    {
                                        "default": [],
                                        "description": "Array of --build-arg values (\"arg=value\" strings)",
                                        "name": "BUILD_ARGS",
                                        "type": "array"
                                    },
                                    {
                                        "default": "",
                                        "description": "Path to a file with build arguments, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                                        "name": "BUILD_ARGS_FILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Digest of the image just built",
                                        "name": "IMAGE_DIGEST",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Image repository and tag where the built image was pushed",
                                        "name": "IMAGE_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Digests of the base images used for build",
                                        "name": "BASE_IMAGES_DIGESTS",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Link to the SBOM layer pushed to the registry as part of an OCI artifact.",
                                        "name": "SBOM_BLOB_URL",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "DOCKERFILE",
                                            "value": "$(params.DOCKERFILE)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "TLSVERIFY",
                                            "value": "$(params.TLSVERIFY)"
                                        },
                                        {
                                            "name": "BUILD_ARGS_FILE",
                                            "value": "$(params.BUILD_ARGS_FILE)"
                                        },
                                        {
                                            "name": "_BUILDAH_STARTED_IN_USERNS"
                                        },
                                        {
                                            "name": "BUILDAH_ISOLATION",
                                            "value": "chroot"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_PASSWORD",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_KEY",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.tpa_secret_name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "cosign.pub",
                                                    "name": "$(params.cosign-public-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "DOCKERFILE",
                                                "value": "$(params.DOCKERFILE)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "TLSVERIFY",
                                                "value": "$(params.TLSVERIFY)"
                                            },
                                            {
                                                "name": "BUILD_ARGS_FILE",
                                                "value": "$(params.BUILD_ARGS_FILE)"
                                            },
                                            {
                                                "name": "_BUILDAH_STARTED_IN_USERNS"
                                            },
                                            {
                                                "name": "BUILDAH_ISOLATION",
                                                "value": "chroot"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_PASSWORD",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_KEY",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.tpa_secret_name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "cosign.pub",
                                                        "name": "$(params.cosign-public-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "# Sync scripts to the writable workspace\ncp -rf /work/tssc/ /workspace/source/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e /workspace/source/tssc/common.sh\necho \"Successfully patched /workspace/source/tssc/common.sh\"\necho \"running init\"\npwd\nls -la\n/workspace/source/tssc/init.sh\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    },
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "DOCKERFILE",
                                                "value": "$(params.DOCKERFILE)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "TLSVERIFY",
                                                "value": "$(params.TLSVERIFY)"
                                            },
                                            {
                                                "name": "BUILD_ARGS_FILE",
                                                "value": "$(params.BUILD_ARGS_FILE)"
                                            },
                                            {
                                                "name": "_BUILDAH_STARTED_IN_USERNS"
                                            },
                                            {
                                                "name": "BUILDAH_ISOLATION",
                                                "value": "chroot"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_PASSWORD",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_KEY",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.tpa_secret_name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "cosign.pub",
                                                        "name": "$(params.cosign-public-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "build",
                                        "script": "echo \"running buildah-tssc\"\n/workspace/source/tssc/buildah-tssc.sh\ncat ./results/buildah-tssc/BASE_IMAGES_DIGESTS \u003e $(results.BASE_IMAGES_DIGESTS.path)\ncat ./results/buildah-tssc/IMAGE_DIGEST \u003e $(results.IMAGE_DIGEST.path)\ncat ./results/buildah-tssc/IMAGE_URL \u003e $(results.IMAGE_URL.path)\ncat ./results/buildah-tssc/SBOM_BLOB_URL \u003e $(results.SBOM_BLOB_URL.path)\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deploy",
                            "params": [
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:on-pr-3e5f41b03eb169fd9913e4cbca5dc2b69039037f"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Deploy built image to development environment.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy",
                                        "script": "echo \"running update-deployment\"\n/workspace/source/tssc/update-deployment.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "pull_request",
                                    "operator": "notin",
                                    "values": [
                                        "pull_request",
                                        "Merge Request"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deployment-check",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:on-pr-3e5f41b03eb169fd9913e4cbca5dc2b69039037f"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload-check",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy-check",
                                        "script": "echo \"running acs-deploy-check\"\n/workspace/source/tssc/acs-deploy-check.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "pull_request",
                                    "operator": "in",
                                    "values": [
                                        "push",
                                        "Push"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "scan",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:on-pr-3e5f41b03eb169fd9913e4cbca5dc2b69039037f"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "scan-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "scan",
                                        "script": "echo \"running acs-image-check\"\n/workspace/source/tssc/acs-image-check.sh\necho \"running acs-image-scan\"\n/workspace/source/tssc/acs-image-scan.sh\ncat ./results/acs-image-scan/SCAN_OUTPUT \u003e $(results.SCAN_OUTPUT.path)\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "show-sbom",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:on-pr-3e5f41b03eb169fd9913e4cbca5dc2b69039037f"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Show SBOM report for the built image.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "show-workload-sbom",
                                        "task.output.location": "results",
                                        "task.results.format": "application/text",
                                        "task.results.key": "LINK_TO_SBOM",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Placeholder result meant to make RHDH identify this task as the producer of the SBOM logs.",
                                        "name": "LINK_TO_SBOM",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "show-sbom",
                                        "script": "echo \"running show-sbom-rhdh\"\n/workspace/source/tssc/show-sbom-rhdh.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "summarize",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:on-pr-3e5f41b03eb169fd9913e4cbca5dc2b69039037f"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Summarize all the steps in the build pipeline.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "summarize-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "summary",
                                        "script": "echo \"running summary\"\n/workspace/source/tssc/summary.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "results": [
                    {
                        "name": "IMAGE_DIGEST",
                        "value": "sha256:64db1c288aee9c7eafa037e4212fdf0bc728009ee43c6d2deedc80658266811e"
                    },
                    {
                        "name": "IMAGE_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:on-pr-3e5f41b03eb169fd9913e4cbca5dc2b69039037f"
                    },
                    {
                        "name": "BASE_IMAGES_DIGESTS",
                        "value": "registry.access.redhat.com/ubi9/openjdk-21:latest@sha256:253d78f68108c9188e810c6d534071dc16b437ddae185541c4292e2236c09d0a\nregistry.access.redhat.com/ubi9/openjdk-21-runtime:latest@sha256:4f77a4aef51bb959a7af413b702d2b5db9b530c9bc09d10758947d5c73b7bafc\n"
                    },
                    {
                        "name": "SBOM_BLOB_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco@sha256:3a5a5b5d17cef39af0b11e073c2b43bcad65307098d732ef404d8e04b586a01a"
                    },
                    {
                        "name": "CHAINS-GIT_URL",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-pdwrzgco"
                    },
                    {
                        "name": "CHAINS-GIT_COMMIT",
                        "value": "3e5f41b03eb169fd9913e4cbca5dc2b69039037f"
                    },
                    {
                        "name": "ACS_SCAN_OUTPUT",
                        "value": "{\"vulnerabilities\":{\"critical\":0,\"high\":12,\"medium\":80,\"low\":58}}\n"
                    }
                ],
                "skippedTasks": [
                    {
                        "name": "deploy",
                        "reason": "When Expressions evaluated to false",
                        "whenExpressions": [
                            {
                                "input": "pull_request",
                                "operator": "notin",
                                "values": [
                                    "pull_request",
                                    "Merge Request"
                                ]
                            }
                        ]
                    },
                    {
                        "name": "deployment-check",
                        "reason": "When Expressions evaluated to false",
                        "whenExpressions": [
                            {
                                "input": "pull_request",
                                "operator": "in",
                                "values": [
                                    "push",
                                    "Push"
                                ]
                            }
                        ]
                    }
                ],
                "startTime": "2026-04-27T16:35:12Z"
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "PipelineRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "chains.tekton.dev/transparency": "https://rekor-server-tssc-tas.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/api/v1/log/entries?logIndex=97",
                    "pipelinesascode.tekton.dev/branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/check-run-id": "73233667603",
                    "pipelinesascode.tekton.dev/controller-info": "{\"name\":\"default\",\"configmap\":\"pipelines-as-code\",\"secret\":\"pipelines-as-code-secret\", \"gRepo\": \"pipelines-as-code\"}",
                    "pipelinesascode.tekton.dev/event-type": "push",
                    "pipelinesascode.tekton.dev/git-auth-secret": "pac-gitauth-kowfvk",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-java-springboot-pdwrzgco-on-push-f7xkm",
                    "pipelinesascode.tekton.dev/max-keep-runs": "2",
                    "pipelinesascode.tekton.dev/on-event": "[push]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-springboot-pdwrzgco-on-push",
                    "pipelinesascode.tekton.dev/pipeline": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/pipelines/docker-build-tssc.yaml",
                    "pipelinesascode.tekton.dev/repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-pdwrzgco",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-springboot-pdwrzgco-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-qe-ci[bot]",
                    "pipelinesascode.tekton.dev/sha": "3a36d4e831626aa3619b91c2725050fb10881f4b",
                    "pipelinesascode.tekton.dev/sha-title": "initial commit",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-pdwrzgco/commit/3a36d4e831626aa3619b91c2725050fb10881f4b",
                    "pipelinesascode.tekton.dev/source-branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-pdwrzgco",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/task-0": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/init.yaml",
                    "pipelinesascode.tekton.dev/task-1": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/git-clone.yaml",
                    "pipelinesascode.tekton.dev/task-10": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/deploy-workload.yaml",
                    "pipelinesascode.tekton.dev/task-11": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/scan-workload.yaml",
                    "pipelinesascode.tekton.dev/task-12": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/summarize-workload.yaml",
                    "pipelinesascode.tekton.dev/task-13": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/show-workload-sbom.yaml",
                    "pipelinesascode.tekton.dev/task-14": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/deploy-workload-check.yaml",
                    "pipelinesascode.tekton.dev/task-2": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/buildah-rhtap.yaml",
                    "pipelinesascode.tekton.dev/task-3": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-image-check.yaml",
                    "pipelinesascode.tekton.dev/task-4": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-image-scan.yaml",
                    "pipelinesascode.tekton.dev/task-5": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-deploy-check.yaml",
                    "pipelinesascode.tekton.dev/task-6": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/update-deployment.yaml",
                    "pipelinesascode.tekton.dev/task-7": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/show-sbom-rhdh.yaml",
                    "pipelinesascode.tekton.dev/task-8": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/summary.yaml",
                    "pipelinesascode.tekton.dev/task-9": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/build-workload.yaml",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-java-springboot-pdwrzgco",
                    "results.tekton.dev/record": "tssc-app-ci/results/7466227d-32c3-444f-9953-896311f6f82c/records/7466227d-32c3-444f-9953-896311f6f82c",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-java-springboot-pdwrzgco\",\"commit\":\"3a36d4e831626aa3619b91c2725050fb10881f4b\",\"eventType\":\"push\"}",
                    "results.tekton.dev/result": "tssc-app-ci/results/7466227d-32c3-444f-9953-896311f6f82c",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-27T16:35:01Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "results.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-java-springboot-pdwrzgco-on-push-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-java-springboot-pdwrzgco",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-java-springboot-pdwrzgco",
                    "backstage.io/kubernetes-id": "e2e-tests-java-springboot-pdwrzgco",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-java-springboot-pdwrzgco",
                    "pipelinesascode.tekton.dev/check-run-id": "73233667603",
                    "pipelinesascode.tekton.dev/event-type": "push",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-springboot-pdwrzgco-on-push",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-springboot-pdwrzgco-repository",
                    "pipelinesascode.tekton.dev/sha": "3a36d4e831626aa3619b91c2725050fb10881f4b",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-java-springboot-pdwrzgco",
                    "tekton.dev/pipeline": "e2e-tests-java-springboot-pdwrzgco-on-push-f7xkm"
                },
                "name": "e2e-tests-java-springboot-pdwrzgco-on-push-f7xkm",
                "namespace": "tssc-app-ci",
                "resourceVersion": "48952",
                "uid": "7466227d-32c3-444f-9953-896311f6f82c"
            },
            "spec": {
                "params": [
                    {
                        "name": "dockerfile",
                        "value": "docker/Dockerfile"
                    },
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-pdwrzgco"
                    },
                    {
                        "name": "image-expires-after",
                        "value": "5d"
                    },
                    {
                        "name": "output-image",
                        "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:3a36d4e831626aa3619b91c2725050fb10881f4b"
                    },
                    {
                        "name": "path-context",
                        "value": "."
                    },
                    {
                        "name": "revision",
                        "value": "3a36d4e831626aa3619b91c2725050fb10881f4b"
                    },
                    {
                        "name": "event-type",
                        "value": "push"
                    },
                    {
                        "name": "gitops-auth-secret-name",
                        "value": "gitops-auth-secret"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Source Repository URL",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Revision of the Source Repository",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "description": "Fully Qualified Output Image",
                            "name": "output-image",
                            "type": "string"
                        },
                        {
                            "default": ".",
                            "description": "Path to the source code of an application's component from where to build image.",
                            "name": "path-context",
                            "type": "string"
                        },
                        {
                            "default": "Dockerfile",
                            "description": "Path to the Dockerfile inside the context specified by parameter path-context",
                            "name": "dockerfile",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Force rebuild image",
                            "name": "rebuild",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Image tag expiration time, time values could be something like 1h, 2d, 3w for hours, days, and weeks, respectively.",
                            "name": "image-expires-after",
                            "type": "string"
                        },
                        {
                            "default": "rox-api-token",
                            "name": "stackrox-secret",
                            "type": "string"
                        },
                        {
                            "default": "gitops-auth-secret",
                            "description": "Secret name to enable this pipeline to update the gitops repo with the new image. ",
                            "name": "gitops-auth-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "cosign-pub",
                            "description": "Secret name to enable verify cosign signature. ",
                            "name": "cosign-public-key-secret",
                            "type": "string"
                        },
                        {
                            "default": "push",
                            "description": "Event that triggered the pipeline run, e.g. push, pull_request",
                            "name": "event-type",
                            "type": "string"
                        },
                        {
                            "default": [],
                            "description": "Array of --build-arg values (\"arg=value\" strings) for buildah",
                            "name": "build-args",
                            "type": "array"
                        },
                        {
                            "default": "",
                            "description": "Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                            "name": "build-args-file",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Digest of the image just built",
                            "name": "IMAGE_DIGEST",
                            "value": "$(tasks.build.results.IMAGE_DIGEST)"
                        },
                        {
                            "description": "Image repository and tag where the built image was pushed",
                            "name": "IMAGE_URL",
                            "value": "$(tasks.build.results.IMAGE_URL)"
                        },
                        {
                            "description": "Digests of the base images used for build",
                            "name": "BASE_IMAGES_DIGESTS",
                            "value": "$(tasks.build.results.BASE_IMAGES_DIGESTS)"
                        },
                        {
                            "description": "Link to the SBOM layer pushed to the registry",
                            "name": "SBOM_BLOB_URL",
                            "value": "$(tasks.build.results.SBOM_BLOB_URL)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_URL",
                            "value": "$(tasks.clone-repository.results.url)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_COMMIT",
                            "value": "$(tasks.clone-repository.results.commit)"
                        },
                        {
                            "description": "",
                            "name": "ACS_SCAN_OUTPUT",
                            "value": "$(tasks.scan.results.SCAN_OUTPUT)"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "$(params.git-url)"
                                },
                                {
                                    "name": "revision",
                                    "value": "$(params.revision)"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "$(params.revision)"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "build",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "cosign-public-secret-name",
                                    "value": "$(params.cosign-public-key-secret)"
                                },
                                {
                                    "name": "tpa_secret_name",
                                    "value": "$(params.trustification-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "DOCKERFILE",
                                    "value": "$(params.dockerfile)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                },
                                {
                                    "name": "BUILD_ARGS",
                                    "value": [
                                        "$(params.build-args[*])"
                                    ]
                                },
                                {
                                    "name": "BUILD_ARGS_FILE",
                                    "value": "$(params.build-args-file)"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Builds source code into a container image and pushes the image into container registry using buildah tool.\nIn addition it generates a SBOM file, injects the SBOM file into final container image and pushes the SBOM file as separate image using cosign tool.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "build-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "./Dockerfile",
                                        "description": "Path to the Dockerfile to build.",
                                        "name": "DOCKERFILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry)",
                                        "name": "TLSVERIFY",
                                        "type": "string"
                                    },
                                    {
                                        "default": [],
                                        "description": "Array of --build-arg values (\"arg=value\" strings)",
                                        "name": "BUILD_ARGS",
                                        "type": "array"
                                    },
                                    {
                                        "default": "",
                                        "description": "Path to a file with build arguments, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                                        "name": "BUILD_ARGS_FILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Digest of the image just built",
                                        "name": "IMAGE_DIGEST",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Image repository and tag where the built image was pushed",
                                        "name": "IMAGE_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Digests of the base images used for build",
                                        "name": "BASE_IMAGES_DIGESTS",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Link to the SBOM layer pushed to the registry as part of an OCI artifact.",
                                        "name": "SBOM_BLOB_URL",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "DOCKERFILE",
                                            "value": "$(params.DOCKERFILE)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "TLSVERIFY",
                                            "value": "$(params.TLSVERIFY)"
                                        },
                                        {
                                            "name": "BUILD_ARGS_FILE",
                                            "value": "$(params.BUILD_ARGS_FILE)"
                                        },
                                        {
                                            "name": "_BUILDAH_STARTED_IN_USERNS"
                                        },
                                        {
                                            "name": "BUILDAH_ISOLATION",
                                            "value": "chroot"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_PASSWORD",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_KEY",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.tpa_secret_name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "cosign.pub",
                                                    "name": "$(params.cosign-public-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "# Sync scripts to the writable workspace\ncp -rf /work/tssc/ /workspace/source/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e /workspace/source/tssc/common.sh\necho \"Successfully patched /workspace/source/tssc/common.sh\"\necho \"running init\"\npwd\nls -la\n/workspace/source/tssc/init.sh\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    },
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "build",
                                        "script": "echo \"running buildah-tssc\"\n/workspace/source/tssc/buildah-tssc.sh\ncat ./results/buildah-tssc/BASE_IMAGES_DIGESTS \u003e $(results.BASE_IMAGES_DIGESTS.path)\ncat ./results/buildah-tssc/IMAGE_DIGEST \u003e $(results.IMAGE_DIGEST.path)\ncat ./results/buildah-tssc/IMAGE_URL \u003e $(results.IMAGE_URL.path)\ncat ./results/buildah-tssc/SBOM_BLOB_URL \u003e $(results.SBOM_BLOB_URL.path)\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deploy",
                            "params": [
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Deploy built image to development environment.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy",
                                        "script": "echo \"running update-deployment\"\n/workspace/source/tssc/update-deployment.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(params.event-type)",
                                    "operator": "notin",
                                    "values": [
                                        "pull_request",
                                        "Merge Request"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deployment-check",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload-check",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy-check",
                                        "script": "echo \"running acs-deploy-check\"\n/workspace/source/tssc/acs-deploy-check.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(params.event-type)",
                                    "operator": "in",
                                    "values": [
                                        "push",
                                        "Push"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "scan",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "scan-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "scan",
                                        "script": "echo \"running acs-image-check\"\n/workspace/source/tssc/acs-image-check.sh\necho \"running acs-image-scan\"\n/workspace/source/tssc/acs-image-scan.sh\ncat ./results/acs-image-scan/SCAN_OUTPUT \u003e $(results.SCAN_OUTPUT.path)\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "show-sbom",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Show SBOM report for the built image.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "show-workload-sbom",
                                        "task.output.location": "results",
                                        "task.results.format": "application/text",
                                        "task.results.key": "LINK_TO_SBOM",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Placeholder result meant to make RHDH identify this task as the producer of the SBOM logs.",
                                        "name": "LINK_TO_SBOM",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "show-sbom",
                                        "script": "echo \"running show-sbom-rhdh\"\n/workspace/source/tssc/show-sbom-rhdh.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "summarize",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Summarize all the steps in the build pipeline.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "summarize-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "summary",
                                        "script": "echo \"running summary\"\n/workspace/source/tssc/summary.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "taskRunTemplate": {
                    "serviceAccountName": "pipeline"
                },
                "timeouts": {
                    "pipeline": "1h0m0s"
                },
                "workspaces": [
                    {
                        "name": "gitops-auth",
                        "secret": {
                            "secretName": "$(params.gitops-auth-secret-name)"
                        }
                    },
                    {
                        "name": "git-auth",
                        "secret": {
                            "secretName": "pac-gitauth-kowfvk"
                        }
                    },
                    {
                        "name": "workspace",
                        "volumeClaimTemplate": {
                            "metadata": {
                                "creationTimestamp": null
                            },
                            "spec": {
                                "accessModes": [
                                    "ReadWriteOnce"
                                ],
                                "resources": {
                                    "requests": {
                                        "storage": "1Gi"
                                    }
                                }
                            },
                            "status": {}
                        }
                    }
                ]
            },
            "status": {
                "childReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java4e841f6f3b6b5cf227ed50ecfb35cdc7-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-springboot-pdwrzgco-on-push-f7xkm-build",
                        "pipelineTaskName": "build"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-springboot-pdwrzgco-on-push-f7xkm-deploy",
                        "pipelineTaskName": "deploy",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "notin",
                                "values": [
                                    "pull_request",
                                    "Merge Request"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java4e841f6f3b6b5cf227ed50ecfb35cdc7-deployment-check",
                        "pipelineTaskName": "deployment-check",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "in",
                                "values": [
                                    "push",
                                    "Push"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-springboot-pdwrzgco-on-push-f7xkm-scan",
                        "pipelineTaskName": "scan"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-springboot-pdwrzgco-on-push-f7xkm-show-sbom",
                        "pipelineTaskName": "show-sbom"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-springboot-pdwrzgco-on-push-f7xkm-summarize",
                        "pipelineTaskName": "summarize"
                    }
                ],
                "completionTime": "2026-04-27T16:37:23Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-27T16:37:23Z",
                        "message": "Tasks Completed: 7 (Failed: 0, Cancelled 0), Skipped: 0",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Source Repository URL",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Revision of the Source Repository",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "description": "Fully Qualified Output Image",
                            "name": "output-image",
                            "type": "string"
                        },
                        {
                            "default": ".",
                            "description": "Path to the source code of an application's component from where to build image.",
                            "name": "path-context",
                            "type": "string"
                        },
                        {
                            "default": "Dockerfile",
                            "description": "Path to the Dockerfile inside the context specified by parameter path-context",
                            "name": "dockerfile",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Force rebuild image",
                            "name": "rebuild",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Image tag expiration time, time values could be something like 1h, 2d, 3w for hours, days, and weeks, respectively.",
                            "name": "image-expires-after",
                            "type": "string"
                        },
                        {
                            "default": "rox-api-token",
                            "name": "stackrox-secret",
                            "type": "string"
                        },
                        {
                            "default": "gitops-auth-secret",
                            "description": "Secret name to enable this pipeline to update the gitops repo with the new image. ",
                            "name": "gitops-auth-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "cosign-pub",
                            "description": "Secret name to enable verify cosign signature. ",
                            "name": "cosign-public-key-secret",
                            "type": "string"
                        },
                        {
                            "default": "push",
                            "description": "Event that triggered the pipeline run, e.g. push, pull_request",
                            "name": "event-type",
                            "type": "string"
                        },
                        {
                            "default": [],
                            "description": "Array of --build-arg values (\"arg=value\" strings) for buildah",
                            "name": "build-args",
                            "type": "array"
                        },
                        {
                            "default": "",
                            "description": "Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                            "name": "build-args-file",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Digest of the image just built",
                            "name": "IMAGE_DIGEST",
                            "value": "$(tasks.build.results.IMAGE_DIGEST)"
                        },
                        {
                            "description": "Image repository and tag where the built image was pushed",
                            "name": "IMAGE_URL",
                            "value": "$(tasks.build.results.IMAGE_URL)"
                        },
                        {
                            "description": "Digests of the base images used for build",
                            "name": "BASE_IMAGES_DIGESTS",
                            "value": "$(tasks.build.results.BASE_IMAGES_DIGESTS)"
                        },
                        {
                            "description": "Link to the SBOM layer pushed to the registry",
                            "name": "SBOM_BLOB_URL",
                            "value": "$(tasks.build.results.SBOM_BLOB_URL)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_URL",
                            "value": "$(tasks.clone-repository.results.url)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_COMMIT",
                            "value": "$(tasks.clone-repository.results.commit)"
                        },
                        {
                            "description": "",
                            "name": "ACS_SCAN_OUTPUT",
                            "value": "$(tasks.scan.results.SCAN_OUTPUT)"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-pdwrzgco"
                                },
                                {
                                    "name": "revision",
                                    "value": "3a36d4e831626aa3619b91c2725050fb10881f4b"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "3a36d4e831626aa3619b91c2725050fb10881f4b"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "build",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "cosign-public-secret-name",
                                    "value": "cosign-pub"
                                },
                                {
                                    "name": "tpa_secret_name",
                                    "value": "tpa-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:3a36d4e831626aa3619b91c2725050fb10881f4b"
                                },
                                {
                                    "name": "DOCKERFILE",
                                    "value": "docker/Dockerfile"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                },
                                {
                                    "name": "BUILD_ARGS",
                                    "value": []
                                },
                                {
                                    "name": "BUILD_ARGS_FILE",
                                    "value": ""
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Builds source code into a container image and pushes the image into container registry using buildah tool.\nIn addition it generates a SBOM file, injects the SBOM file into final container image and pushes the SBOM file as separate image using cosign tool.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "build-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "./Dockerfile",
                                        "description": "Path to the Dockerfile to build.",
                                        "name": "DOCKERFILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry)",
                                        "name": "TLSVERIFY",
                                        "type": "string"
                                    },
                                    {
                                        "default": [],
                                        "description": "Array of --build-arg values (\"arg=value\" strings)",
                                        "name": "BUILD_ARGS",
                                        "type": "array"
                                    },
                                    {
                                        "default": "",
                                        "description": "Path to a file with build arguments, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                                        "name": "BUILD_ARGS_FILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Digest of the image just built",
                                        "name": "IMAGE_DIGEST",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Image repository and tag where the built image was pushed",
                                        "name": "IMAGE_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Digests of the base images used for build",
                                        "name": "BASE_IMAGES_DIGESTS",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Link to the SBOM layer pushed to the registry as part of an OCI artifact.",
                                        "name": "SBOM_BLOB_URL",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "DOCKERFILE",
                                            "value": "$(params.DOCKERFILE)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "TLSVERIFY",
                                            "value": "$(params.TLSVERIFY)"
                                        },
                                        {
                                            "name": "BUILD_ARGS_FILE",
                                            "value": "$(params.BUILD_ARGS_FILE)"
                                        },
                                        {
                                            "name": "_BUILDAH_STARTED_IN_USERNS"
                                        },
                                        {
                                            "name": "BUILDAH_ISOLATION",
                                            "value": "chroot"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_PASSWORD",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_KEY",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.tpa_secret_name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "cosign.pub",
                                                    "name": "$(params.cosign-public-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "DOCKERFILE",
                                                "value": "$(params.DOCKERFILE)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "TLSVERIFY",
                                                "value": "$(params.TLSVERIFY)"
                                            },
                                            {
                                                "name": "BUILD_ARGS_FILE",
                                                "value": "$(params.BUILD_ARGS_FILE)"
                                            },
                                            {
                                                "name": "_BUILDAH_STARTED_IN_USERNS"
                                            },
                                            {
                                                "name": "BUILDAH_ISOLATION",
                                                "value": "chroot"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_PASSWORD",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_KEY",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.tpa_secret_name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "cosign.pub",
                                                        "name": "$(params.cosign-public-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "# Sync scripts to the writable workspace\ncp -rf /work/tssc/ /workspace/source/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e /workspace/source/tssc/common.sh\necho \"Successfully patched /workspace/source/tssc/common.sh\"\necho \"running init\"\npwd\nls -la\n/workspace/source/tssc/init.sh\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    },
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "DOCKERFILE",
                                                "value": "$(params.DOCKERFILE)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "TLSVERIFY",
                                                "value": "$(params.TLSVERIFY)"
                                            },
                                            {
                                                "name": "BUILD_ARGS_FILE",
                                                "value": "$(params.BUILD_ARGS_FILE)"
                                            },
                                            {
                                                "name": "_BUILDAH_STARTED_IN_USERNS"
                                            },
                                            {
                                                "name": "BUILDAH_ISOLATION",
                                                "value": "chroot"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_PASSWORD",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_KEY",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.tpa_secret_name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "cosign.pub",
                                                        "name": "$(params.cosign-public-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "build",
                                        "script": "echo \"running buildah-tssc\"\n/workspace/source/tssc/buildah-tssc.sh\ncat ./results/buildah-tssc/BASE_IMAGES_DIGESTS \u003e $(results.BASE_IMAGES_DIGESTS.path)\ncat ./results/buildah-tssc/IMAGE_DIGEST \u003e $(results.IMAGE_DIGEST.path)\ncat ./results/buildah-tssc/IMAGE_URL \u003e $(results.IMAGE_URL.path)\ncat ./results/buildah-tssc/SBOM_BLOB_URL \u003e $(results.SBOM_BLOB_URL.path)\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deploy",
                            "params": [
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:3a36d4e831626aa3619b91c2725050fb10881f4b"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Deploy built image to development environment.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy",
                                        "script": "echo \"running update-deployment\"\n/workspace/source/tssc/update-deployment.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "push",
                                    "operator": "notin",
                                    "values": [
                                        "pull_request",
                                        "Merge Request"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deployment-check",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:3a36d4e831626aa3619b91c2725050fb10881f4b"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload-check",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy-check",
                                        "script": "echo \"running acs-deploy-check\"\n/workspace/source/tssc/acs-deploy-check.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "push",
                                    "operator": "in",
                                    "values": [
                                        "push",
                                        "Push"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "scan",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:3a36d4e831626aa3619b91c2725050fb10881f4b"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "scan-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "scan",
                                        "script": "echo \"running acs-image-check\"\n/workspace/source/tssc/acs-image-check.sh\necho \"running acs-image-scan\"\n/workspace/source/tssc/acs-image-scan.sh\ncat ./results/acs-image-scan/SCAN_OUTPUT \u003e $(results.SCAN_OUTPUT.path)\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "show-sbom",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:3a36d4e831626aa3619b91c2725050fb10881f4b"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Show SBOM report for the built image.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "show-workload-sbom",
                                        "task.output.location": "results",
                                        "task.results.format": "application/text",
                                        "task.results.key": "LINK_TO_SBOM",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Placeholder result meant to make RHDH identify this task as the producer of the SBOM logs.",
                                        "name": "LINK_TO_SBOM",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "show-sbom",
                                        "script": "echo \"running show-sbom-rhdh\"\n/workspace/source/tssc/show-sbom-rhdh.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "summarize",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:3a36d4e831626aa3619b91c2725050fb10881f4b"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Summarize all the steps in the build pipeline.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "summarize-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "summary",
                                        "script": "echo \"running summary\"\n/workspace/source/tssc/summary.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "results": [
                    {
                        "name": "IMAGE_DIGEST",
                        "value": "sha256:87bb68205b7642e178a4225e4db608c37c2e44bbb40b9bd7fdc2822363a76f62"
                    },
                    {
                        "name": "IMAGE_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:3a36d4e831626aa3619b91c2725050fb10881f4b"
                    },
                    {
                        "name": "BASE_IMAGES_DIGESTS",
                        "value": "registry.access.redhat.com/ubi9/openjdk-21:latest@sha256:253d78f68108c9188e810c6d534071dc16b437ddae185541c4292e2236c09d0a\nregistry.access.redhat.com/ubi9/openjdk-21-runtime:latest@sha256:4f77a4aef51bb959a7af413b702d2b5db9b530c9bc09d10758947d5c73b7bafc\n"
                    },
                    {
                        "name": "SBOM_BLOB_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco@sha256:8a7d46703c465e91a1b80df4b4abc04ca4c67de7098a62c76e3e3bf31476c153"
                    },
                    {
                        "name": "CHAINS-GIT_URL",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-pdwrzgco"
                    },
                    {
                        "name": "CHAINS-GIT_COMMIT",
                        "value": "3a36d4e831626aa3619b91c2725050fb10881f4b"
                    },
                    {
                        "name": "ACS_SCAN_OUTPUT",
                        "value": "{\"vulnerabilities\":{\"critical\":0,\"high\":12,\"medium\":80,\"low\":58}}\n"
                    }
                ],
                "startTime": "2026-04-27T16:35:01Z"
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "PipelineRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "chains.tekton.dev/transparency": "https://rekor-server-tssc-tas.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/api/v1/log/entries?logIndex=146",
                    "pipelinesascode.tekton.dev/branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/check-run-id": "73234135299",
                    "pipelinesascode.tekton.dev/controller-info": "{\"name\":\"default\",\"configmap\":\"pipelines-as-code\",\"secret\":\"pipelines-as-code-secret\", \"gRepo\": \"pipelines-as-code\"}",
                    "pipelinesascode.tekton.dev/event-type": "push",
                    "pipelinesascode.tekton.dev/git-auth-secret": "pac-gitauth-ayarfw",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-java-springboot-pdwrzgco-on-push-s4jz4",
                    "pipelinesascode.tekton.dev/max-keep-runs": "2",
                    "pipelinesascode.tekton.dev/on-event": "[push]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-springboot-pdwrzgco-on-push",
                    "pipelinesascode.tekton.dev/pipeline": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/pipelines/docker-build-tssc.yaml",
                    "pipelinesascode.tekton.dev/repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-pdwrzgco",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-springboot-pdwrzgco-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "8dacdd0a0ab25f32b6a35bab31769cc88f2c2e6b",
                    "pipelinesascode.tekton.dev/sha-title": "Merge pull request #1 from rhtap-rhdh-qe/test-branch-1777307699955",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-pdwrzgco/commit/8dacdd0a0ab25f32b6a35bab31769cc88f2c2e6b",
                    "pipelinesascode.tekton.dev/source-branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-pdwrzgco",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/task-0": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/init.yaml",
                    "pipelinesascode.tekton.dev/task-1": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/git-clone.yaml",
                    "pipelinesascode.tekton.dev/task-10": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/deploy-workload.yaml",
                    "pipelinesascode.tekton.dev/task-11": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/scan-workload.yaml",
                    "pipelinesascode.tekton.dev/task-12": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/summarize-workload.yaml",
                    "pipelinesascode.tekton.dev/task-13": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/show-workload-sbom.yaml",
                    "pipelinesascode.tekton.dev/task-14": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/deploy-workload-check.yaml",
                    "pipelinesascode.tekton.dev/task-2": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/buildah-rhtap.yaml",
                    "pipelinesascode.tekton.dev/task-3": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-image-check.yaml",
                    "pipelinesascode.tekton.dev/task-4": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-image-scan.yaml",
                    "pipelinesascode.tekton.dev/task-5": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-deploy-check.yaml",
                    "pipelinesascode.tekton.dev/task-6": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/update-deployment.yaml",
                    "pipelinesascode.tekton.dev/task-7": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/show-sbom-rhdh.yaml",
                    "pipelinesascode.tekton.dev/task-8": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/summary.yaml",
                    "pipelinesascode.tekton.dev/task-9": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/build-workload.yaml",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-java-springboot-pdwrzgco",
                    "results.tekton.dev/record": "tssc-app-ci/results/6257fd10-ef72-4953-92ae-eda76c7c045e/records/6257fd10-ef72-4953-92ae-eda76c7c045e",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-java-springboot-pdwrzgco\",\"commit\":\"8dacdd0a0ab25f32b6a35bab31769cc88f2c2e6b\",\"eventType\":\"push\"}",
                    "results.tekton.dev/result": "tssc-app-ci/results/6257fd10-ef72-4953-92ae-eda76c7c045e",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-27T16:37:49Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "results.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-java-springboot-pdwrzgco-on-push-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-java-springboot-pdwrzgco",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-java-springboot-pdwrzgco",
                    "backstage.io/kubernetes-id": "e2e-tests-java-springboot-pdwrzgco",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-java-springboot-pdwrzgco",
                    "pipelinesascode.tekton.dev/check-run-id": "73234135299",
                    "pipelinesascode.tekton.dev/event-type": "push",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-springboot-pdwrzgco-on-push",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-springboot-pdwrzgco-repository",
                    "pipelinesascode.tekton.dev/sha": "8dacdd0a0ab25f32b6a35bab31769cc88f2c2e6b",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-java-springboot-pdwrzgco",
                    "tekton.dev/pipeline": "e2e-tests-java-springboot-pdwrzgco-on-push-s4jz4"
                },
                "name": "e2e-tests-java-springboot-pdwrzgco-on-push-s4jz4",
                "namespace": "tssc-app-ci",
                "resourceVersion": "53583",
                "uid": "6257fd10-ef72-4953-92ae-eda76c7c045e"
            },
            "spec": {
                "params": [
                    {
                        "name": "dockerfile",
                        "value": "docker/Dockerfile"
                    },
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-pdwrzgco"
                    },
                    {
                        "name": "image-expires-after",
                        "value": "5d"
                    },
                    {
                        "name": "output-image",
                        "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:8dacdd0a0ab25f32b6a35bab31769cc88f2c2e6b"
                    },
                    {
                        "name": "path-context",
                        "value": "."
                    },
                    {
                        "name": "revision",
                        "value": "8dacdd0a0ab25f32b6a35bab31769cc88f2c2e6b"
                    },
                    {
                        "name": "event-type",
                        "value": "push"
                    },
                    {
                        "name": "gitops-auth-secret-name",
                        "value": "gitops-auth-secret"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Source Repository URL",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Revision of the Source Repository",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "description": "Fully Qualified Output Image",
                            "name": "output-image",
                            "type": "string"
                        },
                        {
                            "default": ".",
                            "description": "Path to the source code of an application's component from where to build image.",
                            "name": "path-context",
                            "type": "string"
                        },
                        {
                            "default": "Dockerfile",
                            "description": "Path to the Dockerfile inside the context specified by parameter path-context",
                            "name": "dockerfile",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Force rebuild image",
                            "name": "rebuild",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Image tag expiration time, time values could be something like 1h, 2d, 3w for hours, days, and weeks, respectively.",
                            "name": "image-expires-after",
                            "type": "string"
                        },
                        {
                            "default": "rox-api-token",
                            "name": "stackrox-secret",
                            "type": "string"
                        },
                        {
                            "default": "gitops-auth-secret",
                            "description": "Secret name to enable this pipeline to update the gitops repo with the new image. ",
                            "name": "gitops-auth-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "cosign-pub",
                            "description": "Secret name to enable verify cosign signature. ",
                            "name": "cosign-public-key-secret",
                            "type": "string"
                        },
                        {
                            "default": "push",
                            "description": "Event that triggered the pipeline run, e.g. push, pull_request",
                            "name": "event-type",
                            "type": "string"
                        },
                        {
                            "default": [],
                            "description": "Array of --build-arg values (\"arg=value\" strings) for buildah",
                            "name": "build-args",
                            "type": "array"
                        },
                        {
                            "default": "",
                            "description": "Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                            "name": "build-args-file",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Digest of the image just built",
                            "name": "IMAGE_DIGEST",
                            "value": "$(tasks.build.results.IMAGE_DIGEST)"
                        },
                        {
                            "description": "Image repository and tag where the built image was pushed",
                            "name": "IMAGE_URL",
                            "value": "$(tasks.build.results.IMAGE_URL)"
                        },
                        {
                            "description": "Digests of the base images used for build",
                            "name": "BASE_IMAGES_DIGESTS",
                            "value": "$(tasks.build.results.BASE_IMAGES_DIGESTS)"
                        },
                        {
                            "description": "Link to the SBOM layer pushed to the registry",
                            "name": "SBOM_BLOB_URL",
                            "value": "$(tasks.build.results.SBOM_BLOB_URL)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_URL",
                            "value": "$(tasks.clone-repository.results.url)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_COMMIT",
                            "value": "$(tasks.clone-repository.results.commit)"
                        },
                        {
                            "description": "",
                            "name": "ACS_SCAN_OUTPUT",
                            "value": "$(tasks.scan.results.SCAN_OUTPUT)"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "$(params.git-url)"
                                },
                                {
                                    "name": "revision",
                                    "value": "$(params.revision)"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "$(params.revision)"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "build",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "cosign-public-secret-name",
                                    "value": "$(params.cosign-public-key-secret)"
                                },
                                {
                                    "name": "tpa_secret_name",
                                    "value": "$(params.trustification-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "DOCKERFILE",
                                    "value": "$(params.dockerfile)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                },
                                {
                                    "name": "BUILD_ARGS",
                                    "value": [
                                        "$(params.build-args[*])"
                                    ]
                                },
                                {
                                    "name": "BUILD_ARGS_FILE",
                                    "value": "$(params.build-args-file)"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Builds source code into a container image and pushes the image into container registry using buildah tool.\nIn addition it generates a SBOM file, injects the SBOM file into final container image and pushes the SBOM file as separate image using cosign tool.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "build-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "./Dockerfile",
                                        "description": "Path to the Dockerfile to build.",
                                        "name": "DOCKERFILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry)",
                                        "name": "TLSVERIFY",
                                        "type": "string"
                                    },
                                    {
                                        "default": [],
                                        "description": "Array of --build-arg values (\"arg=value\" strings)",
                                        "name": "BUILD_ARGS",
                                        "type": "array"
                                    },
                                    {
                                        "default": "",
                                        "description": "Path to a file with build arguments, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                                        "name": "BUILD_ARGS_FILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Digest of the image just built",
                                        "name": "IMAGE_DIGEST",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Image repository and tag where the built image was pushed",
                                        "name": "IMAGE_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Digests of the base images used for build",
                                        "name": "BASE_IMAGES_DIGESTS",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Link to the SBOM layer pushed to the registry as part of an OCI artifact.",
                                        "name": "SBOM_BLOB_URL",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "DOCKERFILE",
                                            "value": "$(params.DOCKERFILE)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "TLSVERIFY",
                                            "value": "$(params.TLSVERIFY)"
                                        },
                                        {
                                            "name": "BUILD_ARGS_FILE",
                                            "value": "$(params.BUILD_ARGS_FILE)"
                                        },
                                        {
                                            "name": "_BUILDAH_STARTED_IN_USERNS"
                                        },
                                        {
                                            "name": "BUILDAH_ISOLATION",
                                            "value": "chroot"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_PASSWORD",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_KEY",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.tpa_secret_name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "cosign.pub",
                                                    "name": "$(params.cosign-public-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "# Sync scripts to the writable workspace\ncp -rf /work/tssc/ /workspace/source/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e /workspace/source/tssc/common.sh\necho \"Successfully patched /workspace/source/tssc/common.sh\"\necho \"running init\"\npwd\nls -la\n/workspace/source/tssc/init.sh\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    },
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "build",
                                        "script": "echo \"running buildah-tssc\"\n/workspace/source/tssc/buildah-tssc.sh\ncat ./results/buildah-tssc/BASE_IMAGES_DIGESTS \u003e $(results.BASE_IMAGES_DIGESTS.path)\ncat ./results/buildah-tssc/IMAGE_DIGEST \u003e $(results.IMAGE_DIGEST.path)\ncat ./results/buildah-tssc/IMAGE_URL \u003e $(results.IMAGE_URL.path)\ncat ./results/buildah-tssc/SBOM_BLOB_URL \u003e $(results.SBOM_BLOB_URL.path)\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deploy",
                            "params": [
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Deploy built image to development environment.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy",
                                        "script": "echo \"running update-deployment\"\n/workspace/source/tssc/update-deployment.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(params.event-type)",
                                    "operator": "notin",
                                    "values": [
                                        "pull_request",
                                        "Merge Request"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deployment-check",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload-check",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy-check",
                                        "script": "echo \"running acs-deploy-check\"\n/workspace/source/tssc/acs-deploy-check.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(params.event-type)",
                                    "operator": "in",
                                    "values": [
                                        "push",
                                        "Push"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "scan",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "scan-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "scan",
                                        "script": "echo \"running acs-image-check\"\n/workspace/source/tssc/acs-image-check.sh\necho \"running acs-image-scan\"\n/workspace/source/tssc/acs-image-scan.sh\ncat ./results/acs-image-scan/SCAN_OUTPUT \u003e $(results.SCAN_OUTPUT.path)\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "show-sbom",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Show SBOM report for the built image.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "show-workload-sbom",
                                        "task.output.location": "results",
                                        "task.results.format": "application/text",
                                        "task.results.key": "LINK_TO_SBOM",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Placeholder result meant to make RHDH identify this task as the producer of the SBOM logs.",
                                        "name": "LINK_TO_SBOM",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "show-sbom",
                                        "script": "echo \"running show-sbom-rhdh\"\n/workspace/source/tssc/show-sbom-rhdh.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "summarize",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Summarize all the steps in the build pipeline.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "summarize-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "summary",
                                        "script": "echo \"running summary\"\n/workspace/source/tssc/summary.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "taskRunTemplate": {
                    "serviceAccountName": "pipeline"
                },
                "timeouts": {
                    "pipeline": "1h0m0s"
                },
                "workspaces": [
                    {
                        "name": "gitops-auth",
                        "secret": {
                            "secretName": "$(params.gitops-auth-secret-name)"
                        }
                    },
                    {
                        "name": "git-auth",
                        "secret": {
                            "secretName": "pac-gitauth-ayarfw"
                        }
                    },
                    {
                        "name": "workspace",
                        "volumeClaimTemplate": {
                            "metadata": {
                                "creationTimestamp": null
                            },
                            "spec": {
                                "accessModes": [
                                    "ReadWriteOnce"
                                ],
                                "resources": {
                                    "requests": {
                                        "storage": "1Gi"
                                    }
                                }
                            },
                            "status": {}
                        }
                    }
                ]
            },
            "status": {
                "childReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java85cbe09a41917eb6fb1495fea86bd90f-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-springboot-pdwrzgco-on-push-s4jz4-build",
                        "pipelineTaskName": "build"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-springboot-pdwrzgco-on-push-s4jz4-deploy",
                        "pipelineTaskName": "deploy",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "notin",
                                "values": [
                                    "pull_request",
                                    "Merge Request"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java85cbe09a41917eb6fb1495fea86bd90f-deployment-check",
                        "pipelineTaskName": "deployment-check",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "in",
                                "values": [
                                    "push",
                                    "Push"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-springboot-pdwrzgco-on-push-s4jz4-scan",
                        "pipelineTaskName": "scan"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-springboot-pdwrzgco-on-push-s4jz4-show-sbom",
                        "pipelineTaskName": "show-sbom"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-springboot-pdwrzgco-on-push-s4jz4-summarize",
                        "pipelineTaskName": "summarize"
                    }
                ],
                "completionTime": "2026-04-27T16:39:59Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-27T16:39:59Z",
                        "message": "Tasks Completed: 7 (Failed: 0, Cancelled 0), Skipped: 0",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Source Repository URL",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Revision of the Source Repository",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "description": "Fully Qualified Output Image",
                            "name": "output-image",
                            "type": "string"
                        },
                        {
                            "default": ".",
                            "description": "Path to the source code of an application's component from where to build image.",
                            "name": "path-context",
                            "type": "string"
                        },
                        {
                            "default": "Dockerfile",
                            "description": "Path to the Dockerfile inside the context specified by parameter path-context",
                            "name": "dockerfile",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Force rebuild image",
                            "name": "rebuild",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Image tag expiration time, time values could be something like 1h, 2d, 3w for hours, days, and weeks, respectively.",
                            "name": "image-expires-after",
                            "type": "string"
                        },
                        {
                            "default": "rox-api-token",
                            "name": "stackrox-secret",
                            "type": "string"
                        },
                        {
                            "default": "gitops-auth-secret",
                            "description": "Secret name to enable this pipeline to update the gitops repo with the new image. ",
                            "name": "gitops-auth-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "cosign-pub",
                            "description": "Secret name to enable verify cosign signature. ",
                            "name": "cosign-public-key-secret",
                            "type": "string"
                        },
                        {
                            "default": "push",
                            "description": "Event that triggered the pipeline run, e.g. push, pull_request",
                            "name": "event-type",
                            "type": "string"
                        },
                        {
                            "default": [],
                            "description": "Array of --build-arg values (\"arg=value\" strings) for buildah",
                            "name": "build-args",
                            "type": "array"
                        },
                        {
                            "default": "",
                            "description": "Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                            "name": "build-args-file",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Digest of the image just built",
                            "name": "IMAGE_DIGEST",
                            "value": "$(tasks.build.results.IMAGE_DIGEST)"
                        },
                        {
                            "description": "Image repository and tag where the built image was pushed",
                            "name": "IMAGE_URL",
                            "value": "$(tasks.build.results.IMAGE_URL)"
                        },
                        {
                            "description": "Digests of the base images used for build",
                            "name": "BASE_IMAGES_DIGESTS",
                            "value": "$(tasks.build.results.BASE_IMAGES_DIGESTS)"
                        },
                        {
                            "description": "Link to the SBOM layer pushed to the registry",
                            "name": "SBOM_BLOB_URL",
                            "value": "$(tasks.build.results.SBOM_BLOB_URL)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_URL",
                            "value": "$(tasks.clone-repository.results.url)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_COMMIT",
                            "value": "$(tasks.clone-repository.results.commit)"
                        },
                        {
                            "description": "",
                            "name": "ACS_SCAN_OUTPUT",
                            "value": "$(tasks.scan.results.SCAN_OUTPUT)"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-pdwrzgco"
                                },
                                {
                                    "name": "revision",
                                    "value": "8dacdd0a0ab25f32b6a35bab31769cc88f2c2e6b"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "8dacdd0a0ab25f32b6a35bab31769cc88f2c2e6b"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "build",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "cosign-public-secret-name",
                                    "value": "cosign-pub"
                                },
                                {
                                    "name": "tpa_secret_name",
                                    "value": "tpa-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:8dacdd0a0ab25f32b6a35bab31769cc88f2c2e6b"
                                },
                                {
                                    "name": "DOCKERFILE",
                                    "value": "docker/Dockerfile"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                },
                                {
                                    "name": "BUILD_ARGS",
                                    "value": []
                                },
                                {
                                    "name": "BUILD_ARGS_FILE",
                                    "value": ""
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Builds source code into a container image and pushes the image into container registry using buildah tool.\nIn addition it generates a SBOM file, injects the SBOM file into final container image and pushes the SBOM file as separate image using cosign tool.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "build-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "./Dockerfile",
                                        "description": "Path to the Dockerfile to build.",
                                        "name": "DOCKERFILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry)",
                                        "name": "TLSVERIFY",
                                        "type": "string"
                                    },
                                    {
                                        "default": [],
                                        "description": "Array of --build-arg values (\"arg=value\" strings)",
                                        "name": "BUILD_ARGS",
                                        "type": "array"
                                    },
                                    {
                                        "default": "",
                                        "description": "Path to a file with build arguments, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                                        "name": "BUILD_ARGS_FILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Digest of the image just built",
                                        "name": "IMAGE_DIGEST",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Image repository and tag where the built image was pushed",
                                        "name": "IMAGE_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Digests of the base images used for build",
                                        "name": "BASE_IMAGES_DIGESTS",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Link to the SBOM layer pushed to the registry as part of an OCI artifact.",
                                        "name": "SBOM_BLOB_URL",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "DOCKERFILE",
                                            "value": "$(params.DOCKERFILE)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "TLSVERIFY",
                                            "value": "$(params.TLSVERIFY)"
                                        },
                                        {
                                            "name": "BUILD_ARGS_FILE",
                                            "value": "$(params.BUILD_ARGS_FILE)"
                                        },
                                        {
                                            "name": "_BUILDAH_STARTED_IN_USERNS"
                                        },
                                        {
                                            "name": "BUILDAH_ISOLATION",
                                            "value": "chroot"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_PASSWORD",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_KEY",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.tpa_secret_name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "cosign.pub",
                                                    "name": "$(params.cosign-public-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "DOCKERFILE",
                                                "value": "$(params.DOCKERFILE)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "TLSVERIFY",
                                                "value": "$(params.TLSVERIFY)"
                                            },
                                            {
                                                "name": "BUILD_ARGS_FILE",
                                                "value": "$(params.BUILD_ARGS_FILE)"
                                            },
                                            {
                                                "name": "_BUILDAH_STARTED_IN_USERNS"
                                            },
                                            {
                                                "name": "BUILDAH_ISOLATION",
                                                "value": "chroot"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_PASSWORD",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_KEY",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.tpa_secret_name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "cosign.pub",
                                                        "name": "$(params.cosign-public-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "# Sync scripts to the writable workspace\ncp -rf /work/tssc/ /workspace/source/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e /workspace/source/tssc/common.sh\necho \"Successfully patched /workspace/source/tssc/common.sh\"\necho \"running init\"\npwd\nls -la\n/workspace/source/tssc/init.sh\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    },
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "DOCKERFILE",
                                                "value": "$(params.DOCKERFILE)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "TLSVERIFY",
                                                "value": "$(params.TLSVERIFY)"
                                            },
                                            {
                                                "name": "BUILD_ARGS_FILE",
                                                "value": "$(params.BUILD_ARGS_FILE)"
                                            },
                                            {
                                                "name": "_BUILDAH_STARTED_IN_USERNS"
                                            },
                                            {
                                                "name": "BUILDAH_ISOLATION",
                                                "value": "chroot"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_PASSWORD",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_KEY",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.tpa_secret_name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "cosign.pub",
                                                        "name": "$(params.cosign-public-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "build",
                                        "script": "echo \"running buildah-tssc\"\n/workspace/source/tssc/buildah-tssc.sh\ncat ./results/buildah-tssc/BASE_IMAGES_DIGESTS \u003e $(results.BASE_IMAGES_DIGESTS.path)\ncat ./results/buildah-tssc/IMAGE_DIGEST \u003e $(results.IMAGE_DIGEST.path)\ncat ./results/buildah-tssc/IMAGE_URL \u003e $(results.IMAGE_URL.path)\ncat ./results/buildah-tssc/SBOM_BLOB_URL \u003e $(results.SBOM_BLOB_URL.path)\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deploy",
                            "params": [
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:8dacdd0a0ab25f32b6a35bab31769cc88f2c2e6b"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Deploy built image to development environment.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy",
                                        "script": "echo \"running update-deployment\"\n/workspace/source/tssc/update-deployment.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "push",
                                    "operator": "notin",
                                    "values": [
                                        "pull_request",
                                        "Merge Request"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deployment-check",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:8dacdd0a0ab25f32b6a35bab31769cc88f2c2e6b"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload-check",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy-check",
                                        "script": "echo \"running acs-deploy-check\"\n/workspace/source/tssc/acs-deploy-check.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "push",
                                    "operator": "in",
                                    "values": [
                                        "push",
                                        "Push"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "scan",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:8dacdd0a0ab25f32b6a35bab31769cc88f2c2e6b"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "scan-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "scan",
                                        "script": "echo \"running acs-image-check\"\n/workspace/source/tssc/acs-image-check.sh\necho \"running acs-image-scan\"\n/workspace/source/tssc/acs-image-scan.sh\ncat ./results/acs-image-scan/SCAN_OUTPUT \u003e $(results.SCAN_OUTPUT.path)\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "show-sbom",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:8dacdd0a0ab25f32b6a35bab31769cc88f2c2e6b"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Show SBOM report for the built image.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "show-workload-sbom",
                                        "task.output.location": "results",
                                        "task.results.format": "application/text",
                                        "task.results.key": "LINK_TO_SBOM",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Placeholder result meant to make RHDH identify this task as the producer of the SBOM logs.",
                                        "name": "LINK_TO_SBOM",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "show-sbom",
                                        "script": "echo \"running show-sbom-rhdh\"\n/workspace/source/tssc/show-sbom-rhdh.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "summarize",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:8dacdd0a0ab25f32b6a35bab31769cc88f2c2e6b"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Summarize all the steps in the build pipeline.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "summarize-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "summary",
                                        "script": "echo \"running summary\"\n/workspace/source/tssc/summary.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "results": [
                    {
                        "name": "IMAGE_DIGEST",
                        "value": "sha256:d85ea2f7f7bc42489318d45c1ab31dcf730b6562667ca2660db07f6efd67cece"
                    },
                    {
                        "name": "IMAGE_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco:8dacdd0a0ab25f32b6a35bab31769cc88f2c2e6b"
                    },
                    {
                        "name": "BASE_IMAGES_DIGESTS",
                        "value": "registry.access.redhat.com/ubi9/openjdk-21:latest@sha256:253d78f68108c9188e810c6d534071dc16b437ddae185541c4292e2236c09d0a\nregistry.access.redhat.com/ubi9/openjdk-21-runtime:latest@sha256:4f77a4aef51bb959a7af413b702d2b5db9b530c9bc09d10758947d5c73b7bafc\n"
                    },
                    {
                        "name": "SBOM_BLOB_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-pdwrzgco@sha256:db12c85513f38e3ef247b68dfe3c4e0971ba82e8afe7d419f7b5b089f5b59c3e"
                    },
                    {
                        "name": "CHAINS-GIT_URL",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-pdwrzgco"
                    },
                    {
                        "name": "CHAINS-GIT_COMMIT",
                        "value": "8dacdd0a0ab25f32b6a35bab31769cc88f2c2e6b"
                    },
                    {
                        "name": "ACS_SCAN_OUTPUT",
                        "value": "{\"vulnerabilities\":{\"critical\":0,\"high\":12,\"medium\":80,\"low\":58}}\n"
                    }
                ],
                "startTime": "2026-04-27T16:37:49Z"
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "PipelineRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "chains.tekton.dev/transparency": "https://rekor-server-tssc-tas.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/api/v1/log/entries?logIndex=134",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "73234266975",
                    "pipelinesascode.tekton.dev/controller-info": "{\"name\":\"default\",\"configmap\":\"pipelines-as-code\",\"secret\":\"pipelines-as-code-secret\", \"gRepo\": \"pipelines-as-code\"}",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/git-auth-secret": "pac-gitauth-wdpewb",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-nodejs-bmscnquq-gitops-on-pull-request-5t5zj",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-nodejs-bmscnquq-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pipeline": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/pipelines/gitops-pull-request-tssc.yaml",
                    "pipelinesascode.tekton.dev/pull-request": "2",
                    "pipelinesascode.tekton.dev/repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-bmscnquq-gitops",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-nodejs-bmscnquq-gitops-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "104bd923d21cb462d11d6f0172d6ddb3774df017",
                    "pipelinesascode.tekton.dev/sha-title": "Promote to prod environment",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-bmscnquq-gitops/commit/104bd923d21cb462d11d6f0172d6ddb3774df017",
                    "pipelinesascode.tekton.dev/source-branch": "promote-to-prod-1777307905652",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-bmscnquq-gitops",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/task-0": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/git-clone.yaml",
                    "pipelinesascode.tekton.dev/task-1": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/gather-deploy-images.yaml",
                    "pipelinesascode.tekton.dev/task-2": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/verify-enterprise-contract.yaml",
                    "pipelinesascode.tekton.dev/task-3": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/gather-deploy-images.yaml",
                    "pipelinesascode.tekton.dev/task-4": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/download-sbom-from-url-in-attestation.yaml",
                    "pipelinesascode.tekton.dev/task-5": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/upload-sbom-to-trustification.yaml",
                    "pipelinesascode.tekton.dev/task-6": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/fetch-gitops-images.yaml",
                    "pipelinesascode.tekton.dev/task-7": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/verify-gitops-conforma.yaml",
                    "pipelinesascode.tekton.dev/task-8": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/download-gitops-sbom.yaml",
                    "pipelinesascode.tekton.dev/task-9": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/upload-gitops-sbom.yaml",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-nodejs-bmscnquq-gitops",
                    "results.tekton.dev/record": "tssc-app-ci/results/54339068-c0bf-45bc-b15d-a2b253764180/records/54339068-c0bf-45bc-b15d-a2b253764180",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-nodejs-bmscnquq-gitops\",\"commit\":\"104bd923d21cb462d11d6f0172d6ddb3774df017\",\"eventType\":\"pull_request\",\"pull_request-id\":2}",
                    "results.tekton.dev/result": "tssc-app-ci/results/54339068-c0bf-45bc-b15d-a2b253764180",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-27T16:38:36Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "results.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer"
                ],
                "generateName": "e2e-tests-nodejs-bmscnquq-gitops-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-nodejs-bmscnquq",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-nodejs-bmscnquq",
                    "backstage.io/kubernetes-id": "e2e-tests-nodejs-bmscnquq",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-nodejs-bmscnquq",
                    "pipelinesascode.tekton.dev/check-run-id": "73234266975",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-nodejs-bmscnquq-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "2",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-nodejs-bmscnquq-gitops-repository",
                    "pipelinesascode.tekton.dev/sha": "104bd923d21cb462d11d6f0172d6ddb3774df017",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-nodejs-bmscnquq-gitops",
                    "tekton.dev/pipeline": "e2e-tests-nodejs-bmscnquq-gitops-on-pull-request-5t5zj"
                },
                "name": "e2e-tests-nodejs-bmscnquq-gitops-on-pull-request-5t5zj",
                "namespace": "tssc-app-ci",
                "resourceVersion": "52337",
                "uid": "54339068-c0bf-45bc-b15d-a2b253764180"
            },
            "spec": {
                "params": [
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-bmscnquq-gitops"
                    },
                    {
                        "name": "revision",
                        "value": "104bd923d21cb462d11d6f0172d6ddb3774df017"
                    },
                    {
                        "name": "target-branch",
                        "value": "main"
                    },
                    {
                        "name": "fail-if-trustification-not-configured",
                        "value": "false"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Gitops repo url",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Gitops repo revision",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "default": "main",
                            "description": "The target branch for the pull request",
                            "name": "target-branch",
                            "type": "string"
                        },
                        {
                            "default": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7",
                            "description": "Enterprise Contract policy to validate against",
                            "name": "ec-policy-configuration",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should EC violations cause the pipeline to fail?",
                            "name": "ec-strict",
                            "type": "string"
                        },
                        {
                            "default": "k8s://$(context.pipelineRun.namespace)/cosign-pub",
                            "description": "The public key that EC should use to verify signatures",
                            "name": "ec-public-key",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should the pipeline fail when there are SBOMs to upload but Trustification is not properly configured (i.e. the secret is missing or doesn't have all the required keys)?",
                            "name": "fail-if-trustification-not-configured",
                            "type": "string"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "$(params.git-url)"
                                },
                                {
                                    "name": "revision",
                                    "value": "$(params.revision)"
                                },
                                {
                                    "name": "fetchTags",
                                    "value": "true"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "$(params.revision)"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "get-images",
                            "params": [
                                {
                                    "name": "PUBLIC_KEY_URL",
                                    "value": "$(params.ec-public-key)"
                                },
                                {
                                    "name": "TARGET_BRANCH",
                                    "value": "$(params.target-branch)"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Extract images from deployment YAML to pass to Conforma for validation",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a valid k8s cosign reference, e.g. k8s://my-space/my-secret where my-secret contains the expected cosign.pub attribute.",
                                        "name": "PUBLIC_KEY_URL",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "If specified, will gather only the images that changed between the current revision and the target branch. Useful for pull requests. Note that the repository cloned on the source workspace must already contain the origin/$TARGET_BRANCH reference.\n",
                                        "name": "TARGET_BRANCH",
                                        "type": "string"
                                    },
                                    {
                                        "default": [
                                            "development",
                                            "stage",
                                            "prod"
                                        ],
                                        "description": "Gather images from the manifest files for the specified environments",
                                        "name": "ENVIRONMENTS",
                                        "type": "array"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Cosign base64 encoded public key fetched from secrets.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images with SBOMs to upload to Trustification \n",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images to be verified, in a format compatible with https://github.com/konflux-ci/build-definitions/tree/main/task/verify-enterprise-contract/0.1. When there are no images to verify, this is an empty string.\n",
                                        "name": "CONFORMA_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TARGET_BRANCH",
                                            "value": "$(params.TARGET_BRANCH)"
                                        },
                                        {
                                            "name": "PUBLIC_KEY_URL",
                                            "value": "$(params.PUBLIC_KEY_URL)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "pwd\nls -la\n# Sync scripts to the writable workspace\ncp -rf /work/tssc/ $(workspaces.source.path)/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e $(workspaces.source.path)/tssc/common.sh\necho \"Successfully patched $(workspaces.source.path)/tssc/common.sh\"\n\necho \"Parsing public key url\"\nCLEAN_URL=\"${PUBLIC_KEY_URL#k8s://}\"\nNS=\"${CLEAN_URL%/*}\"\nSECRET=\"${CLEAN_URL##*/}\"\nCOSIGN_PUBLIC_KEY=$(oc get secrets $SECRET -n $NS -o json | jq -r '.data.\"cosign.pub\"')\necho $COSIGN_PUBLIC_KEY \u003e $(results.COSIGN_PUBLIC_KEY.path)\n"
                                    },
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "get-images",
                                        "script": "echo \"running gather-images-to-upload-sbom\"\n$(workspaces.source.path)/tssc/gather-images-to-upload-sbom.sh\nmv ./results/gather-deploy-images ./results/sbom-images \ncat ./results/sbom-images/IMAGES_TO_VERIFY \u003e $(results.SBOM_IMAGES.path)\n\necho \"running gather-deploy-images\"\n$(workspaces.source.path)/tssc/gather-deploy-images.sh\ncat ./results/gather-deploy-images/IMAGES_TO_VERIFY \u003e $(results.CONFORMA_IMAGES.path)\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "verify-conforma",
                            "params": [
                                {
                                    "name": "STRICT",
                                    "value": "$(params.ec-strict)"
                                },
                                {
                                    "name": "POLICY_CONFIGURATION",
                                    "value": "$(params.ec-policy-configuration)"
                                },
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Verify the enterprise contract is met",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "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": "true",
                                        "description": "Fail the task if policy fails. Set to `\"false\"` to disable it.",
                                        "name": "STRICT",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Short summary of the policy evaluation for each image.",
                                        "name": "TEST_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STRICT",
                                            "value": "$(params.STRICT)"
                                        },
                                        {
                                            "name": "POLICY_CONFIGURATION",
                                            "value": "$(params.POLICY_CONFIGURATION)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "verify",
                                        "script": "echo \"running verify-conforma\"\n$(workspaces.source.path)/tssc/verify-conforma.sh\ncat ./results/verify-conforma/TEST_OUTPUT \u003e $(results.TEST_OUTPUT.path)\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.CONFORMA_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "download-sboms",
                            "params": [
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                },
                                {
                                    "name": "SBOM_IMAGES",
                                    "value": "$(tasks.get-images.results.SBOM_IMAGES)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Download SBOM from images",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Images to be considered for SBOM download.",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        },
                                        {
                                            "name": "IMAGES",
                                            "value": "$(params.SBOM_IMAGES)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "download",
                                        "script": "echo \"running download-sbom-from-url-in-attestation\"\n$(workspaces.source.path)/tssc/download-sbom-from-url-in-attestation.sh\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "upload-sboms",
                            "params": [
                                {
                                    "name": "TPA_SECRET",
                                    "value": "$(params.trustification-secret-name)"
                                }
                            ],
                            "runAfter": [
                                "download-sboms"
                            ],
                            "taskSpec": {
                                "description": "Upload SBOMs to Trustification",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "TPA Secret to obtain Trustification vars from.",
                                        "name": "TPA_SECRET",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "bombastic_api_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_id",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_secret",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_issuer_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "upload",
                                        "script": "echo \"running upload-sbom-to-trustification\"\n$(workspaces.source.path)/tssc/upload-sbom-to-trustification.sh\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "taskRunTemplate": {
                    "serviceAccountName": "pipeline"
                },
                "timeouts": {
                    "pipeline": "1h0m0s"
                },
                "workspaces": [
                    {
                        "name": "git-auth",
                        "secret": {
                            "secretName": "pac-gitauth-wdpewb"
                        }
                    },
                    {
                        "name": "workspace",
                        "volumeClaimTemplate": {
                            "metadata": {
                                "creationTimestamp": null
                            },
                            "spec": {
                                "accessModes": [
                                    "ReadWriteOnce"
                                ],
                                "resources": {
                                    "requests": {
                                        "storage": "1Gi"
                                    }
                                }
                            },
                            "status": {}
                        }
                    }
                ]
            },
            "status": {
                "childReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-node2eeb5ea29e4a957d41c9f650fa452deb-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs-bms2eeb5ea29e4a957d41c9f650fa452deb-get-images",
                        "pipelineTaskName": "get-images"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodej2eeb5ea29e4a957d41c9f650fa452deb-verify-conforma",
                        "pipelineTaskName": "verify-conforma",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-nodejs-bmscnquq:43723013ddeeb6f00ff4b5c1f3139bf0503a777d\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs2eeb5ea29e4a957d41c9f650fa452deb-download-sboms",
                        "pipelineTaskName": "download-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-nodejs-bmscnquq:43723013ddeeb6f00ff4b5c1f3139bf0503a777d\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs-b2eeb5ea29e4a957d41c9f650fa452deb-upload-sboms",
                        "pipelineTaskName": "upload-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-nodejs-bmscnquq:43723013ddeeb6f00ff4b5c1f3139bf0503a777d\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    }
                ],
                "completionTime": "2026-04-27T16:39:24Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-27T16:39:24Z",
                        "message": "Tasks Completed: 5 (Failed: 0, Cancelled 0), Skipped: 0",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Gitops repo url",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Gitops repo revision",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "default": "main",
                            "description": "The target branch for the pull request",
                            "name": "target-branch",
                            "type": "string"
                        },
                        {
                            "default": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7",
                            "description": "Enterprise Contract policy to validate against",
                            "name": "ec-policy-configuration",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should EC violations cause the pipeline to fail?",
                            "name": "ec-strict",
                            "type": "string"
                        },
                        {
                            "default": "k8s://$(context.pipelineRun.namespace)/cosign-pub",
                            "description": "The public key that EC should use to verify signatures",
                            "name": "ec-public-key",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should the pipeline fail when there are SBOMs to upload but Trustification is not properly configured (i.e. the secret is missing or doesn't have all the required keys)?",
                            "name": "fail-if-trustification-not-configured",
                            "type": "string"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-bmscnquq-gitops"
                                },
                                {
                                    "name": "revision",
                                    "value": "104bd923d21cb462d11d6f0172d6ddb3774df017"
                                },
                                {
                                    "name": "fetchTags",
                                    "value": "true"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "104bd923d21cb462d11d6f0172d6ddb3774df017"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "get-images",
                            "params": [
                                {
                                    "name": "PUBLIC_KEY_URL",
                                    "value": "k8s://tssc-app-ci/cosign-pub"
                                },
                                {
                                    "name": "TARGET_BRANCH",
                                    "value": "main"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Extract images from deployment YAML to pass to Conforma for validation",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a valid k8s cosign reference, e.g. k8s://my-space/my-secret where my-secret contains the expected cosign.pub attribute.",
                                        "name": "PUBLIC_KEY_URL",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "If specified, will gather only the images that changed between the current revision and the target branch. Useful for pull requests. Note that the repository cloned on the source workspace must already contain the origin/$TARGET_BRANCH reference.\n",
                                        "name": "TARGET_BRANCH",
                                        "type": "string"
                                    },
                                    {
                                        "default": [
                                            "development",
                                            "stage",
                                            "prod"
                                        ],
                                        "description": "Gather images from the manifest files for the specified environments",
                                        "name": "ENVIRONMENTS",
                                        "type": "array"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Cosign base64 encoded public key fetched from secrets.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images with SBOMs to upload to Trustification \n",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images to be verified, in a format compatible with https://github.com/konflux-ci/build-definitions/tree/main/task/verify-enterprise-contract/0.1. When there are no images to verify, this is an empty string.\n",
                                        "name": "CONFORMA_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TARGET_BRANCH",
                                            "value": "$(params.TARGET_BRANCH)"
                                        },
                                        {
                                            "name": "PUBLIC_KEY_URL",
                                            "value": "$(params.PUBLIC_KEY_URL)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TARGET_BRANCH",
                                                "value": "$(params.TARGET_BRANCH)"
                                            },
                                            {
                                                "name": "PUBLIC_KEY_URL",
                                                "value": "$(params.PUBLIC_KEY_URL)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "pwd\nls -la\n# Sync scripts to the writable workspace\ncp -rf /work/tssc/ $(workspaces.source.path)/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e $(workspaces.source.path)/tssc/common.sh\necho \"Successfully patched $(workspaces.source.path)/tssc/common.sh\"\n\necho \"Parsing public key url\"\nCLEAN_URL=\"${PUBLIC_KEY_URL#k8s://}\"\nNS=\"${CLEAN_URL%/*}\"\nSECRET=\"${CLEAN_URL##*/}\"\nCOSIGN_PUBLIC_KEY=$(oc get secrets $SECRET -n $NS -o json | jq -r '.data.\"cosign.pub\"')\necho $COSIGN_PUBLIC_KEY \u003e $(results.COSIGN_PUBLIC_KEY.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TARGET_BRANCH",
                                                "value": "$(params.TARGET_BRANCH)"
                                            },
                                            {
                                                "name": "PUBLIC_KEY_URL",
                                                "value": "$(params.PUBLIC_KEY_URL)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "get-images",
                                        "script": "echo \"running gather-images-to-upload-sbom\"\n$(workspaces.source.path)/tssc/gather-images-to-upload-sbom.sh\nmv ./results/gather-deploy-images ./results/sbom-images \ncat ./results/sbom-images/IMAGES_TO_VERIFY \u003e $(results.SBOM_IMAGES.path)\n\necho \"running gather-deploy-images\"\n$(workspaces.source.path)/tssc/gather-deploy-images.sh\ncat ./results/gather-deploy-images/IMAGES_TO_VERIFY \u003e $(results.CONFORMA_IMAGES.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "verify-conforma",
                            "params": [
                                {
                                    "name": "STRICT",
                                    "value": "true"
                                },
                                {
                                    "name": "POLICY_CONFIGURATION",
                                    "value": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7"
                                },
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Verify the enterprise contract is met",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "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": "true",
                                        "description": "Fail the task if policy fails. Set to `\"false\"` to disable it.",
                                        "name": "STRICT",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Short summary of the policy evaluation for each image.",
                                        "name": "TEST_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STRICT",
                                            "value": "$(params.STRICT)"
                                        },
                                        {
                                            "name": "POLICY_CONFIGURATION",
                                            "value": "$(params.POLICY_CONFIGURATION)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STRICT",
                                                "value": "$(params.STRICT)"
                                            },
                                            {
                                                "name": "POLICY_CONFIGURATION",
                                                "value": "$(params.POLICY_CONFIGURATION)"
                                            },
                                            {
                                                "name": "REKOR_HOST",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rekor_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TUF_MIRROR",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "tuf_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "value": "$(params.COSIGN_PUBLIC_KEY)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "verify",
                                        "script": "echo \"running verify-conforma\"\n$(workspaces.source.path)/tssc/verify-conforma.sh\ncat ./results/verify-conforma/TEST_OUTPUT \u003e $(results.TEST_OUTPUT.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.CONFORMA_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "download-sboms",
                            "params": [
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                },
                                {
                                    "name": "SBOM_IMAGES",
                                    "value": "$(tasks.get-images.results.SBOM_IMAGES)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Download SBOM from images",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Images to be considered for SBOM download.",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        },
                                        {
                                            "name": "IMAGES",
                                            "value": "$(params.SBOM_IMAGES)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "value": "$(params.COSIGN_PUBLIC_KEY)"
                                            },
                                            {
                                                "name": "IMAGES",
                                                "value": "$(params.SBOM_IMAGES)"
                                            },
                                            {
                                                "name": "REKOR_HOST",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rekor_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TUF_MIRROR",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "tuf_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "download",
                                        "script": "echo \"running download-sbom-from-url-in-attestation\"\n$(workspaces.source.path)/tssc/download-sbom-from-url-in-attestation.sh\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "upload-sboms",
                            "params": [
                                {
                                    "name": "TPA_SECRET",
                                    "value": "tpa-secret"
                                }
                            ],
                            "runAfter": [
                                "download-sboms"
                            ],
                            "taskSpec": {
                                "description": "Upload SBOMs to Trustification",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "TPA Secret to obtain Trustification vars from.",
                                        "name": "TPA_SECRET",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "bombastic_api_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_id",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_secret",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_issuer_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "bombastic_api_url",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_client_id",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_client_secret",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_issuer_url",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "upload",
                                        "script": "echo \"running upload-sbom-to-trustification\"\n$(workspaces.source.path)/tssc/upload-sbom-to-trustification.sh\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "startTime": "2026-04-27T16:38:36Z"
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "PipelineRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "chains.tekton.dev/transparency": "https://rekor-server-tssc-tas.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/api/v1/log/entries?logIndex=99",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "73233954780",
                    "pipelinesascode.tekton.dev/controller-info": "{\"name\":\"default\",\"configmap\":\"pipelines-as-code\",\"secret\":\"pipelines-as-code-secret\", \"gRepo\": \"pipelines-as-code\"}",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/git-auth-secret": "pac-gitauth-moyoub",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-nodejs-bmscnquq-gitops-on-pull-request-7sbk7",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-nodejs-bmscnquq-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pipeline": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/pipelines/gitops-pull-request-tssc.yaml",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-bmscnquq-gitops",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-nodejs-bmscnquq-gitops-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "8ace581f5421fe5b4065e822218c83eb11600323",
                    "pipelinesascode.tekton.dev/sha-title": "Promote to stage environment",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-bmscnquq-gitops/commit/8ace581f5421fe5b4065e822218c83eb11600323",
                    "pipelinesascode.tekton.dev/source-branch": "promote-to-stage-1777307793130",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-bmscnquq-gitops",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/task-0": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/git-clone.yaml",
                    "pipelinesascode.tekton.dev/task-1": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/gather-deploy-images.yaml",
                    "pipelinesascode.tekton.dev/task-2": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/verify-enterprise-contract.yaml",
                    "pipelinesascode.tekton.dev/task-3": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/gather-deploy-images.yaml",
                    "pipelinesascode.tekton.dev/task-4": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/download-sbom-from-url-in-attestation.yaml",
                    "pipelinesascode.tekton.dev/task-5": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/upload-sbom-to-trustification.yaml",
                    "pipelinesascode.tekton.dev/task-6": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/fetch-gitops-images.yaml",
                    "pipelinesascode.tekton.dev/task-7": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/verify-gitops-conforma.yaml",
                    "pipelinesascode.tekton.dev/task-8": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/download-gitops-sbom.yaml",
                    "pipelinesascode.tekton.dev/task-9": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/upload-gitops-sbom.yaml",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-nodejs-bmscnquq-gitops",
                    "results.tekton.dev/record": "tssc-app-ci/results/835a3c70-db5e-4e03-9cd7-2e29b33652d3/records/835a3c70-db5e-4e03-9cd7-2e29b33652d3",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-nodejs-bmscnquq-gitops\",\"commit\":\"8ace581f5421fe5b4065e822218c83eb11600323\",\"eventType\":\"pull_request\",\"pull_request-id\":1}",
                    "results.tekton.dev/result": "tssc-app-ci/results/835a3c70-db5e-4e03-9cd7-2e29b33652d3",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-27T16:36:44Z",
                "finalizers": [
                    "results.tekton.dev/pipelinerun",
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer"
                ],
                "generateName": "e2e-tests-nodejs-bmscnquq-gitops-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-nodejs-bmscnquq",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-nodejs-bmscnquq",
                    "backstage.io/kubernetes-id": "e2e-tests-nodejs-bmscnquq",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-nodejs-bmscnquq",
                    "pipelinesascode.tekton.dev/check-run-id": "73233954780",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-nodejs-bmscnquq-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-nodejs-bmscnquq-gitops-repository",
                    "pipelinesascode.tekton.dev/sha": "8ace581f5421fe5b4065e822218c83eb11600323",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-nodejs-bmscnquq-gitops",
                    "tekton.dev/pipeline": "e2e-tests-nodejs-bmscnquq-gitops-on-pull-request-7sbk7"
                },
                "name": "e2e-tests-nodejs-bmscnquq-gitops-on-pull-request-7sbk7",
                "namespace": "tssc-app-ci",
                "resourceVersion": "48961",
                "uid": "835a3c70-db5e-4e03-9cd7-2e29b33652d3"
            },
            "spec": {
                "params": [
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-bmscnquq-gitops"
                    },
                    {
                        "name": "revision",
                        "value": "8ace581f5421fe5b4065e822218c83eb11600323"
                    },
                    {
                        "name": "target-branch",
                        "value": "main"
                    },
                    {
                        "name": "fail-if-trustification-not-configured",
                        "value": "false"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Gitops repo url",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Gitops repo revision",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "default": "main",
                            "description": "The target branch for the pull request",
                            "name": "target-branch",
                            "type": "string"
                        },
                        {
                            "default": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7",
                            "description": "Enterprise Contract policy to validate against",
                            "name": "ec-policy-configuration",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should EC violations cause the pipeline to fail?",
                            "name": "ec-strict",
                            "type": "string"
                        },
                        {
                            "default": "k8s://$(context.pipelineRun.namespace)/cosign-pub",
                            "description": "The public key that EC should use to verify signatures",
                            "name": "ec-public-key",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should the pipeline fail when there are SBOMs to upload but Trustification is not properly configured (i.e. the secret is missing or doesn't have all the required keys)?",
                            "name": "fail-if-trustification-not-configured",
                            "type": "string"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "$(params.git-url)"
                                },
                                {
                                    "name": "revision",
                                    "value": "$(params.revision)"
                                },
                                {
                                    "name": "fetchTags",
                                    "value": "true"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "$(params.revision)"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "get-images",
                            "params": [
                                {
                                    "name": "PUBLIC_KEY_URL",
                                    "value": "$(params.ec-public-key)"
                                },
                                {
                                    "name": "TARGET_BRANCH",
                                    "value": "$(params.target-branch)"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Extract images from deployment YAML to pass to Conforma for validation",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a valid k8s cosign reference, e.g. k8s://my-space/my-secret where my-secret contains the expected cosign.pub attribute.",
                                        "name": "PUBLIC_KEY_URL",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "If specified, will gather only the images that changed between the current revision and the target branch. Useful for pull requests. Note that the repository cloned on the source workspace must already contain the origin/$TARGET_BRANCH reference.\n",
                                        "name": "TARGET_BRANCH",
                                        "type": "string"
                                    },
                                    {
                                        "default": [
                                            "development",
                                            "stage",
                                            "prod"
                                        ],
                                        "description": "Gather images from the manifest files for the specified environments",
                                        "name": "ENVIRONMENTS",
                                        "type": "array"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Cosign base64 encoded public key fetched from secrets.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images with SBOMs to upload to Trustification \n",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images to be verified, in a format compatible with https://github.com/konflux-ci/build-definitions/tree/main/task/verify-enterprise-contract/0.1. When there are no images to verify, this is an empty string.\n",
                                        "name": "CONFORMA_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TARGET_BRANCH",
                                            "value": "$(params.TARGET_BRANCH)"
                                        },
                                        {
                                            "name": "PUBLIC_KEY_URL",
                                            "value": "$(params.PUBLIC_KEY_URL)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "pwd\nls -la\n# Sync scripts to the writable workspace\ncp -rf /work/tssc/ $(workspaces.source.path)/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e $(workspaces.source.path)/tssc/common.sh\necho \"Successfully patched $(workspaces.source.path)/tssc/common.sh\"\n\necho \"Parsing public key url\"\nCLEAN_URL=\"${PUBLIC_KEY_URL#k8s://}\"\nNS=\"${CLEAN_URL%/*}\"\nSECRET=\"${CLEAN_URL##*/}\"\nCOSIGN_PUBLIC_KEY=$(oc get secrets $SECRET -n $NS -o json | jq -r '.data.\"cosign.pub\"')\necho $COSIGN_PUBLIC_KEY \u003e $(results.COSIGN_PUBLIC_KEY.path)\n"
                                    },
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "get-images",
                                        "script": "echo \"running gather-images-to-upload-sbom\"\n$(workspaces.source.path)/tssc/gather-images-to-upload-sbom.sh\nmv ./results/gather-deploy-images ./results/sbom-images \ncat ./results/sbom-images/IMAGES_TO_VERIFY \u003e $(results.SBOM_IMAGES.path)\n\necho \"running gather-deploy-images\"\n$(workspaces.source.path)/tssc/gather-deploy-images.sh\ncat ./results/gather-deploy-images/IMAGES_TO_VERIFY \u003e $(results.CONFORMA_IMAGES.path)\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "verify-conforma",
                            "params": [
                                {
                                    "name": "STRICT",
                                    "value": "$(params.ec-strict)"
                                },
                                {
                                    "name": "POLICY_CONFIGURATION",
                                    "value": "$(params.ec-policy-configuration)"
                                },
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Verify the enterprise contract is met",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "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": "true",
                                        "description": "Fail the task if policy fails. Set to `\"false\"` to disable it.",
                                        "name": "STRICT",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Short summary of the policy evaluation for each image.",
                                        "name": "TEST_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STRICT",
                                            "value": "$(params.STRICT)"
                                        },
                                        {
                                            "name": "POLICY_CONFIGURATION",
                                            "value": "$(params.POLICY_CONFIGURATION)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "verify",
                                        "script": "echo \"running verify-conforma\"\n$(workspaces.source.path)/tssc/verify-conforma.sh\ncat ./results/verify-conforma/TEST_OUTPUT \u003e $(results.TEST_OUTPUT.path)\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.CONFORMA_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "download-sboms",
                            "params": [
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                },
                                {
                                    "name": "SBOM_IMAGES",
                                    "value": "$(tasks.get-images.results.SBOM_IMAGES)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Download SBOM from images",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Images to be considered for SBOM download.",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        },
                                        {
                                            "name": "IMAGES",
                                            "value": "$(params.SBOM_IMAGES)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "download",
                                        "script": "echo \"running download-sbom-from-url-in-attestation\"\n$(workspaces.source.path)/tssc/download-sbom-from-url-in-attestation.sh\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "upload-sboms",
                            "params": [
                                {
                                    "name": "TPA_SECRET",
                                    "value": "$(params.trustification-secret-name)"
                                }
                            ],
                            "runAfter": [
                                "download-sboms"
                            ],
                            "taskSpec": {
                                "description": "Upload SBOMs to Trustification",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "TPA Secret to obtain Trustification vars from.",
                                        "name": "TPA_SECRET",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "bombastic_api_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_id",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_secret",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_issuer_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "upload",
                                        "script": "echo \"running upload-sbom-to-trustification\"\n$(workspaces.source.path)/tssc/upload-sbom-to-trustification.sh\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "taskRunTemplate": {
                    "serviceAccountName": "pipeline"
                },
                "timeouts": {
                    "pipeline": "1h0m0s"
                },
                "workspaces": [
                    {
                        "name": "git-auth",
                        "secret": {
                            "secretName": "pac-gitauth-moyoub"
                        }
                    },
                    {
                        "name": "workspace",
                        "volumeClaimTemplate": {
                            "metadata": {
                                "creationTimestamp": null
                            },
                            "spec": {
                                "accessModes": [
                                    "ReadWriteOnce"
                                ],
                                "resources": {
                                    "requests": {
                                        "storage": "1Gi"
                                    }
                                }
                            },
                            "status": {}
                        }
                    }
                ]
            },
            "status": {
                "childReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-noded570d844f703f2e6d35fcb6787559c3b-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs-bmsd570d844f703f2e6d35fcb6787559c3b-get-images",
                        "pipelineTaskName": "get-images"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejd570d844f703f2e6d35fcb6787559c3b-verify-conforma",
                        "pipelineTaskName": "verify-conforma",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-nodejs-bmscnquq:43723013ddeeb6f00ff4b5c1f3139bf0503a777d\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejsd570d844f703f2e6d35fcb6787559c3b-download-sboms",
                        "pipelineTaskName": "download-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-nodejs-bmscnquq:43723013ddeeb6f00ff4b5c1f3139bf0503a777d\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs-bd570d844f703f2e6d35fcb6787559c3b-upload-sboms",
                        "pipelineTaskName": "upload-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-nodejs-bmscnquq:43723013ddeeb6f00ff4b5c1f3139bf0503a777d\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    }
                ],
                "completionTime": "2026-04-27T16:37:30Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-27T16:37:30Z",
                        "message": "Tasks Completed: 5 (Failed: 0, Cancelled 0), Skipped: 0",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Gitops repo url",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Gitops repo revision",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "default": "main",
                            "description": "The target branch for the pull request",
                            "name": "target-branch",
                            "type": "string"
                        },
                        {
                            "default": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7",
                            "description": "Enterprise Contract policy to validate against",
                            "name": "ec-policy-configuration",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should EC violations cause the pipeline to fail?",
                            "name": "ec-strict",
                            "type": "string"
                        },
                        {
                            "default": "k8s://$(context.pipelineRun.namespace)/cosign-pub",
                            "description": "The public key that EC should use to verify signatures",
                            "name": "ec-public-key",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should the pipeline fail when there are SBOMs to upload but Trustification is not properly configured (i.e. the secret is missing or doesn't have all the required keys)?",
                            "name": "fail-if-trustification-not-configured",
                            "type": "string"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-bmscnquq-gitops"
                                },
                                {
                                    "name": "revision",
                                    "value": "8ace581f5421fe5b4065e822218c83eb11600323"
                                },
                                {
                                    "name": "fetchTags",
                                    "value": "true"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "8ace581f5421fe5b4065e822218c83eb11600323"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "get-images",
                            "params": [
                                {
                                    "name": "PUBLIC_KEY_URL",
                                    "value": "k8s://tssc-app-ci/cosign-pub"
                                },
                                {
                                    "name": "TARGET_BRANCH",
                                    "value": "main"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Extract images from deployment YAML to pass to Conforma for validation",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a valid k8s cosign reference, e.g. k8s://my-space/my-secret where my-secret contains the expected cosign.pub attribute.",
                                        "name": "PUBLIC_KEY_URL",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "If specified, will gather only the images that changed between the current revision and the target branch. Useful for pull requests. Note that the repository cloned on the source workspace must already contain the origin/$TARGET_BRANCH reference.\n",
                                        "name": "TARGET_BRANCH",
                                        "type": "string"
                                    },
                                    {
                                        "default": [
                                            "development",
                                            "stage",
                                            "prod"
                                        ],
                                        "description": "Gather images from the manifest files for the specified environments",
                                        "name": "ENVIRONMENTS",
                                        "type": "array"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Cosign base64 encoded public key fetched from secrets.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images with SBOMs to upload to Trustification \n",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images to be verified, in a format compatible with https://github.com/konflux-ci/build-definitions/tree/main/task/verify-enterprise-contract/0.1. When there are no images to verify, this is an empty string.\n",
                                        "name": "CONFORMA_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TARGET_BRANCH",
                                            "value": "$(params.TARGET_BRANCH)"
                                        },
                                        {
                                            "name": "PUBLIC_KEY_URL",
                                            "value": "$(params.PUBLIC_KEY_URL)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TARGET_BRANCH",
                                                "value": "$(params.TARGET_BRANCH)"
                                            },
                                            {
                                                "name": "PUBLIC_KEY_URL",
                                                "value": "$(params.PUBLIC_KEY_URL)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "pwd\nls -la\n# Sync scripts to the writable workspace\ncp -rf /work/tssc/ $(workspaces.source.path)/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e $(workspaces.source.path)/tssc/common.sh\necho \"Successfully patched $(workspaces.source.path)/tssc/common.sh\"\n\necho \"Parsing public key url\"\nCLEAN_URL=\"${PUBLIC_KEY_URL#k8s://}\"\nNS=\"${CLEAN_URL%/*}\"\nSECRET=\"${CLEAN_URL##*/}\"\nCOSIGN_PUBLIC_KEY=$(oc get secrets $SECRET -n $NS -o json | jq -r '.data.\"cosign.pub\"')\necho $COSIGN_PUBLIC_KEY \u003e $(results.COSIGN_PUBLIC_KEY.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TARGET_BRANCH",
                                                "value": "$(params.TARGET_BRANCH)"
                                            },
                                            {
                                                "name": "PUBLIC_KEY_URL",
                                                "value": "$(params.PUBLIC_KEY_URL)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "get-images",
                                        "script": "echo \"running gather-images-to-upload-sbom\"\n$(workspaces.source.path)/tssc/gather-images-to-upload-sbom.sh\nmv ./results/gather-deploy-images ./results/sbom-images \ncat ./results/sbom-images/IMAGES_TO_VERIFY \u003e $(results.SBOM_IMAGES.path)\n\necho \"running gather-deploy-images\"\n$(workspaces.source.path)/tssc/gather-deploy-images.sh\ncat ./results/gather-deploy-images/IMAGES_TO_VERIFY \u003e $(results.CONFORMA_IMAGES.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "verify-conforma",
                            "params": [
                                {
                                    "name": "STRICT",
                                    "value": "true"
                                },
                                {
                                    "name": "POLICY_CONFIGURATION",
                                    "value": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7"
                                },
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Verify the enterprise contract is met",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "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": "true",
                                        "description": "Fail the task if policy fails. Set to `\"false\"` to disable it.",
                                        "name": "STRICT",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Short summary of the policy evaluation for each image.",
                                        "name": "TEST_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STRICT",
                                            "value": "$(params.STRICT)"
                                        },
                                        {
                                            "name": "POLICY_CONFIGURATION",
                                            "value": "$(params.POLICY_CONFIGURATION)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STRICT",
                                                "value": "$(params.STRICT)"
                                            },
                                            {
                                                "name": "POLICY_CONFIGURATION",
                                                "value": "$(params.POLICY_CONFIGURATION)"
                                            },
                                            {
                                                "name": "REKOR_HOST",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rekor_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TUF_MIRROR",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "tuf_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "value": "$(params.COSIGN_PUBLIC_KEY)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "verify",
                                        "script": "echo \"running verify-conforma\"\n$(workspaces.source.path)/tssc/verify-conforma.sh\ncat ./results/verify-conforma/TEST_OUTPUT \u003e $(results.TEST_OUTPUT.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.CONFORMA_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "download-sboms",
                            "params": [
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                },
                                {
                                    "name": "SBOM_IMAGES",
                                    "value": "$(tasks.get-images.results.SBOM_IMAGES)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Download SBOM from images",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Images to be considered for SBOM download.",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        },
                                        {
                                            "name": "IMAGES",
                                            "value": "$(params.SBOM_IMAGES)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "value": "$(params.COSIGN_PUBLIC_KEY)"
                                            },
                                            {
                                                "name": "IMAGES",
                                                "value": "$(params.SBOM_IMAGES)"
                                            },
                                            {
                                                "name": "REKOR_HOST",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rekor_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TUF_MIRROR",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "tuf_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "download",
                                        "script": "echo \"running download-sbom-from-url-in-attestation\"\n$(workspaces.source.path)/tssc/download-sbom-from-url-in-attestation.sh\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "upload-sboms",
                            "params": [
                                {
                                    "name": "TPA_SECRET",
                                    "value": "tpa-secret"
                                }
                            ],
                            "runAfter": [
                                "download-sboms"
                            ],
                            "taskSpec": {
                                "description": "Upload SBOMs to Trustification",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "TPA Secret to obtain Trustification vars from.",
                                        "name": "TPA_SECRET",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "bombastic_api_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_id",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_secret",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_issuer_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "bombastic_api_url",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_client_id",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_client_secret",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_issuer_url",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "upload",
                                        "script": "echo \"running upload-sbom-to-trustification\"\n$(workspaces.source.path)/tssc/upload-sbom-to-trustification.sh\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "startTime": "2026-04-27T16:36:44Z"
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "PipelineRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "chains.tekton.dev/transparency": "https://rekor-server-tssc-tas.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/api/v1/log/entries?logIndex=14",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "73233201210",
                    "pipelinesascode.tekton.dev/controller-info": "{\"name\":\"default\",\"configmap\":\"pipelines-as-code\",\"secret\":\"pipelines-as-code-secret\", \"gRepo\": \"pipelines-as-code\"}",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/git-auth-secret": "pac-gitauth-nimznq",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-nodejs-bmscnquq-on-pull-request-m57gm",
                    "pipelinesascode.tekton.dev/max-keep-runs": "2",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-nodejs-bmscnquq-on-pull-request",
                    "pipelinesascode.tekton.dev/pipeline": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/pipelines/docker-build-tssc.yaml",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-bmscnquq",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-nodejs-bmscnquq-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "dfe9792b3db4b0dc760171763289e24095897e03",
                    "pipelinesascode.tekton.dev/sha-title": "Test PR from TSSC e2e test",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-bmscnquq/commit/dfe9792b3db4b0dc760171763289e24095897e03",
                    "pipelinesascode.tekton.dev/source-branch": "test-branch-1777307521872",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-bmscnquq",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/task-0": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/init.yaml",
                    "pipelinesascode.tekton.dev/task-1": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/git-clone.yaml",
                    "pipelinesascode.tekton.dev/task-10": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/deploy-workload.yaml",
                    "pipelinesascode.tekton.dev/task-11": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/scan-workload.yaml",
                    "pipelinesascode.tekton.dev/task-12": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/summarize-workload.yaml",
                    "pipelinesascode.tekton.dev/task-13": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/show-workload-sbom.yaml",
                    "pipelinesascode.tekton.dev/task-14": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/deploy-workload-check.yaml",
                    "pipelinesascode.tekton.dev/task-2": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/buildah-rhtap.yaml",
                    "pipelinesascode.tekton.dev/task-3": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-image-check.yaml",
                    "pipelinesascode.tekton.dev/task-4": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-image-scan.yaml",
                    "pipelinesascode.tekton.dev/task-5": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-deploy-check.yaml",
                    "pipelinesascode.tekton.dev/task-6": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/update-deployment.yaml",
                    "pipelinesascode.tekton.dev/task-7": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/show-sbom-rhdh.yaml",
                    "pipelinesascode.tekton.dev/task-8": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/summary.yaml",
                    "pipelinesascode.tekton.dev/task-9": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/build-workload.yaml",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-nodejs-bmscnquq",
                    "results.tekton.dev/record": "tssc-app-ci/results/ac0e4b9f-909b-4226-bcb6-96eed1906b08/records/ac0e4b9f-909b-4226-bcb6-96eed1906b08",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-nodejs-bmscnquq\",\"commit\":\"dfe9792b3db4b0dc760171763289e24095897e03\",\"eventType\":\"pull_request\",\"pull_request-id\":1}",
                    "results.tekton.dev/result": "tssc-app-ci/results/ac0e4b9f-909b-4226-bcb6-96eed1906b08",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-27T16:32:13Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "results.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-nodejs-bmscnquq-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-nodejs-bmscnquq",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-nodejs-bmscnquq",
                    "backstage.io/kubernetes-id": "e2e-tests-nodejs-bmscnquq",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-nodejs-bmscnquq",
                    "pipelinesascode.tekton.dev/check-run-id": "73233201210",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-nodejs-bmscnquq-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-nodejs-bmscnquq-repository",
                    "pipelinesascode.tekton.dev/sha": "dfe9792b3db4b0dc760171763289e24095897e03",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-nodejs-bmscnquq",
                    "tekton.dev/pipeline": "e2e-tests-nodejs-bmscnquq-on-pull-request-m57gm"
                },
                "name": "e2e-tests-nodejs-bmscnquq-on-pull-request-m57gm",
                "namespace": "tssc-app-ci",
                "resourceVersion": "42053",
                "uid": "ac0e4b9f-909b-4226-bcb6-96eed1906b08"
            },
            "spec": {
                "params": [
                    {
                        "name": "dockerfile",
                        "value": "Dockerfile"
                    },
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-bmscnquq"
                    },
                    {
                        "name": "image-expires-after",
                        "value": "5d"
                    },
                    {
                        "name": "output-image",
                        "value": "quay.io/rhtap_qe/e2e-tests-nodejs-bmscnquq:on-pr-dfe9792b3db4b0dc760171763289e24095897e03"
                    },
                    {
                        "name": "path-context",
                        "value": "."
                    },
                    {
                        "name": "revision",
                        "value": "dfe9792b3db4b0dc760171763289e24095897e03"
                    },
                    {
                        "name": "event-type",
                        "value": "pull_request"
                    },
                    {
                        "name": "gitops-auth-secret-name",
                        "value": "gitops-auth-secret"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Source Repository URL",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Revision of the Source Repository",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "description": "Fully Qualified Output Image",
                            "name": "output-image",
                            "type": "string"
                        },
                        {
                            "default": ".",
                            "description": "Path to the source code of an application's component from where to build image.",
                            "name": "path-context",
                            "type": "string"
                        },
                        {
                            "default": "Dockerfile",
                            "description": "Path to the Dockerfile inside the context specified by parameter path-context",
                            "name": "dockerfile",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Force rebuild image",
                            "name": "rebuild",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Image tag expiration time, time values could be something like 1h, 2d, 3w for hours, days, and weeks, respectively.",
                            "name": "image-expires-after",
                            "type": "string"
                        },
                        {
                            "default": "rox-api-token",
                            "name": "stackrox-secret",
                            "type": "string"
                        },
                        {
                            "default": "gitops-auth-secret",
                            "description": "Secret name to enable this pipeline to update the gitops repo with the new image. ",
                            "name": "gitops-auth-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "cosign-pub",
                            "description": "Secret name to enable verify cosign signature. ",
                            "name": "cosign-public-key-secret",
                            "type": "string"
                        },
                        {
                            "default": "push",
                            "description": "Event that triggered the pipeline run, e.g. push, pull_request",
                            "name": "event-type",
                            "type": "string"
                        },
                        {
                            "default": [],
                            "description": "Array of --build-arg values (\"arg=value\" strings) for buildah",
                            "name": "build-args",
                            "type": "array"
                        },
                        {
                            "default": "",
                            "description": "Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                            "name": "build-args-file",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Digest of the image just built",
                            "name": "IMAGE_DIGEST",
                            "value": "$(tasks.build.results.IMAGE_DIGEST)"
                        },
                        {
                            "description": "Image repository and tag where the built image was pushed",
                            "name": "IMAGE_URL",
                            "value": "$(tasks.build.results.IMAGE_URL)"
                        },
                        {
                            "description": "Digests of the base images used for build",
                            "name": "BASE_IMAGES_DIGESTS",
                            "value": "$(tasks.build.results.BASE_IMAGES_DIGESTS)"
                        },
                        {
                            "description": "Link to the SBOM layer pushed to the registry",
                            "name": "SBOM_BLOB_URL",
                            "value": "$(tasks.build.results.SBOM_BLOB_URL)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_URL",
                            "value": "$(tasks.clone-repository.results.url)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_COMMIT",
                            "value": "$(tasks.clone-repository.results.commit)"
                        },
                        {
                            "description": "",
                            "name": "ACS_SCAN_OUTPUT",
                            "value": "$(tasks.scan.results.SCAN_OUTPUT)"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "$(params.git-url)"
                                },
                                {
                                    "name": "revision",
                                    "value": "$(params.revision)"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "$(params.revision)"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "build",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "cosign-public-secret-name",
                                    "value": "$(params.cosign-public-key-secret)"
                                },
                                {
                                    "name": "tpa_secret_name",
                                    "value": "$(params.trustification-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "DOCKERFILE",
                                    "value": "$(params.dockerfile)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                },
                                {
                                    "name": "BUILD_ARGS",
                                    "value": [
                                        "$(params.build-args[*])"
                                    ]
                                },
                                {
                                    "name": "BUILD_ARGS_FILE",
                                    "value": "$(params.build-args-file)"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Builds source code into a container image and pushes the image into container registry using buildah tool.\nIn addition it generates a SBOM file, injects the SBOM file into final container image and pushes the SBOM file as separate image using cosign tool.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "build-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "./Dockerfile",
                                        "description": "Path to the Dockerfile to build.",
                                        "name": "DOCKERFILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry)",
                                        "name": "TLSVERIFY",
                                        "type": "string"
                                    },
                                    {
                                        "default": [],
                                        "description": "Array of --build-arg values (\"arg=value\" strings)",
                                        "name": "BUILD_ARGS",
                                        "type": "array"
                                    },
                                    {
                                        "default": "",
                                        "description": "Path to a file with build arguments, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                                        "name": "BUILD_ARGS_FILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Digest of the image just built",
                                        "name": "IMAGE_DIGEST",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Image repository and tag where the built image was pushed",
                                        "name": "IMAGE_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Digests of the base images used for build",
                                        "name": "BASE_IMAGES_DIGESTS",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Link to the SBOM layer pushed to the registry as part of an OCI artifact.",
                                        "name": "SBOM_BLOB_URL",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "DOCKERFILE",
                                            "value": "$(params.DOCKERFILE)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "TLSVERIFY",
                                            "value": "$(params.TLSVERIFY)"
                                        },
                                        {
                                            "name": "BUILD_ARGS_FILE",
                                            "value": "$(params.BUILD_ARGS_FILE)"
                                        },
                                        {
                                            "name": "_BUILDAH_STARTED_IN_USERNS"
                                        },
                                        {
                                            "name": "BUILDAH_ISOLATION",
                                            "value": "chroot"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_PASSWORD",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_KEY",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.tpa_secret_name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "cosign.pub",
                                                    "name": "$(params.cosign-public-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "# Sync scripts to the writable workspace\ncp -rf /work/tssc/ /workspace/source/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e /workspace/source/tssc/common.sh\necho \"Successfully patched /workspace/source/tssc/common.sh\"\necho \"running init\"\npwd\nls -la\n/workspace/source/tssc/init.sh\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    },
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "build",
                                        "script": "echo \"running buildah-tssc\"\n/workspace/source/tssc/buildah-tssc.sh\ncat ./results/buildah-tssc/BASE_IMAGES_DIGESTS \u003e $(results.BASE_IMAGES_DIGESTS.path)\ncat ./results/buildah-tssc/IMAGE_DIGEST \u003e $(results.IMAGE_DIGEST.path)\ncat ./results/buildah-tssc/IMAGE_URL \u003e $(results.IMAGE_URL.path)\ncat ./results/buildah-tssc/SBOM_BLOB_URL \u003e $(results.SBOM_BLOB_URL.path)\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deploy",
                            "params": [
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Deploy built image to development environment.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy",
                                        "script": "echo \"running update-deployment\"\n/workspace/source/tssc/update-deployment.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(params.event-type)",
                                    "operator": "notin",
                                    "values": [
                                        "pull_request",
                                        "Merge Request"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deployment-check",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload-check",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy-check",
                                        "script": "echo \"running acs-deploy-check\"\n/workspace/source/tssc/acs-deploy-check.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(params.event-type)",
                                    "operator": "in",
                                    "values": [
                                        "push",
                                        "Push"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "scan",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "scan-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "scan",
                                        "script": "echo \"running acs-image-check\"\n/workspace/source/tssc/acs-image-check.sh\necho \"running acs-image-scan\"\n/workspace/source/tssc/acs-image-scan.sh\ncat ./results/acs-image-scan/SCAN_OUTPUT \u003e $(results.SCAN_OUTPUT.path)\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "show-sbom",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Show SBOM report for the built image.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "show-workload-sbom",
                                        "task.output.location": "results",
                                        "task.results.format": "application/text",
                                        "task.results.key": "LINK_TO_SBOM",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Placeholder result meant to make RHDH identify this task as the producer of the SBOM logs.",
                                        "name": "LINK_TO_SBOM",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "show-sbom",
                                        "script": "echo \"running show-sbom-rhdh\"\n/workspace/source/tssc/show-sbom-rhdh.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "summarize",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Summarize all the steps in the build pipeline.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "summarize-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "summary",
                                        "script": "echo \"running summary\"\n/workspace/source/tssc/summary.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "taskRunTemplate": {
                    "serviceAccountName": "pipeline"
                },
                "timeouts": {
                    "pipeline": "1h0m0s"
                },
                "workspaces": [
                    {
                        "name": "git-auth",
                        "secret": {
                            "secretName": "pac-gitauth-nimznq"
                        }
                    },
                    {
                        "name": "workspace",
                        "volumeClaimTemplate": {
                            "metadata": {
                                "creationTimestamp": null
                            },
                            "spec": {
                                "accessModes": [
                                    "ReadWriteOnce"
                                ],
                                "resources": {
                                    "requests": {
                                        "storage": "1Gi"
                                    }
                                }
                            },
                            "status": {}
                        }
                    }
                ]
            },
            "status": {
                "childReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-noded61b12849dd564a1a21493f28232fe81-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs-bmscnquq-on-pull-request-m57gm-build",
                        "pipelineTaskName": "build"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs-bmscnquq-on-pull-request-m57gm-scan",
                        "pipelineTaskName": "scan"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs-bmscnquq-on-pull-request-m57gm-show-sbom",
                        "pipelineTaskName": "show-sbom"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs-bmscnquq-on-pull-request-m57gm-summarize",
                        "pipelineTaskName": "summarize"
                    }
                ],
                "completionTime": "2026-04-27T16:34:03Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-27T16:34:03Z",
                        "message": "Tasks Completed: 5 (Failed: 0, Cancelled 0), Skipped: 2",
                        "reason": "Completed",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Source Repository URL",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Revision of the Source Repository",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "description": "Fully Qualified Output Image",
                            "name": "output-image",
                            "type": "string"
                        },
                        {
                            "default": ".",
                            "description": "Path to the source code of an application's component from where to build image.",
                            "name": "path-context",
                            "type": "string"
                        },
                        {
                            "default": "Dockerfile",
                            "description": "Path to the Dockerfile inside the context specified by parameter path-context",
                            "name": "dockerfile",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Force rebuild image",
                            "name": "rebuild",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Image tag expiration time, time values could be something like 1h, 2d, 3w for hours, days, and weeks, respectively.",
                            "name": "image-expires-after",
                            "type": "string"
                        },
                        {
                            "default": "rox-api-token",
                            "name": "stackrox-secret",
                            "type": "string"
                        },
                        {
                            "default": "gitops-auth-secret",
                            "description": "Secret name to enable this pipeline to update the gitops repo with the new image. ",
                            "name": "gitops-auth-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "cosign-pub",
                            "description": "Secret name to enable verify cosign signature. ",
                            "name": "cosign-public-key-secret",
                            "type": "string"
                        },
                        {
                            "default": "push",
                            "description": "Event that triggered the pipeline run, e.g. push, pull_request",
                            "name": "event-type",
                            "type": "string"
                        },
                        {
                            "default": [],
                            "description": "Array of --build-arg values (\"arg=value\" strings) for buildah",
                            "name": "build-args",
                            "type": "array"
                        },
                        {
                            "default": "",
                            "description": "Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                            "name": "build-args-file",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Digest of the image just built",
                            "name": "IMAGE_DIGEST",
                            "value": "$(tasks.build.results.IMAGE_DIGEST)"
                        },
                        {
                            "description": "Image repository and tag where the built image was pushed",
                            "name": "IMAGE_URL",
                            "value": "$(tasks.build.results.IMAGE_URL)"
                        },
                        {
                            "description": "Digests of the base images used for build",
                            "name": "BASE_IMAGES_DIGESTS",
                            "value": "$(tasks.build.results.BASE_IMAGES_DIGESTS)"
                        },
                        {
                            "description": "Link to the SBOM layer pushed to the registry",
                            "name": "SBOM_BLOB_URL",
                            "value": "$(tasks.build.results.SBOM_BLOB_URL)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_URL",
                            "value": "$(tasks.clone-repository.results.url)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_COMMIT",
                            "value": "$(tasks.clone-repository.results.commit)"
                        },
                        {
                            "description": "",
                            "name": "ACS_SCAN_OUTPUT",
                            "value": "$(tasks.scan.results.SCAN_OUTPUT)"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-bmscnquq"
                                },
                                {
                                    "name": "revision",
                                    "value": "dfe9792b3db4b0dc760171763289e24095897e03"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "dfe9792b3db4b0dc760171763289e24095897e03"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "build",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "cosign-public-secret-name",
                                    "value": "cosign-pub"
                                },
                                {
                                    "name": "tpa_secret_name",
                                    "value": "tpa-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-nodejs-bmscnquq:on-pr-dfe9792b3db4b0dc760171763289e24095897e03"
                                },
                                {
                                    "name": "DOCKERFILE",
                                    "value": "Dockerfile"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                },
                                {
                                    "name": "BUILD_ARGS",
                                    "value": []
                                },
                                {
                                    "name": "BUILD_ARGS_FILE",
                                    "value": ""
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Builds source code into a container image and pushes the image into container registry using buildah tool.\nIn addition it generates a SBOM file, injects the SBOM file into final container image and pushes the SBOM file as separate image using cosign tool.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "build-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "./Dockerfile",
                                        "description": "Path to the Dockerfile to build.",
                                        "name": "DOCKERFILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry)",
                                        "name": "TLSVERIFY",
                                        "type": "string"
                                    },
                                    {
                                        "default": [],
                                        "description": "Array of --build-arg values (\"arg=value\" strings)",
                                        "name": "BUILD_ARGS",
                                        "type": "array"
                                    },
                                    {
                                        "default": "",
                                        "description": "Path to a file with build arguments, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                                        "name": "BUILD_ARGS_FILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Digest of the image just built",
                                        "name": "IMAGE_DIGEST",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Image repository and tag where the built image was pushed",
                                        "name": "IMAGE_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Digests of the base images used for build",
                                        "name": "BASE_IMAGES_DIGESTS",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Link to the SBOM layer pushed to the registry as part of an OCI artifact.",
                                        "name": "SBOM_BLOB_URL",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "DOCKERFILE",
                                            "value": "$(params.DOCKERFILE)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "TLSVERIFY",
                                            "value": "$(params.TLSVERIFY)"
                                        },
                                        {
                                            "name": "BUILD_ARGS_FILE",
                                            "value": "$(params.BUILD_ARGS_FILE)"
                                        },
                                        {
                                            "name": "_BUILDAH_STARTED_IN_USERNS"
                                        },
                                        {
                                            "name": "BUILDAH_ISOLATION",
                                            "value": "chroot"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_PASSWORD",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_KEY",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.tpa_secret_name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "cosign.pub",
                                                    "name": "$(params.cosign-public-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "DOCKERFILE",
                                                "value": "$(params.DOCKERFILE)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "TLSVERIFY",
                                                "value": "$(params.TLSVERIFY)"
                                            },
                                            {
                                                "name": "BUILD_ARGS_FILE",
                                                "value": "$(params.BUILD_ARGS_FILE)"
                                            },
                                            {
                                                "name": "_BUILDAH_STARTED_IN_USERNS"
                                            },
                                            {
                                                "name": "BUILDAH_ISOLATION",
                                                "value": "chroot"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_PASSWORD",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_KEY",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.tpa_secret_name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "cosign.pub",
                                                        "name": "$(params.cosign-public-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "# Sync scripts to the writable workspace\ncp -rf /work/tssc/ /workspace/source/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e /workspace/source/tssc/common.sh\necho \"Successfully patched /workspace/source/tssc/common.sh\"\necho \"running init\"\npwd\nls -la\n/workspace/source/tssc/init.sh\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    },
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "DOCKERFILE",
                                                "value": "$(params.DOCKERFILE)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "TLSVERIFY",
                                                "value": "$(params.TLSVERIFY)"
                                            },
                                            {
                                                "name": "BUILD_ARGS_FILE",
                                                "value": "$(params.BUILD_ARGS_FILE)"
                                            },
                                            {
                                                "name": "_BUILDAH_STARTED_IN_USERNS"
                                            },
                                            {
                                                "name": "BUILDAH_ISOLATION",
                                                "value": "chroot"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_PASSWORD",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_KEY",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.tpa_secret_name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "cosign.pub",
                                                        "name": "$(params.cosign-public-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "build",
                                        "script": "echo \"running buildah-tssc\"\n/workspace/source/tssc/buildah-tssc.sh\ncat ./results/buildah-tssc/BASE_IMAGES_DIGESTS \u003e $(results.BASE_IMAGES_DIGESTS.path)\ncat ./results/buildah-tssc/IMAGE_DIGEST \u003e $(results.IMAGE_DIGEST.path)\ncat ./results/buildah-tssc/IMAGE_URL \u003e $(results.IMAGE_URL.path)\ncat ./results/buildah-tssc/SBOM_BLOB_URL \u003e $(results.SBOM_BLOB_URL.path)\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deploy",
                            "params": [
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-nodejs-bmscnquq:on-pr-dfe9792b3db4b0dc760171763289e24095897e03"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Deploy built image to development environment.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy",
                                        "script": "echo \"running update-deployment\"\n/workspace/source/tssc/update-deployment.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "pull_request",
                                    "operator": "notin",
                                    "values": [
                                        "pull_request",
                                        "Merge Request"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deployment-check",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-nodejs-bmscnquq:on-pr-dfe9792b3db4b0dc760171763289e24095897e03"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload-check",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy-check",
                                        "script": "echo \"running acs-deploy-check\"\n/workspace/source/tssc/acs-deploy-check.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "pull_request",
                                    "operator": "in",
                                    "values": [
                                        "push",
                                        "Push"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "scan",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-nodejs-bmscnquq:on-pr-dfe9792b3db4b0dc760171763289e24095897e03"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "scan-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "scan",
                                        "script": "echo \"running acs-image-check\"\n/workspace/source/tssc/acs-image-check.sh\necho \"running acs-image-scan\"\n/workspace/source/tssc/acs-image-scan.sh\ncat ./results/acs-image-scan/SCAN_OUTPUT \u003e $(results.SCAN_OUTPUT.path)\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "show-sbom",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-nodejs-bmscnquq:on-pr-dfe9792b3db4b0dc760171763289e24095897e03"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Show SBOM report for the built image.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "show-workload-sbom",
                                        "task.output.location": "results",
                                        "task.results.format": "application/text",
                                        "task.results.key": "LINK_TO_SBOM",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Placeholder result meant to make RHDH identify this task as the producer of the SBOM logs.",
                                        "name": "LINK_TO_SBOM",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "show-sbom",
                                        "script": "echo \"running show-sbom-rhdh\"\n/workspace/source/tssc/show-sbom-rhdh.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "summarize",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-nodejs-bmscnquq:on-pr-dfe9792b3db4b0dc760171763289e24095897e03"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Summarize all the steps in the build pipeline.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "summarize-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "summary",
                                        "script": "echo \"running summary\"\n/workspace/source/tssc/summary.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "results": [
                    {
                        "name": "IMAGE_DIGEST",
                        "value": "sha256:ea2dc0112a476a5bee04904b34686b0f8bd00a2d87df38dc82fd6ef1c380934f"
                    },
                    {
                        "name": "IMAGE_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-nodejs-bmscnquq:on-pr-dfe9792b3db4b0dc760171763289e24095897e03"
                    },
                    {
                        "name": "BASE_IMAGES_DIGESTS",
                        "value": "registry.access.redhat.com/ubi9/nodejs-22:latest@sha256:d4a687c72950936d298c98d37bd1be962449af336ebd6c8aa00b94971e6894c0\nregistry.access.redhat.com/ubi9/nodejs-22-minimal:latest@sha256:670c207e6872898228015fa8ec2e4165cfa13089a9e5fccb4f9c6d6cda2811ba\n"
                    },
                    {
                        "name": "SBOM_BLOB_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-nodejs-bmscnquq@sha256:c835e31e561cff64f011fde1130091c953c79a22b88f36d84617c8daa875100f"
                    },
                    {
                        "name": "CHAINS-GIT_URL",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-bmscnquq"
                    },
                    {
                        "name": "CHAINS-GIT_COMMIT",
                        "value": "dfe9792b3db4b0dc760171763289e24095897e03"
                    },
                    {
                        "name": "ACS_SCAN_OUTPUT",
                        "value": "{\"vulnerabilities\":{\"critical\":0,\"high\":2,\"medium\":48,\"low\":49}}\n"
                    }
                ],
                "skippedTasks": [
                    {
                        "name": "deploy",
                        "reason": "When Expressions evaluated to false",
                        "whenExpressions": [
                            {
                                "input": "pull_request",
                                "operator": "notin",
                                "values": [
                                    "pull_request",
                                    "Merge Request"
                                ]
                            }
                        ]
                    },
                    {
                        "name": "deployment-check",
                        "reason": "When Expressions evaluated to false",
                        "whenExpressions": [
                            {
                                "input": "pull_request",
                                "operator": "in",
                                "values": [
                                    "push",
                                    "Push"
                                ]
                            }
                        ]
                    }
                ],
                "startTime": "2026-04-27T16:32:14Z"
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "PipelineRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "chains.tekton.dev/transparency": "https://rekor-server-tssc-tas.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/api/v1/log/entries?logIndex=62",
                    "pipelinesascode.tekton.dev/branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/check-run-id": "73233563270",
                    "pipelinesascode.tekton.dev/controller-info": "{\"name\":\"default\",\"configmap\":\"pipelines-as-code\",\"secret\":\"pipelines-as-code-secret\", \"gRepo\": \"pipelines-as-code\"}",
                    "pipelinesascode.tekton.dev/event-type": "push",
                    "pipelinesascode.tekton.dev/git-auth-secret": "pac-gitauth-kzbzws",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-nodejs-bmscnquq-on-push-vkwmq",
                    "pipelinesascode.tekton.dev/max-keep-runs": "2",
                    "pipelinesascode.tekton.dev/on-event": "[push]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-nodejs-bmscnquq-on-push",
                    "pipelinesascode.tekton.dev/pipeline": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/pipelines/docker-build-tssc.yaml",
                    "pipelinesascode.tekton.dev/repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-bmscnquq",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-nodejs-bmscnquq-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "43723013ddeeb6f00ff4b5c1f3139bf0503a777d",
                    "pipelinesascode.tekton.dev/sha-title": "Merge pull request #1 from rhtap-rhdh-qe/test-branch-1777307521872",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-bmscnquq/commit/43723013ddeeb6f00ff4b5c1f3139bf0503a777d",
                    "pipelinesascode.tekton.dev/source-branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-bmscnquq",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/task-0": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/init.yaml",
                    "pipelinesascode.tekton.dev/task-1": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/git-clone.yaml",
                    "pipelinesascode.tekton.dev/task-10": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/deploy-workload.yaml",
                    "pipelinesascode.tekton.dev/task-11": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/scan-workload.yaml",
                    "pipelinesascode.tekton.dev/task-12": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/summarize-workload.yaml",
                    "pipelinesascode.tekton.dev/task-13": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/show-workload-sbom.yaml",
                    "pipelinesascode.tekton.dev/task-14": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/deploy-workload-check.yaml",
                    "pipelinesascode.tekton.dev/task-2": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/buildah-rhtap.yaml",
                    "pipelinesascode.tekton.dev/task-3": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-image-check.yaml",
                    "pipelinesascode.tekton.dev/task-4": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-image-scan.yaml",
                    "pipelinesascode.tekton.dev/task-5": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-deploy-check.yaml",
                    "pipelinesascode.tekton.dev/task-6": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/update-deployment.yaml",
                    "pipelinesascode.tekton.dev/task-7": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/show-sbom-rhdh.yaml",
                    "pipelinesascode.tekton.dev/task-8": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/summary.yaml",
                    "pipelinesascode.tekton.dev/task-9": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/build-workload.yaml",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-nodejs-bmscnquq",
                    "results.tekton.dev/record": "tssc-app-ci/results/c3dd335c-69fd-4254-b459-37f9d62ba2be/records/c3dd335c-69fd-4254-b459-37f9d62ba2be",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-nodejs-bmscnquq\",\"commit\":\"43723013ddeeb6f00ff4b5c1f3139bf0503a777d\",\"eventType\":\"push\"}",
                    "results.tekton.dev/result": "tssc-app-ci/results/c3dd335c-69fd-4254-b459-37f9d62ba2be",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-27T16:34:22Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "results.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-nodejs-bmscnquq-on-push-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-nodejs-bmscnquq",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-nodejs-bmscnquq",
                    "backstage.io/kubernetes-id": "e2e-tests-nodejs-bmscnquq",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-nodejs-bmscnquq",
                    "pipelinesascode.tekton.dev/check-run-id": "73233563270",
                    "pipelinesascode.tekton.dev/event-type": "push",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-nodejs-bmscnquq-on-push",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-nodejs-bmscnquq-repository",
                    "pipelinesascode.tekton.dev/sha": "43723013ddeeb6f00ff4b5c1f3139bf0503a777d",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-nodejs-bmscnquq",
                    "tekton.dev/pipeline": "e2e-tests-nodejs-bmscnquq-on-push-vkwmq"
                },
                "name": "e2e-tests-nodejs-bmscnquq-on-push-vkwmq",
                "namespace": "tssc-app-ci",
                "resourceVersion": "46161",
                "uid": "c3dd335c-69fd-4254-b459-37f9d62ba2be"
            },
            "spec": {
                "params": [
                    {
                        "name": "dockerfile",
                        "value": "Dockerfile"
                    },
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-bmscnquq"
                    },
                    {
                        "name": "image-expires-after",
                        "value": "5d"
                    },
                    {
                        "name": "output-image",
                        "value": "quay.io/rhtap_qe/e2e-tests-nodejs-bmscnquq:43723013ddeeb6f00ff4b5c1f3139bf0503a777d"
                    },
                    {
                        "name": "path-context",
                        "value": "."
                    },
                    {
                        "name": "revision",
                        "value": "43723013ddeeb6f00ff4b5c1f3139bf0503a777d"
                    },
                    {
                        "name": "event-type",
                        "value": "push"
                    },
                    {
                        "name": "gitops-auth-secret-name",
                        "value": "gitops-auth-secret"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Source Repository URL",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Revision of the Source Repository",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "description": "Fully Qualified Output Image",
                            "name": "output-image",
                            "type": "string"
                        },
                        {
                            "default": ".",
                            "description": "Path to the source code of an application's component from where to build image.",
                            "name": "path-context",
                            "type": "string"
                        },
                        {
                            "default": "Dockerfile",
                            "description": "Path to the Dockerfile inside the context specified by parameter path-context",
                            "name": "dockerfile",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Force rebuild image",
                            "name": "rebuild",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Image tag expiration time, time values could be something like 1h, 2d, 3w for hours, days, and weeks, respectively.",
                            "name": "image-expires-after",
                            "type": "string"
                        },
                        {
                            "default": "rox-api-token",
                            "name": "stackrox-secret",
                            "type": "string"
                        },
                        {
                            "default": "gitops-auth-secret",
                            "description": "Secret name to enable this pipeline to update the gitops repo with the new image. ",
                            "name": "gitops-auth-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "cosign-pub",
                            "description": "Secret name to enable verify cosign signature. ",
                            "name": "cosign-public-key-secret",
                            "type": "string"
                        },
                        {
                            "default": "push",
                            "description": "Event that triggered the pipeline run, e.g. push, pull_request",
                            "name": "event-type",
                            "type": "string"
                        },
                        {
                            "default": [],
                            "description": "Array of --build-arg values (\"arg=value\" strings) for buildah",
                            "name": "build-args",
                            "type": "array"
                        },
                        {
                            "default": "",
                            "description": "Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                            "name": "build-args-file",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Digest of the image just built",
                            "name": "IMAGE_DIGEST",
                            "value": "$(tasks.build.results.IMAGE_DIGEST)"
                        },
                        {
                            "description": "Image repository and tag where the built image was pushed",
                            "name": "IMAGE_URL",
                            "value": "$(tasks.build.results.IMAGE_URL)"
                        },
                        {
                            "description": "Digests of the base images used for build",
                            "name": "BASE_IMAGES_DIGESTS",
                            "value": "$(tasks.build.results.BASE_IMAGES_DIGESTS)"
                        },
                        {
                            "description": "Link to the SBOM layer pushed to the registry",
                            "name": "SBOM_BLOB_URL",
                            "value": "$(tasks.build.results.SBOM_BLOB_URL)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_URL",
                            "value": "$(tasks.clone-repository.results.url)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_COMMIT",
                            "value": "$(tasks.clone-repository.results.commit)"
                        },
                        {
                            "description": "",
                            "name": "ACS_SCAN_OUTPUT",
                            "value": "$(tasks.scan.results.SCAN_OUTPUT)"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "$(params.git-url)"
                                },
                                {
                                    "name": "revision",
                                    "value": "$(params.revision)"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "$(params.revision)"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "build",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "cosign-public-secret-name",
                                    "value": "$(params.cosign-public-key-secret)"
                                },
                                {
                                    "name": "tpa_secret_name",
                                    "value": "$(params.trustification-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "DOCKERFILE",
                                    "value": "$(params.dockerfile)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                },
                                {
                                    "name": "BUILD_ARGS",
                                    "value": [
                                        "$(params.build-args[*])"
                                    ]
                                },
                                {
                                    "name": "BUILD_ARGS_FILE",
                                    "value": "$(params.build-args-file)"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Builds source code into a container image and pushes the image into container registry using buildah tool.\nIn addition it generates a SBOM file, injects the SBOM file into final container image and pushes the SBOM file as separate image using cosign tool.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "build-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "./Dockerfile",
                                        "description": "Path to the Dockerfile to build.",
                                        "name": "DOCKERFILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry)",
                                        "name": "TLSVERIFY",
                                        "type": "string"
                                    },
                                    {
                                        "default": [],
                                        "description": "Array of --build-arg values (\"arg=value\" strings)",
                                        "name": "BUILD_ARGS",
                                        "type": "array"
                                    },
                                    {
                                        "default": "",
                                        "description": "Path to a file with build arguments, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                                        "name": "BUILD_ARGS_FILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Digest of the image just built",
                                        "name": "IMAGE_DIGEST",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Image repository and tag where the built image was pushed",
                                        "name": "IMAGE_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Digests of the base images used for build",
                                        "name": "BASE_IMAGES_DIGESTS",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Link to the SBOM layer pushed to the registry as part of an OCI artifact.",
                                        "name": "SBOM_BLOB_URL",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "DOCKERFILE",
                                            "value": "$(params.DOCKERFILE)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "TLSVERIFY",
                                            "value": "$(params.TLSVERIFY)"
                                        },
                                        {
                                            "name": "BUILD_ARGS_FILE",
                                            "value": "$(params.BUILD_ARGS_FILE)"
                                        },
                                        {
                                            "name": "_BUILDAH_STARTED_IN_USERNS"
                                        },
                                        {
                                            "name": "BUILDAH_ISOLATION",
                                            "value": "chroot"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_PASSWORD",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_KEY",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.tpa_secret_name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "cosign.pub",
                                                    "name": "$(params.cosign-public-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "# Sync scripts to the writable workspace\ncp -rf /work/tssc/ /workspace/source/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e /workspace/source/tssc/common.sh\necho \"Successfully patched /workspace/source/tssc/common.sh\"\necho \"running init\"\npwd\nls -la\n/workspace/source/tssc/init.sh\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    },
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "build",
                                        "script": "echo \"running buildah-tssc\"\n/workspace/source/tssc/buildah-tssc.sh\ncat ./results/buildah-tssc/BASE_IMAGES_DIGESTS \u003e $(results.BASE_IMAGES_DIGESTS.path)\ncat ./results/buildah-tssc/IMAGE_DIGEST \u003e $(results.IMAGE_DIGEST.path)\ncat ./results/buildah-tssc/IMAGE_URL \u003e $(results.IMAGE_URL.path)\ncat ./results/buildah-tssc/SBOM_BLOB_URL \u003e $(results.SBOM_BLOB_URL.path)\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deploy",
                            "params": [
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Deploy built image to development environment.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy",
                                        "script": "echo \"running update-deployment\"\n/workspace/source/tssc/update-deployment.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(params.event-type)",
                                    "operator": "notin",
                                    "values": [
                                        "pull_request",
                                        "Merge Request"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deployment-check",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload-check",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy-check",
                                        "script": "echo \"running acs-deploy-check\"\n/workspace/source/tssc/acs-deploy-check.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(params.event-type)",
                                    "operator": "in",
                                    "values": [
                                        "push",
                                        "Push"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "scan",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "scan-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "scan",
                                        "script": "echo \"running acs-image-check\"\n/workspace/source/tssc/acs-image-check.sh\necho \"running acs-image-scan\"\n/workspace/source/tssc/acs-image-scan.sh\ncat ./results/acs-image-scan/SCAN_OUTPUT \u003e $(results.SCAN_OUTPUT.path)\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "show-sbom",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Show SBOM report for the built image.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "show-workload-sbom",
                                        "task.output.location": "results",
                                        "task.results.format": "application/text",
                                        "task.results.key": "LINK_TO_SBOM",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Placeholder result meant to make RHDH identify this task as the producer of the SBOM logs.",
                                        "name": "LINK_TO_SBOM",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "show-sbom",
                                        "script": "echo \"running show-sbom-rhdh\"\n/workspace/source/tssc/show-sbom-rhdh.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "summarize",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Summarize all the steps in the build pipeline.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "summarize-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "summary",
                                        "script": "echo \"running summary\"\n/workspace/source/tssc/summary.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "taskRunTemplate": {
                    "serviceAccountName": "pipeline"
                },
                "timeouts": {
                    "pipeline": "1h0m0s"
                },
                "workspaces": [
                    {
                        "name": "gitops-auth",
                        "secret": {
                            "secretName": "$(params.gitops-auth-secret-name)"
                        }
                    },
                    {
                        "name": "git-auth",
                        "secret": {
                            "secretName": "pac-gitauth-kzbzws"
                        }
                    },
                    {
                        "name": "workspace",
                        "volumeClaimTemplate": {
                            "metadata": {
                                "creationTimestamp": null
                            },
                            "spec": {
                                "accessModes": [
                                    "ReadWriteOnce"
                                ],
                                "resources": {
                                    "requests": {
                                        "storage": "1Gi"
                                    }
                                }
                            },
                            "status": {}
                        }
                    }
                ]
            },
            "status": {
                "childReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs-bmscnquq-on-push-vkwmq-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs-bmscnquq-on-push-vkwmq-build",
                        "pipelineTaskName": "build"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs-bmscnquq-on-push-vkwmq-deploy",
                        "pipelineTaskName": "deploy",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "notin",
                                "values": [
                                    "pull_request",
                                    "Merge Request"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs-bmscnquq-on-push-vkwmq-deployment-check",
                        "pipelineTaskName": "deployment-check",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "in",
                                "values": [
                                    "push",
                                    "Push"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs-bmscnquq-on-push-vkwmq-scan",
                        "pipelineTaskName": "scan"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs-bmscnquq-on-push-vkwmq-show-sbom",
                        "pipelineTaskName": "show-sbom"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs-bmscnquq-on-push-vkwmq-summarize",
                        "pipelineTaskName": "summarize"
                    }
                ],
                "completionTime": "2026-04-27T16:36:05Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-27T16:36:05Z",
                        "message": "Tasks Completed: 7 (Failed: 0, Cancelled 0), Skipped: 0",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Source Repository URL",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Revision of the Source Repository",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "description": "Fully Qualified Output Image",
                            "name": "output-image",
                            "type": "string"
                        },
                        {
                            "default": ".",
                            "description": "Path to the source code of an application's component from where to build image.",
                            "name": "path-context",
                            "type": "string"
                        },
                        {
                            "default": "Dockerfile",
                            "description": "Path to the Dockerfile inside the context specified by parameter path-context",
                            "name": "dockerfile",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Force rebuild image",
                            "name": "rebuild",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Image tag expiration time, time values could be something like 1h, 2d, 3w for hours, days, and weeks, respectively.",
                            "name": "image-expires-after",
                            "type": "string"
                        },
                        {
                            "default": "rox-api-token",
                            "name": "stackrox-secret",
                            "type": "string"
                        },
                        {
                            "default": "gitops-auth-secret",
                            "description": "Secret name to enable this pipeline to update the gitops repo with the new image. ",
                            "name": "gitops-auth-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "cosign-pub",
                            "description": "Secret name to enable verify cosign signature. ",
                            "name": "cosign-public-key-secret",
                            "type": "string"
                        },
                        {
                            "default": "push",
                            "description": "Event that triggered the pipeline run, e.g. push, pull_request",
                            "name": "event-type",
                            "type": "string"
                        },
                        {
                            "default": [],
                            "description": "Array of --build-arg values (\"arg=value\" strings) for buildah",
                            "name": "build-args",
                            "type": "array"
                        },
                        {
                            "default": "",
                            "description": "Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                            "name": "build-args-file",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Digest of the image just built",
                            "name": "IMAGE_DIGEST",
                            "value": "$(tasks.build.results.IMAGE_DIGEST)"
                        },
                        {
                            "description": "Image repository and tag where the built image was pushed",
                            "name": "IMAGE_URL",
                            "value": "$(tasks.build.results.IMAGE_URL)"
                        },
                        {
                            "description": "Digests of the base images used for build",
                            "name": "BASE_IMAGES_DIGESTS",
                            "value": "$(tasks.build.results.BASE_IMAGES_DIGESTS)"
                        },
                        {
                            "description": "Link to the SBOM layer pushed to the registry",
                            "name": "SBOM_BLOB_URL",
                            "value": "$(tasks.build.results.SBOM_BLOB_URL)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_URL",
                            "value": "$(tasks.clone-repository.results.url)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_COMMIT",
                            "value": "$(tasks.clone-repository.results.commit)"
                        },
                        {
                            "description": "",
                            "name": "ACS_SCAN_OUTPUT",
                            "value": "$(tasks.scan.results.SCAN_OUTPUT)"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-bmscnquq"
                                },
                                {
                                    "name": "revision",
                                    "value": "43723013ddeeb6f00ff4b5c1f3139bf0503a777d"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "43723013ddeeb6f00ff4b5c1f3139bf0503a777d"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "build",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "cosign-public-secret-name",
                                    "value": "cosign-pub"
                                },
                                {
                                    "name": "tpa_secret_name",
                                    "value": "tpa-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-nodejs-bmscnquq:43723013ddeeb6f00ff4b5c1f3139bf0503a777d"
                                },
                                {
                                    "name": "DOCKERFILE",
                                    "value": "Dockerfile"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                },
                                {
                                    "name": "BUILD_ARGS",
                                    "value": []
                                },
                                {
                                    "name": "BUILD_ARGS_FILE",
                                    "value": ""
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Builds source code into a container image and pushes the image into container registry using buildah tool.\nIn addition it generates a SBOM file, injects the SBOM file into final container image and pushes the SBOM file as separate image using cosign tool.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "build-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "./Dockerfile",
                                        "description": "Path to the Dockerfile to build.",
                                        "name": "DOCKERFILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry)",
                                        "name": "TLSVERIFY",
                                        "type": "string"
                                    },
                                    {
                                        "default": [],
                                        "description": "Array of --build-arg values (\"arg=value\" strings)",
                                        "name": "BUILD_ARGS",
                                        "type": "array"
                                    },
                                    {
                                        "default": "",
                                        "description": "Path to a file with build arguments, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                                        "name": "BUILD_ARGS_FILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Digest of the image just built",
                                        "name": "IMAGE_DIGEST",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Image repository and tag where the built image was pushed",
                                        "name": "IMAGE_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Digests of the base images used for build",
                                        "name": "BASE_IMAGES_DIGESTS",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Link to the SBOM layer pushed to the registry as part of an OCI artifact.",
                                        "name": "SBOM_BLOB_URL",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "DOCKERFILE",
                                            "value": "$(params.DOCKERFILE)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "TLSVERIFY",
                                            "value": "$(params.TLSVERIFY)"
                                        },
                                        {
                                            "name": "BUILD_ARGS_FILE",
                                            "value": "$(params.BUILD_ARGS_FILE)"
                                        },
                                        {
                                            "name": "_BUILDAH_STARTED_IN_USERNS"
                                        },
                                        {
                                            "name": "BUILDAH_ISOLATION",
                                            "value": "chroot"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_PASSWORD",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_KEY",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.tpa_secret_name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "cosign.pub",
                                                    "name": "$(params.cosign-public-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "DOCKERFILE",
                                                "value": "$(params.DOCKERFILE)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "TLSVERIFY",
                                                "value": "$(params.TLSVERIFY)"
                                            },
                                            {
                                                "name": "BUILD_ARGS_FILE",
                                                "value": "$(params.BUILD_ARGS_FILE)"
                                            },
                                            {
                                                "name": "_BUILDAH_STARTED_IN_USERNS"
                                            },
                                            {
                                                "name": "BUILDAH_ISOLATION",
                                                "value": "chroot"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_PASSWORD",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_KEY",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.tpa_secret_name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "cosign.pub",
                                                        "name": "$(params.cosign-public-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "# Sync scripts to the writable workspace\ncp -rf /work/tssc/ /workspace/source/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e /workspace/source/tssc/common.sh\necho \"Successfully patched /workspace/source/tssc/common.sh\"\necho \"running init\"\npwd\nls -la\n/workspace/source/tssc/init.sh\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    },
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "DOCKERFILE",
                                                "value": "$(params.DOCKERFILE)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "TLSVERIFY",
                                                "value": "$(params.TLSVERIFY)"
                                            },
                                            {
                                                "name": "BUILD_ARGS_FILE",
                                                "value": "$(params.BUILD_ARGS_FILE)"
                                            },
                                            {
                                                "name": "_BUILDAH_STARTED_IN_USERNS"
                                            },
                                            {
                                                "name": "BUILDAH_ISOLATION",
                                                "value": "chroot"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_PASSWORD",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_KEY",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.tpa_secret_name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "cosign.pub",
                                                        "name": "$(params.cosign-public-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "build",
                                        "script": "echo \"running buildah-tssc\"\n/workspace/source/tssc/buildah-tssc.sh\ncat ./results/buildah-tssc/BASE_IMAGES_DIGESTS \u003e $(results.BASE_IMAGES_DIGESTS.path)\ncat ./results/buildah-tssc/IMAGE_DIGEST \u003e $(results.IMAGE_DIGEST.path)\ncat ./results/buildah-tssc/IMAGE_URL \u003e $(results.IMAGE_URL.path)\ncat ./results/buildah-tssc/SBOM_BLOB_URL \u003e $(results.SBOM_BLOB_URL.path)\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deploy",
                            "params": [
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-nodejs-bmscnquq:43723013ddeeb6f00ff4b5c1f3139bf0503a777d"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Deploy built image to development environment.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy",
                                        "script": "echo \"running update-deployment\"\n/workspace/source/tssc/update-deployment.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "push",
                                    "operator": "notin",
                                    "values": [
                                        "pull_request",
                                        "Merge Request"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deployment-check",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-nodejs-bmscnquq:43723013ddeeb6f00ff4b5c1f3139bf0503a777d"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload-check",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy-check",
                                        "script": "echo \"running acs-deploy-check\"\n/workspace/source/tssc/acs-deploy-check.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "push",
                                    "operator": "in",
                                    "values": [
                                        "push",
                                        "Push"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "scan",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-nodejs-bmscnquq:43723013ddeeb6f00ff4b5c1f3139bf0503a777d"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "scan-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "scan",
                                        "script": "echo \"running acs-image-check\"\n/workspace/source/tssc/acs-image-check.sh\necho \"running acs-image-scan\"\n/workspace/source/tssc/acs-image-scan.sh\ncat ./results/acs-image-scan/SCAN_OUTPUT \u003e $(results.SCAN_OUTPUT.path)\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "show-sbom",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-nodejs-bmscnquq:43723013ddeeb6f00ff4b5c1f3139bf0503a777d"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Show SBOM report for the built image.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "show-workload-sbom",
                                        "task.output.location": "results",
                                        "task.results.format": "application/text",
                                        "task.results.key": "LINK_TO_SBOM",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Placeholder result meant to make RHDH identify this task as the producer of the SBOM logs.",
                                        "name": "LINK_TO_SBOM",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "show-sbom",
                                        "script": "echo \"running show-sbom-rhdh\"\n/workspace/source/tssc/show-sbom-rhdh.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "summarize",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-nodejs-bmscnquq:43723013ddeeb6f00ff4b5c1f3139bf0503a777d"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Summarize all the steps in the build pipeline.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "summarize-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "summary",
                                        "script": "echo \"running summary\"\n/workspace/source/tssc/summary.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "results": [
                    {
                        "name": "IMAGE_DIGEST",
                        "value": "sha256:b2a33b7446c5f3d5fee42fd69e8d3fd06e0f4c2d9e124afacfcf800fdeb8237d"
                    },
                    {
                        "name": "IMAGE_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-nodejs-bmscnquq:43723013ddeeb6f00ff4b5c1f3139bf0503a777d"
                    },
                    {
                        "name": "BASE_IMAGES_DIGESTS",
                        "value": "registry.access.redhat.com/ubi9/nodejs-22:latest@sha256:d4a687c72950936d298c98d37bd1be962449af336ebd6c8aa00b94971e6894c0\nregistry.access.redhat.com/ubi9/nodejs-22-minimal:latest@sha256:670c207e6872898228015fa8ec2e4165cfa13089a9e5fccb4f9c6d6cda2811ba\n"
                    },
                    {
                        "name": "SBOM_BLOB_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-nodejs-bmscnquq@sha256:a95f355e6509f6959ebb6d16cb254a13aa245516fc213cddc4af6dc4997d22f0"
                    },
                    {
                        "name": "CHAINS-GIT_URL",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-bmscnquq"
                    },
                    {
                        "name": "CHAINS-GIT_COMMIT",
                        "value": "43723013ddeeb6f00ff4b5c1f3139bf0503a777d"
                    },
                    {
                        "name": "ACS_SCAN_OUTPUT",
                        "value": "{\"vulnerabilities\":{\"critical\":0,\"high\":2,\"medium\":48,\"low\":49}}\n"
                    }
                ],
                "startTime": "2026-04-27T16:34:22Z"
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "PipelineRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "chains.tekton.dev/transparency": "https://rekor-server-tssc-tas.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/api/v1/log/entries?logIndex=166",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "73234631187",
                    "pipelinesascode.tekton.dev/controller-info": "{\"name\":\"default\",\"configmap\":\"pipelines-as-code\",\"secret\":\"pipelines-as-code-secret\", \"gRepo\": \"pipelines-as-code\"}",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/git-auth-secret": "pac-gitauth-rqmggr",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-python-jnltvjzx-gitops-on-pull-request-cljzm",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-python-jnltvjzx-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pipeline": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/pipelines/gitops-pull-request-tssc.yaml",
                    "pipelinesascode.tekton.dev/pull-request": "2",
                    "pipelinesascode.tekton.dev/repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-jnltvjzx-gitops",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-python-jnltvjzx-gitops-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "ff4fe2ad8dc9935c8fc5f17a6cca368ff18df273",
                    "pipelinesascode.tekton.dev/sha-title": "Promote to prod environment",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-jnltvjzx-gitops/commit/ff4fe2ad8dc9935c8fc5f17a6cca368ff18df273",
                    "pipelinesascode.tekton.dev/source-branch": "promote-to-prod-1777308035036",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-jnltvjzx-gitops",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/task-0": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/git-clone.yaml",
                    "pipelinesascode.tekton.dev/task-1": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/gather-deploy-images.yaml",
                    "pipelinesascode.tekton.dev/task-2": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/verify-enterprise-contract.yaml",
                    "pipelinesascode.tekton.dev/task-3": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/gather-deploy-images.yaml",
                    "pipelinesascode.tekton.dev/task-4": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/download-sbom-from-url-in-attestation.yaml",
                    "pipelinesascode.tekton.dev/task-5": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/upload-sbom-to-trustification.yaml",
                    "pipelinesascode.tekton.dev/task-6": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/fetch-gitops-images.yaml",
                    "pipelinesascode.tekton.dev/task-7": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/verify-gitops-conforma.yaml",
                    "pipelinesascode.tekton.dev/task-8": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/download-gitops-sbom.yaml",
                    "pipelinesascode.tekton.dev/task-9": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/upload-gitops-sbom.yaml",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-python-jnltvjzx-gitops",
                    "results.tekton.dev/record": "tssc-app-ci/results/e62b9e2e-812a-4fbd-a36d-b049df342168/records/e62b9e2e-812a-4fbd-a36d-b049df342168",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-python-jnltvjzx-gitops\",\"commit\":\"ff4fe2ad8dc9935c8fc5f17a6cca368ff18df273\",\"eventType\":\"pull_request\",\"pull_request-id\":2}",
                    "results.tekton.dev/result": "tssc-app-ci/results/e62b9e2e-812a-4fbd-a36d-b049df342168",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-27T16:40:46Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "results.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer"
                ],
                "generateName": "e2e-tests-python-jnltvjzx-gitops-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-python-jnltvjzx",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-python-jnltvjzx",
                    "backstage.io/kubernetes-id": "e2e-tests-python-jnltvjzx",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-python-jnltvjzx",
                    "pipelinesascode.tekton.dev/check-run-id": "73234631187",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-python-jnltvjzx-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "2",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-python-jnltvjzx-gitops-repository",
                    "pipelinesascode.tekton.dev/sha": "ff4fe2ad8dc9935c8fc5f17a6cca368ff18df273",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-python-jnltvjzx-gitops",
                    "tekton.dev/pipeline": "e2e-tests-python-jnltvjzx-gitops-on-pull-request-cljzm"
                },
                "name": "e2e-tests-python-jnltvjzx-gitops-on-pull-request-cljzm",
                "namespace": "tssc-app-ci",
                "resourceVersion": "56270",
                "uid": "e62b9e2e-812a-4fbd-a36d-b049df342168"
            },
            "spec": {
                "params": [
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-jnltvjzx-gitops"
                    },
                    {
                        "name": "revision",
                        "value": "ff4fe2ad8dc9935c8fc5f17a6cca368ff18df273"
                    },
                    {
                        "name": "target-branch",
                        "value": "main"
                    },
                    {
                        "name": "fail-if-trustification-not-configured",
                        "value": "false"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Gitops repo url",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Gitops repo revision",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "default": "main",
                            "description": "The target branch for the pull request",
                            "name": "target-branch",
                            "type": "string"
                        },
                        {
                            "default": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7",
                            "description": "Enterprise Contract policy to validate against",
                            "name": "ec-policy-configuration",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should EC violations cause the pipeline to fail?",
                            "name": "ec-strict",
                            "type": "string"
                        },
                        {
                            "default": "k8s://$(context.pipelineRun.namespace)/cosign-pub",
                            "description": "The public key that EC should use to verify signatures",
                            "name": "ec-public-key",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should the pipeline fail when there are SBOMs to upload but Trustification is not properly configured (i.e. the secret is missing or doesn't have all the required keys)?",
                            "name": "fail-if-trustification-not-configured",
                            "type": "string"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "$(params.git-url)"
                                },
                                {
                                    "name": "revision",
                                    "value": "$(params.revision)"
                                },
                                {
                                    "name": "fetchTags",
                                    "value": "true"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "$(params.revision)"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "get-images",
                            "params": [
                                {
                                    "name": "PUBLIC_KEY_URL",
                                    "value": "$(params.ec-public-key)"
                                },
                                {
                                    "name": "TARGET_BRANCH",
                                    "value": "$(params.target-branch)"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Extract images from deployment YAML to pass to Conforma for validation",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a valid k8s cosign reference, e.g. k8s://my-space/my-secret where my-secret contains the expected cosign.pub attribute.",
                                        "name": "PUBLIC_KEY_URL",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "If specified, will gather only the images that changed between the current revision and the target branch. Useful for pull requests. Note that the repository cloned on the source workspace must already contain the origin/$TARGET_BRANCH reference.\n",
                                        "name": "TARGET_BRANCH",
                                        "type": "string"
                                    },
                                    {
                                        "default": [
                                            "development",
                                            "stage",
                                            "prod"
                                        ],
                                        "description": "Gather images from the manifest files for the specified environments",
                                        "name": "ENVIRONMENTS",
                                        "type": "array"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Cosign base64 encoded public key fetched from secrets.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images with SBOMs to upload to Trustification \n",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images to be verified, in a format compatible with https://github.com/konflux-ci/build-definitions/tree/main/task/verify-enterprise-contract/0.1. When there are no images to verify, this is an empty string.\n",
                                        "name": "CONFORMA_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TARGET_BRANCH",
                                            "value": "$(params.TARGET_BRANCH)"
                                        },
                                        {
                                            "name": "PUBLIC_KEY_URL",
                                            "value": "$(params.PUBLIC_KEY_URL)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "pwd\nls -la\n# Sync scripts to the writable workspace\ncp -rf /work/tssc/ $(workspaces.source.path)/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e $(workspaces.source.path)/tssc/common.sh\necho \"Successfully patched $(workspaces.source.path)/tssc/common.sh\"\n\necho \"Parsing public key url\"\nCLEAN_URL=\"${PUBLIC_KEY_URL#k8s://}\"\nNS=\"${CLEAN_URL%/*}\"\nSECRET=\"${CLEAN_URL##*/}\"\nCOSIGN_PUBLIC_KEY=$(oc get secrets $SECRET -n $NS -o json | jq -r '.data.\"cosign.pub\"')\necho $COSIGN_PUBLIC_KEY \u003e $(results.COSIGN_PUBLIC_KEY.path)\n"
                                    },
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "get-images",
                                        "script": "echo \"running gather-images-to-upload-sbom\"\n$(workspaces.source.path)/tssc/gather-images-to-upload-sbom.sh\nmv ./results/gather-deploy-images ./results/sbom-images \ncat ./results/sbom-images/IMAGES_TO_VERIFY \u003e $(results.SBOM_IMAGES.path)\n\necho \"running gather-deploy-images\"\n$(workspaces.source.path)/tssc/gather-deploy-images.sh\ncat ./results/gather-deploy-images/IMAGES_TO_VERIFY \u003e $(results.CONFORMA_IMAGES.path)\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "verify-conforma",
                            "params": [
                                {
                                    "name": "STRICT",
                                    "value": "$(params.ec-strict)"
                                },
                                {
                                    "name": "POLICY_CONFIGURATION",
                                    "value": "$(params.ec-policy-configuration)"
                                },
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Verify the enterprise contract is met",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "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": "true",
                                        "description": "Fail the task if policy fails. Set to `\"false\"` to disable it.",
                                        "name": "STRICT",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Short summary of the policy evaluation for each image.",
                                        "name": "TEST_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STRICT",
                                            "value": "$(params.STRICT)"
                                        },
                                        {
                                            "name": "POLICY_CONFIGURATION",
                                            "value": "$(params.POLICY_CONFIGURATION)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "verify",
                                        "script": "echo \"running verify-conforma\"\n$(workspaces.source.path)/tssc/verify-conforma.sh\ncat ./results/verify-conforma/TEST_OUTPUT \u003e $(results.TEST_OUTPUT.path)\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.CONFORMA_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "download-sboms",
                            "params": [
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                },
                                {
                                    "name": "SBOM_IMAGES",
                                    "value": "$(tasks.get-images.results.SBOM_IMAGES)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Download SBOM from images",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Images to be considered for SBOM download.",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        },
                                        {
                                            "name": "IMAGES",
                                            "value": "$(params.SBOM_IMAGES)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "download",
                                        "script": "echo \"running download-sbom-from-url-in-attestation\"\n$(workspaces.source.path)/tssc/download-sbom-from-url-in-attestation.sh\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "upload-sboms",
                            "params": [
                                {
                                    "name": "TPA_SECRET",
                                    "value": "$(params.trustification-secret-name)"
                                }
                            ],
                            "runAfter": [
                                "download-sboms"
                            ],
                            "taskSpec": {
                                "description": "Upload SBOMs to Trustification",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "TPA Secret to obtain Trustification vars from.",
                                        "name": "TPA_SECRET",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "bombastic_api_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_id",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_secret",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_issuer_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "upload",
                                        "script": "echo \"running upload-sbom-to-trustification\"\n$(workspaces.source.path)/tssc/upload-sbom-to-trustification.sh\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "taskRunTemplate": {
                    "serviceAccountName": "pipeline"
                },
                "timeouts": {
                    "pipeline": "1h0m0s"
                },
                "workspaces": [
                    {
                        "name": "git-auth",
                        "secret": {
                            "secretName": "pac-gitauth-rqmggr"
                        }
                    },
                    {
                        "name": "workspace",
                        "volumeClaimTemplate": {
                            "metadata": {
                                "creationTimestamp": null
                            },
                            "spec": {
                                "accessModes": [
                                    "ReadWriteOnce"
                                ],
                                "resources": {
                                    "requests": {
                                        "storage": "1Gi"
                                    }
                                }
                            },
                            "status": {}
                        }
                    }
                ]
            },
            "status": {
                "childReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-pyth5771d26cf0e2679163ebb24f11a02026-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python-jnl5771d26cf0e2679163ebb24f11a02026-get-images",
                        "pipelineTaskName": "get-images"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-pytho5771d26cf0e2679163ebb24f11a02026-verify-conforma",
                        "pipelineTaskName": "verify-conforma",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-python-jnltvjzx:0da1e6cc1c7d1e5e4dfa6791c3db27cda13732c6\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python5771d26cf0e2679163ebb24f11a02026-download-sboms",
                        "pipelineTaskName": "download-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-python-jnltvjzx:0da1e6cc1c7d1e5e4dfa6791c3db27cda13732c6\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python-j5771d26cf0e2679163ebb24f11a02026-upload-sboms",
                        "pipelineTaskName": "upload-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-python-jnltvjzx:0da1e6cc1c7d1e5e4dfa6791c3db27cda13732c6\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    }
                ],
                "completionTime": "2026-04-27T16:41:32Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-27T16:41:32Z",
                        "message": "Tasks Completed: 5 (Failed: 0, Cancelled 0), Skipped: 0",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Gitops repo url",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Gitops repo revision",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "default": "main",
                            "description": "The target branch for the pull request",
                            "name": "target-branch",
                            "type": "string"
                        },
                        {
                            "default": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7",
                            "description": "Enterprise Contract policy to validate against",
                            "name": "ec-policy-configuration",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should EC violations cause the pipeline to fail?",
                            "name": "ec-strict",
                            "type": "string"
                        },
                        {
                            "default": "k8s://$(context.pipelineRun.namespace)/cosign-pub",
                            "description": "The public key that EC should use to verify signatures",
                            "name": "ec-public-key",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should the pipeline fail when there are SBOMs to upload but Trustification is not properly configured (i.e. the secret is missing or doesn't have all the required keys)?",
                            "name": "fail-if-trustification-not-configured",
                            "type": "string"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-jnltvjzx-gitops"
                                },
                                {
                                    "name": "revision",
                                    "value": "ff4fe2ad8dc9935c8fc5f17a6cca368ff18df273"
                                },
                                {
                                    "name": "fetchTags",
                                    "value": "true"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "ff4fe2ad8dc9935c8fc5f17a6cca368ff18df273"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "get-images",
                            "params": [
                                {
                                    "name": "PUBLIC_KEY_URL",
                                    "value": "k8s://tssc-app-ci/cosign-pub"
                                },
                                {
                                    "name": "TARGET_BRANCH",
                                    "value": "main"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Extract images from deployment YAML to pass to Conforma for validation",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a valid k8s cosign reference, e.g. k8s://my-space/my-secret where my-secret contains the expected cosign.pub attribute.",
                                        "name": "PUBLIC_KEY_URL",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "If specified, will gather only the images that changed between the current revision and the target branch. Useful for pull requests. Note that the repository cloned on the source workspace must already contain the origin/$TARGET_BRANCH reference.\n",
                                        "name": "TARGET_BRANCH",
                                        "type": "string"
                                    },
                                    {
                                        "default": [
                                            "development",
                                            "stage",
                                            "prod"
                                        ],
                                        "description": "Gather images from the manifest files for the specified environments",
                                        "name": "ENVIRONMENTS",
                                        "type": "array"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Cosign base64 encoded public key fetched from secrets.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images with SBOMs to upload to Trustification \n",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images to be verified, in a format compatible with https://github.com/konflux-ci/build-definitions/tree/main/task/verify-enterprise-contract/0.1. When there are no images to verify, this is an empty string.\n",
                                        "name": "CONFORMA_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TARGET_BRANCH",
                                            "value": "$(params.TARGET_BRANCH)"
                                        },
                                        {
                                            "name": "PUBLIC_KEY_URL",
                                            "value": "$(params.PUBLIC_KEY_URL)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TARGET_BRANCH",
                                                "value": "$(params.TARGET_BRANCH)"
                                            },
                                            {
                                                "name": "PUBLIC_KEY_URL",
                                                "value": "$(params.PUBLIC_KEY_URL)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "pwd\nls -la\n# Sync scripts to the writable workspace\ncp -rf /work/tssc/ $(workspaces.source.path)/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e $(workspaces.source.path)/tssc/common.sh\necho \"Successfully patched $(workspaces.source.path)/tssc/common.sh\"\n\necho \"Parsing public key url\"\nCLEAN_URL=\"${PUBLIC_KEY_URL#k8s://}\"\nNS=\"${CLEAN_URL%/*}\"\nSECRET=\"${CLEAN_URL##*/}\"\nCOSIGN_PUBLIC_KEY=$(oc get secrets $SECRET -n $NS -o json | jq -r '.data.\"cosign.pub\"')\necho $COSIGN_PUBLIC_KEY \u003e $(results.COSIGN_PUBLIC_KEY.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TARGET_BRANCH",
                                                "value": "$(params.TARGET_BRANCH)"
                                            },
                                            {
                                                "name": "PUBLIC_KEY_URL",
                                                "value": "$(params.PUBLIC_KEY_URL)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "get-images",
                                        "script": "echo \"running gather-images-to-upload-sbom\"\n$(workspaces.source.path)/tssc/gather-images-to-upload-sbom.sh\nmv ./results/gather-deploy-images ./results/sbom-images \ncat ./results/sbom-images/IMAGES_TO_VERIFY \u003e $(results.SBOM_IMAGES.path)\n\necho \"running gather-deploy-images\"\n$(workspaces.source.path)/tssc/gather-deploy-images.sh\ncat ./results/gather-deploy-images/IMAGES_TO_VERIFY \u003e $(results.CONFORMA_IMAGES.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "verify-conforma",
                            "params": [
                                {
                                    "name": "STRICT",
                                    "value": "true"
                                },
                                {
                                    "name": "POLICY_CONFIGURATION",
                                    "value": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7"
                                },
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Verify the enterprise contract is met",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "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": "true",
                                        "description": "Fail the task if policy fails. Set to `\"false\"` to disable it.",
                                        "name": "STRICT",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Short summary of the policy evaluation for each image.",
                                        "name": "TEST_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STRICT",
                                            "value": "$(params.STRICT)"
                                        },
                                        {
                                            "name": "POLICY_CONFIGURATION",
                                            "value": "$(params.POLICY_CONFIGURATION)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STRICT",
                                                "value": "$(params.STRICT)"
                                            },
                                            {
                                                "name": "POLICY_CONFIGURATION",
                                                "value": "$(params.POLICY_CONFIGURATION)"
                                            },
                                            {
                                                "name": "REKOR_HOST",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rekor_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TUF_MIRROR",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "tuf_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "value": "$(params.COSIGN_PUBLIC_KEY)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "verify",
                                        "script": "echo \"running verify-conforma\"\n$(workspaces.source.path)/tssc/verify-conforma.sh\ncat ./results/verify-conforma/TEST_OUTPUT \u003e $(results.TEST_OUTPUT.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.CONFORMA_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "download-sboms",
                            "params": [
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                },
                                {
                                    "name": "SBOM_IMAGES",
                                    "value": "$(tasks.get-images.results.SBOM_IMAGES)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Download SBOM from images",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Images to be considered for SBOM download.",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        },
                                        {
                                            "name": "IMAGES",
                                            "value": "$(params.SBOM_IMAGES)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "value": "$(params.COSIGN_PUBLIC_KEY)"
                                            },
                                            {
                                                "name": "IMAGES",
                                                "value": "$(params.SBOM_IMAGES)"
                                            },
                                            {
                                                "name": "REKOR_HOST",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rekor_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TUF_MIRROR",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "tuf_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "download",
                                        "script": "echo \"running download-sbom-from-url-in-attestation\"\n$(workspaces.source.path)/tssc/download-sbom-from-url-in-attestation.sh\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "upload-sboms",
                            "params": [
                                {
                                    "name": "TPA_SECRET",
                                    "value": "tpa-secret"
                                }
                            ],
                            "runAfter": [
                                "download-sboms"
                            ],
                            "taskSpec": {
                                "description": "Upload SBOMs to Trustification",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "TPA Secret to obtain Trustification vars from.",
                                        "name": "TPA_SECRET",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "bombastic_api_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_id",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_secret",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_issuer_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "bombastic_api_url",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_client_id",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_client_secret",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_issuer_url",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "upload",
                                        "script": "echo \"running upload-sbom-to-trustification\"\n$(workspaces.source.path)/tssc/upload-sbom-to-trustification.sh\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "startTime": "2026-04-27T16:40:46Z"
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "PipelineRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "chains.tekton.dev/transparency": "https://rekor-server-tssc-tas.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/api/v1/log/entries?logIndex=139",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "73234319538",
                    "pipelinesascode.tekton.dev/controller-info": "{\"name\":\"default\",\"configmap\":\"pipelines-as-code\",\"secret\":\"pipelines-as-code-secret\", \"gRepo\": \"pipelines-as-code\"}",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/git-auth-secret": "pac-gitauth-qzbrvq",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-python-jnltvjzx-gitops-on-pull-request-d9z98",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-python-jnltvjzx-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pipeline": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/pipelines/gitops-pull-request-tssc.yaml",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-jnltvjzx-gitops",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-python-jnltvjzx-gitops-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "026afc463eb312d2dac48f519a31dbbe9d374340",
                    "pipelinesascode.tekton.dev/sha-title": "Promote to stage environment",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-jnltvjzx-gitops/commit/026afc463eb312d2dac48f519a31dbbe9d374340",
                    "pipelinesascode.tekton.dev/source-branch": "promote-to-stage-1777307924608",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-jnltvjzx-gitops",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/task-0": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/git-clone.yaml",
                    "pipelinesascode.tekton.dev/task-1": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/gather-deploy-images.yaml",
                    "pipelinesascode.tekton.dev/task-2": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/verify-enterprise-contract.yaml",
                    "pipelinesascode.tekton.dev/task-3": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/gather-deploy-images.yaml",
                    "pipelinesascode.tekton.dev/task-4": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/download-sbom-from-url-in-attestation.yaml",
                    "pipelinesascode.tekton.dev/task-5": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/upload-sbom-to-trustification.yaml",
                    "pipelinesascode.tekton.dev/task-6": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/fetch-gitops-images.yaml",
                    "pipelinesascode.tekton.dev/task-7": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/verify-gitops-conforma.yaml",
                    "pipelinesascode.tekton.dev/task-8": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/download-gitops-sbom.yaml",
                    "pipelinesascode.tekton.dev/task-9": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/upload-gitops-sbom.yaml",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-python-jnltvjzx-gitops",
                    "results.tekton.dev/record": "tssc-app-ci/results/f7663ad6-f9f2-4a6b-b882-472deb523dff/records/f7663ad6-f9f2-4a6b-b882-472deb523dff",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-python-jnltvjzx-gitops\",\"commit\":\"026afc463eb312d2dac48f519a31dbbe9d374340\",\"eventType\":\"pull_request\",\"pull_request-id\":1}",
                    "results.tekton.dev/result": "tssc-app-ci/results/f7663ad6-f9f2-4a6b-b882-472deb523dff",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-27T16:38:55Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "results.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-python-jnltvjzx-gitops-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-python-jnltvjzx",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-python-jnltvjzx",
                    "backstage.io/kubernetes-id": "e2e-tests-python-jnltvjzx",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-python-jnltvjzx",
                    "pipelinesascode.tekton.dev/check-run-id": "73234319538",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-python-jnltvjzx-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-python-jnltvjzx-gitops-repository",
                    "pipelinesascode.tekton.dev/sha": "026afc463eb312d2dac48f519a31dbbe9d374340",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-python-jnltvjzx-gitops",
                    "tekton.dev/pipeline": "e2e-tests-python-jnltvjzx-gitops-on-pull-request-d9z98"
                },
                "name": "e2e-tests-python-jnltvjzx-gitops-on-pull-request-d9z98",
                "namespace": "tssc-app-ci",
                "resourceVersion": "52978",
                "uid": "f7663ad6-f9f2-4a6b-b882-472deb523dff"
            },
            "spec": {
                "params": [
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-jnltvjzx-gitops"
                    },
                    {
                        "name": "revision",
                        "value": "026afc463eb312d2dac48f519a31dbbe9d374340"
                    },
                    {
                        "name": "target-branch",
                        "value": "main"
                    },
                    {
                        "name": "fail-if-trustification-not-configured",
                        "value": "false"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Gitops repo url",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Gitops repo revision",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "default": "main",
                            "description": "The target branch for the pull request",
                            "name": "target-branch",
                            "type": "string"
                        },
                        {
                            "default": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7",
                            "description": "Enterprise Contract policy to validate against",
                            "name": "ec-policy-configuration",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should EC violations cause the pipeline to fail?",
                            "name": "ec-strict",
                            "type": "string"
                        },
                        {
                            "default": "k8s://$(context.pipelineRun.namespace)/cosign-pub",
                            "description": "The public key that EC should use to verify signatures",
                            "name": "ec-public-key",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should the pipeline fail when there are SBOMs to upload but Trustification is not properly configured (i.e. the secret is missing or doesn't have all the required keys)?",
                            "name": "fail-if-trustification-not-configured",
                            "type": "string"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "$(params.git-url)"
                                },
                                {
                                    "name": "revision",
                                    "value": "$(params.revision)"
                                },
                                {
                                    "name": "fetchTags",
                                    "value": "true"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "$(params.revision)"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "get-images",
                            "params": [
                                {
                                    "name": "PUBLIC_KEY_URL",
                                    "value": "$(params.ec-public-key)"
                                },
                                {
                                    "name": "TARGET_BRANCH",
                                    "value": "$(params.target-branch)"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Extract images from deployment YAML to pass to Conforma for validation",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a valid k8s cosign reference, e.g. k8s://my-space/my-secret where my-secret contains the expected cosign.pub attribute.",
                                        "name": "PUBLIC_KEY_URL",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "If specified, will gather only the images that changed between the current revision and the target branch. Useful for pull requests. Note that the repository cloned on the source workspace must already contain the origin/$TARGET_BRANCH reference.\n",
                                        "name": "TARGET_BRANCH",
                                        "type": "string"
                                    },
                                    {
                                        "default": [
                                            "development",
                                            "stage",
                                            "prod"
                                        ],
                                        "description": "Gather images from the manifest files for the specified environments",
                                        "name": "ENVIRONMENTS",
                                        "type": "array"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Cosign base64 encoded public key fetched from secrets.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images with SBOMs to upload to Trustification \n",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images to be verified, in a format compatible with https://github.com/konflux-ci/build-definitions/tree/main/task/verify-enterprise-contract/0.1. When there are no images to verify, this is an empty string.\n",
                                        "name": "CONFORMA_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TARGET_BRANCH",
                                            "value": "$(params.TARGET_BRANCH)"
                                        },
                                        {
                                            "name": "PUBLIC_KEY_URL",
                                            "value": "$(params.PUBLIC_KEY_URL)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "pwd\nls -la\n# Sync scripts to the writable workspace\ncp -rf /work/tssc/ $(workspaces.source.path)/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e $(workspaces.source.path)/tssc/common.sh\necho \"Successfully patched $(workspaces.source.path)/tssc/common.sh\"\n\necho \"Parsing public key url\"\nCLEAN_URL=\"${PUBLIC_KEY_URL#k8s://}\"\nNS=\"${CLEAN_URL%/*}\"\nSECRET=\"${CLEAN_URL##*/}\"\nCOSIGN_PUBLIC_KEY=$(oc get secrets $SECRET -n $NS -o json | jq -r '.data.\"cosign.pub\"')\necho $COSIGN_PUBLIC_KEY \u003e $(results.COSIGN_PUBLIC_KEY.path)\n"
                                    },
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "get-images",
                                        "script": "echo \"running gather-images-to-upload-sbom\"\n$(workspaces.source.path)/tssc/gather-images-to-upload-sbom.sh\nmv ./results/gather-deploy-images ./results/sbom-images \ncat ./results/sbom-images/IMAGES_TO_VERIFY \u003e $(results.SBOM_IMAGES.path)\n\necho \"running gather-deploy-images\"\n$(workspaces.source.path)/tssc/gather-deploy-images.sh\ncat ./results/gather-deploy-images/IMAGES_TO_VERIFY \u003e $(results.CONFORMA_IMAGES.path)\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "verify-conforma",
                            "params": [
                                {
                                    "name": "STRICT",
                                    "value": "$(params.ec-strict)"
                                },
                                {
                                    "name": "POLICY_CONFIGURATION",
                                    "value": "$(params.ec-policy-configuration)"
                                },
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Verify the enterprise contract is met",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "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": "true",
                                        "description": "Fail the task if policy fails. Set to `\"false\"` to disable it.",
                                        "name": "STRICT",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Short summary of the policy evaluation for each image.",
                                        "name": "TEST_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STRICT",
                                            "value": "$(params.STRICT)"
                                        },
                                        {
                                            "name": "POLICY_CONFIGURATION",
                                            "value": "$(params.POLICY_CONFIGURATION)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "verify",
                                        "script": "echo \"running verify-conforma\"\n$(workspaces.source.path)/tssc/verify-conforma.sh\ncat ./results/verify-conforma/TEST_OUTPUT \u003e $(results.TEST_OUTPUT.path)\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.CONFORMA_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "download-sboms",
                            "params": [
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                },
                                {
                                    "name": "SBOM_IMAGES",
                                    "value": "$(tasks.get-images.results.SBOM_IMAGES)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Download SBOM from images",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Images to be considered for SBOM download.",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        },
                                        {
                                            "name": "IMAGES",
                                            "value": "$(params.SBOM_IMAGES)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "download",
                                        "script": "echo \"running download-sbom-from-url-in-attestation\"\n$(workspaces.source.path)/tssc/download-sbom-from-url-in-attestation.sh\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "upload-sboms",
                            "params": [
                                {
                                    "name": "TPA_SECRET",
                                    "value": "$(params.trustification-secret-name)"
                                }
                            ],
                            "runAfter": [
                                "download-sboms"
                            ],
                            "taskSpec": {
                                "description": "Upload SBOMs to Trustification",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "TPA Secret to obtain Trustification vars from.",
                                        "name": "TPA_SECRET",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "bombastic_api_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_id",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_secret",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_issuer_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "upload",
                                        "script": "echo \"running upload-sbom-to-trustification\"\n$(workspaces.source.path)/tssc/upload-sbom-to-trustification.sh\n"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "taskRunTemplate": {
                    "serviceAccountName": "pipeline"
                },
                "timeouts": {
                    "pipeline": "1h0m0s"
                },
                "workspaces": [
                    {
                        "name": "git-auth",
                        "secret": {
                            "secretName": "pac-gitauth-qzbrvq"
                        }
                    },
                    {
                        "name": "workspace",
                        "volumeClaimTemplate": {
                            "metadata": {
                                "creationTimestamp": null
                            },
                            "spec": {
                                "accessModes": [
                                    "ReadWriteOnce"
                                ],
                                "resources": {
                                    "requests": {
                                        "storage": "1Gi"
                                    }
                                }
                            },
                            "status": {}
                        }
                    }
                ]
            },
            "status": {
                "childReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-pythfed78f188207a587fa5cff8e5bf76e45-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python-jnlfed78f188207a587fa5cff8e5bf76e45-get-images",
                        "pipelineTaskName": "get-images"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-pythofed78f188207a587fa5cff8e5bf76e45-verify-conforma",
                        "pipelineTaskName": "verify-conforma",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-python-jnltvjzx:0da1e6cc1c7d1e5e4dfa6791c3db27cda13732c6\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-pythonfed78f188207a587fa5cff8e5bf76e45-download-sboms",
                        "pipelineTaskName": "download-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-python-jnltvjzx:0da1e6cc1c7d1e5e4dfa6791c3db27cda13732c6\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python-jfed78f188207a587fa5cff8e5bf76e45-upload-sboms",
                        "pipelineTaskName": "upload-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-python-jnltvjzx:0da1e6cc1c7d1e5e4dfa6791c3db27cda13732c6\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    }
                ],
                "completionTime": "2026-04-27T16:39:39Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-27T16:39:39Z",
                        "message": "Tasks Completed: 5 (Failed: 0, Cancelled 0), Skipped: 0",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Gitops repo url",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Gitops repo revision",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "default": "main",
                            "description": "The target branch for the pull request",
                            "name": "target-branch",
                            "type": "string"
                        },
                        {
                            "default": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7",
                            "description": "Enterprise Contract policy to validate against",
                            "name": "ec-policy-configuration",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should EC violations cause the pipeline to fail?",
                            "name": "ec-strict",
                            "type": "string"
                        },
                        {
                            "default": "k8s://$(context.pipelineRun.namespace)/cosign-pub",
                            "description": "The public key that EC should use to verify signatures",
                            "name": "ec-public-key",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "true",
                            "description": "Should the pipeline fail when there are SBOMs to upload but Trustification is not properly configured (i.e. the secret is missing or doesn't have all the required keys)?",
                            "name": "fail-if-trustification-not-configured",
                            "type": "string"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-jnltvjzx-gitops"
                                },
                                {
                                    "name": "revision",
                                    "value": "026afc463eb312d2dac48f519a31dbbe9d374340"
                                },
                                {
                                    "name": "fetchTags",
                                    "value": "true"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "026afc463eb312d2dac48f519a31dbbe9d374340"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "get-images",
                            "params": [
                                {
                                    "name": "PUBLIC_KEY_URL",
                                    "value": "k8s://tssc-app-ci/cosign-pub"
                                },
                                {
                                    "name": "TARGET_BRANCH",
                                    "value": "main"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Extract images from deployment YAML to pass to Conforma for validation",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a valid k8s cosign reference, e.g. k8s://my-space/my-secret where my-secret contains the expected cosign.pub attribute.",
                                        "name": "PUBLIC_KEY_URL",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "If specified, will gather only the images that changed between the current revision and the target branch. Useful for pull requests. Note that the repository cloned on the source workspace must already contain the origin/$TARGET_BRANCH reference.\n",
                                        "name": "TARGET_BRANCH",
                                        "type": "string"
                                    },
                                    {
                                        "default": [
                                            "development",
                                            "stage",
                                            "prod"
                                        ],
                                        "description": "Gather images from the manifest files for the specified environments",
                                        "name": "ENVIRONMENTS",
                                        "type": "array"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Cosign base64 encoded public key fetched from secrets.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images with SBOMs to upload to Trustification \n",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The images to be verified, in a format compatible with https://github.com/konflux-ci/build-definitions/tree/main/task/verify-enterprise-contract/0.1. When there are no images to verify, this is an empty string.\n",
                                        "name": "CONFORMA_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TARGET_BRANCH",
                                            "value": "$(params.TARGET_BRANCH)"
                                        },
                                        {
                                            "name": "PUBLIC_KEY_URL",
                                            "value": "$(params.PUBLIC_KEY_URL)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TARGET_BRANCH",
                                                "value": "$(params.TARGET_BRANCH)"
                                            },
                                            {
                                                "name": "PUBLIC_KEY_URL",
                                                "value": "$(params.PUBLIC_KEY_URL)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "pwd\nls -la\n# Sync scripts to the writable workspace\ncp -rf /work/tssc/ $(workspaces.source.path)/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e $(workspaces.source.path)/tssc/common.sh\necho \"Successfully patched $(workspaces.source.path)/tssc/common.sh\"\n\necho \"Parsing public key url\"\nCLEAN_URL=\"${PUBLIC_KEY_URL#k8s://}\"\nNS=\"${CLEAN_URL%/*}\"\nSECRET=\"${CLEAN_URL##*/}\"\nCOSIGN_PUBLIC_KEY=$(oc get secrets $SECRET -n $NS -o json | jq -r '.data.\"cosign.pub\"')\necho $COSIGN_PUBLIC_KEY \u003e $(results.COSIGN_PUBLIC_KEY.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TARGET_BRANCH",
                                                "value": "$(params.TARGET_BRANCH)"
                                            },
                                            {
                                                "name": "PUBLIC_KEY_URL",
                                                "value": "$(params.PUBLIC_KEY_URL)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "get-images",
                                        "script": "echo \"running gather-images-to-upload-sbom\"\n$(workspaces.source.path)/tssc/gather-images-to-upload-sbom.sh\nmv ./results/gather-deploy-images ./results/sbom-images \ncat ./results/sbom-images/IMAGES_TO_VERIFY \u003e $(results.SBOM_IMAGES.path)\n\necho \"running gather-deploy-images\"\n$(workspaces.source.path)/tssc/gather-deploy-images.sh\ncat ./results/gather-deploy-images/IMAGES_TO_VERIFY \u003e $(results.CONFORMA_IMAGES.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "verify-conforma",
                            "params": [
                                {
                                    "name": "STRICT",
                                    "value": "true"
                                },
                                {
                                    "name": "POLICY_CONFIGURATION",
                                    "value": "github.com/redhat-appstudio/tssc-dev-multi-ci//samples/conforma/policies/tekton-slsa3-v0.7"
                                },
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Verify the enterprise contract is met",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "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": "true",
                                        "description": "Fail the task if policy fails. Set to `\"false\"` to disable it.",
                                        "name": "STRICT",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Short summary of the policy evaluation for each image.",
                                        "name": "TEST_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STRICT",
                                            "value": "$(params.STRICT)"
                                        },
                                        {
                                            "name": "POLICY_CONFIGURATION",
                                            "value": "$(params.POLICY_CONFIGURATION)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STRICT",
                                                "value": "$(params.STRICT)"
                                            },
                                            {
                                                "name": "POLICY_CONFIGURATION",
                                                "value": "$(params.POLICY_CONFIGURATION)"
                                            },
                                            {
                                                "name": "REKOR_HOST",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rekor_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TUF_MIRROR",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "tuf_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "value": "$(params.COSIGN_PUBLIC_KEY)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "verify",
                                        "script": "echo \"running verify-conforma\"\n$(workspaces.source.path)/tssc/verify-conforma.sh\ncat ./results/verify-conforma/TEST_OUTPUT \u003e $(results.TEST_OUTPUT.path)\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.CONFORMA_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "download-sboms",
                            "params": [
                                {
                                    "name": "COSIGN_PUBLIC_KEY",
                                    "value": "$(tasks.get-images.results.COSIGN_PUBLIC_KEY)"
                                },
                                {
                                    "name": "SBOM_IMAGES",
                                    "value": "$(tasks.get-images.results.SBOM_IMAGES)"
                                }
                            ],
                            "runAfter": [
                                "get-images"
                            ],
                            "taskSpec": {
                                "description": "Download SBOM from images",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "default": "",
                                        "description": "Public key used to verify signatures. Must be a base64 encoded key.",
                                        "name": "COSIGN_PUBLIC_KEY",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Images to be considered for SBOM download.",
                                        "name": "SBOM_IMAGES",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "value": "$(params.COSIGN_PUBLIC_KEY)"
                                        },
                                        {
                                            "name": "IMAGES",
                                            "value": "$(params.SBOM_IMAGES)"
                                        },
                                        {
                                            "name": "REKOR_HOST",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rekor_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TUF_MIRROR",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "tuf_url",
                                                    "name": "tas-secret"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "value": "$(params.COSIGN_PUBLIC_KEY)"
                                            },
                                            {
                                                "name": "IMAGES",
                                                "value": "$(params.SBOM_IMAGES)"
                                            },
                                            {
                                                "name": "REKOR_HOST",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rekor_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TUF_MIRROR",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "tuf_url",
                                                        "name": "tas-secret"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "download",
                                        "script": "echo \"running download-sbom-from-url-in-attestation\"\n$(workspaces.source.path)/tssc/download-sbom-from-url-in-attestation.sh\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "upload-sboms",
                            "params": [
                                {
                                    "name": "TPA_SECRET",
                                    "value": "tpa-secret"
                                }
                            ],
                            "runAfter": [
                                "download-sboms"
                            ],
                            "taskSpec": {
                                "description": "Upload SBOMs to Trustification",
                                "metadata": {
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "TPA Secret to obtain Trustification vars from.",
                                        "name": "TPA_SECRET",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "bombastic_api_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_id",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_client_secret",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "oidc_issuer_url",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.TPA_SECRET)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "TRUSTIFICATION_BOMBASTIC_API_URL",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "bombastic_api_url",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_CLIENT_ID",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_client_id",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_CLIENT_SECRET",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_client_secret",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_OIDC_ISSUER_URL",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "oidc_issuer_url",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.TPA_SECRET)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "upload",
                                        "script": "echo \"running upload-sbom-to-trustification\"\n$(workspaces.source.path)/tssc/upload-sbom-to-trustification.sh\n",
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Should contain a cloned gitops repo at the ./source subpath",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(tasks.get-images.results.SBOM_IMAGES)",
                                    "operator": "notin",
                                    "values": [
                                        ""
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "startTime": "2026-04-27T16:38:55Z"
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "PipelineRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "chains.tekton.dev/transparency": "https://rekor-server-tssc-tas.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/api/v1/log/entries?logIndex=47",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "73233274813",
                    "pipelinesascode.tekton.dev/controller-info": "{\"name\":\"default\",\"configmap\":\"pipelines-as-code\",\"secret\":\"pipelines-as-code-secret\", \"gRepo\": \"pipelines-as-code\"}",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/git-auth-secret": "pac-gitauth-lzbatb",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-python-jnltvjzx-on-pull-request-8vw7h",
                    "pipelinesascode.tekton.dev/max-keep-runs": "2",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-python-jnltvjzx-on-pull-request",
                    "pipelinesascode.tekton.dev/pipeline": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/pipelines/docker-build-tssc.yaml",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-jnltvjzx",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-python-jnltvjzx-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "0eef320309d9b78a010d143197aebb771a10698d",
                    "pipelinesascode.tekton.dev/sha-title": "Test PR from TSSC e2e test",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-jnltvjzx/commit/0eef320309d9b78a010d143197aebb771a10698d",
                    "pipelinesascode.tekton.dev/source-branch": "test-branch-1777307549097",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-jnltvjzx",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/task-0": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/init.yaml",
                    "pipelinesascode.tekton.dev/task-1": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/git-clone.yaml",
                    "pipelinesascode.tekton.dev/task-10": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/deploy-workload.yaml",
                    "pipelinesascode.tekton.dev/task-11": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/scan-workload.yaml",
                    "pipelinesascode.tekton.dev/task-12": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/summarize-workload.yaml",
                    "pipelinesascode.tekton.dev/task-13": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/show-workload-sbom.yaml",
                    "pipelinesascode.tekton.dev/task-14": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/deploy-workload-check.yaml",
                    "pipelinesascode.tekton.dev/task-2": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/buildah-rhtap.yaml",
                    "pipelinesascode.tekton.dev/task-3": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-image-check.yaml",
                    "pipelinesascode.tekton.dev/task-4": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-image-scan.yaml",
                    "pipelinesascode.tekton.dev/task-5": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-deploy-check.yaml",
                    "pipelinesascode.tekton.dev/task-6": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/update-deployment.yaml",
                    "pipelinesascode.tekton.dev/task-7": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/show-sbom-rhdh.yaml",
                    "pipelinesascode.tekton.dev/task-8": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/summary.yaml",
                    "pipelinesascode.tekton.dev/task-9": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/build-workload.yaml",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-python-jnltvjzx",
                    "results.tekton.dev/record": "tssc-app-ci/results/f0f3110a-232b-4f0b-862d-7d66449a6b94/records/f0f3110a-232b-4f0b-862d-7d66449a6b94",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-python-jnltvjzx\",\"commit\":\"0eef320309d9b78a010d143197aebb771a10698d\",\"eventType\":\"pull_request\",\"pull_request-id\":1}",
                    "results.tekton.dev/result": "tssc-app-ci/results/f0f3110a-232b-4f0b-862d-7d66449a6b94",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-27T16:32:39Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "results.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer"
                ],
                "generateName": "e2e-tests-python-jnltvjzx-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-python-jnltvjzx",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-python-jnltvjzx",
                    "backstage.io/kubernetes-id": "e2e-tests-python-jnltvjzx",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-python-jnltvjzx",
                    "pipelinesascode.tekton.dev/check-run-id": "73233274813",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-python-jnltvjzx-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-python-jnltvjzx-repository",
                    "pipelinesascode.tekton.dev/sha": "0eef320309d9b78a010d143197aebb771a10698d",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-python-jnltvjzx",
                    "tekton.dev/pipeline": "e2e-tests-python-jnltvjzx-on-pull-request-8vw7h"
                },
                "name": "e2e-tests-python-jnltvjzx-on-pull-request-8vw7h",
                "namespace": "tssc-app-ci",
                "resourceVersion": "44764",
                "uid": "f0f3110a-232b-4f0b-862d-7d66449a6b94"
            },
            "spec": {
                "params": [
                    {
                        "name": "dockerfile",
                        "value": "docker/Dockerfile"
                    },
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-jnltvjzx"
                    },
                    {
                        "name": "image-expires-after",
                        "value": "5d"
                    },
                    {
                        "name": "output-image",
                        "value": "quay.io/rhtap_qe/e2e-tests-python-jnltvjzx:on-pr-0eef320309d9b78a010d143197aebb771a10698d"
                    },
                    {
                        "name": "path-context",
                        "value": "."
                    },
                    {
                        "name": "revision",
                        "value": "0eef320309d9b78a010d143197aebb771a10698d"
                    },
                    {
                        "name": "event-type",
                        "value": "pull_request"
                    },
                    {
                        "name": "gitops-auth-secret-name",
                        "value": "gitops-auth-secret"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Source Repository URL",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Revision of the Source Repository",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "description": "Fully Qualified Output Image",
                            "name": "output-image",
                            "type": "string"
                        },
                        {
                            "default": ".",
                            "description": "Path to the source code of an application's component from where to build image.",
                            "name": "path-context",
                            "type": "string"
                        },
                        {
                            "default": "Dockerfile",
                            "description": "Path to the Dockerfile inside the context specified by parameter path-context",
                            "name": "dockerfile",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Force rebuild image",
                            "name": "rebuild",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Image tag expiration time, time values could be something like 1h, 2d, 3w for hours, days, and weeks, respectively.",
                            "name": "image-expires-after",
                            "type": "string"
                        },
                        {
                            "default": "rox-api-token",
                            "name": "stackrox-secret",
                            "type": "string"
                        },
                        {
                            "default": "gitops-auth-secret",
                            "description": "Secret name to enable this pipeline to update the gitops repo with the new image. ",
                            "name": "gitops-auth-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "cosign-pub",
                            "description": "Secret name to enable verify cosign signature. ",
                            "name": "cosign-public-key-secret",
                            "type": "string"
                        },
                        {
                            "default": "push",
                            "description": "Event that triggered the pipeline run, e.g. push, pull_request",
                            "name": "event-type",
                            "type": "string"
                        },
                        {
                            "default": [],
                            "description": "Array of --build-arg values (\"arg=value\" strings) for buildah",
                            "name": "build-args",
                            "type": "array"
                        },
                        {
                            "default": "",
                            "description": "Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                            "name": "build-args-file",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Digest of the image just built",
                            "name": "IMAGE_DIGEST",
                            "value": "$(tasks.build.results.IMAGE_DIGEST)"
                        },
                        {
                            "description": "Image repository and tag where the built image was pushed",
                            "name": "IMAGE_URL",
                            "value": "$(tasks.build.results.IMAGE_URL)"
                        },
                        {
                            "description": "Digests of the base images used for build",
                            "name": "BASE_IMAGES_DIGESTS",
                            "value": "$(tasks.build.results.BASE_IMAGES_DIGESTS)"
                        },
                        {
                            "description": "Link to the SBOM layer pushed to the registry",
                            "name": "SBOM_BLOB_URL",
                            "value": "$(tasks.build.results.SBOM_BLOB_URL)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_URL",
                            "value": "$(tasks.clone-repository.results.url)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_COMMIT",
                            "value": "$(tasks.clone-repository.results.commit)"
                        },
                        {
                            "description": "",
                            "name": "ACS_SCAN_OUTPUT",
                            "value": "$(tasks.scan.results.SCAN_OUTPUT)"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "$(params.git-url)"
                                },
                                {
                                    "name": "revision",
                                    "value": "$(params.revision)"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "$(params.revision)"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "build",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "cosign-public-secret-name",
                                    "value": "$(params.cosign-public-key-secret)"
                                },
                                {
                                    "name": "tpa_secret_name",
                                    "value": "$(params.trustification-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "DOCKERFILE",
                                    "value": "$(params.dockerfile)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                },
                                {
                                    "name": "BUILD_ARGS",
                                    "value": [
                                        "$(params.build-args[*])"
                                    ]
                                },
                                {
                                    "name": "BUILD_ARGS_FILE",
                                    "value": "$(params.build-args-file)"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Builds source code into a container image and pushes the image into container registry using buildah tool.\nIn addition it generates a SBOM file, injects the SBOM file into final container image and pushes the SBOM file as separate image using cosign tool.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "build-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "./Dockerfile",
                                        "description": "Path to the Dockerfile to build.",
                                        "name": "DOCKERFILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry)",
                                        "name": "TLSVERIFY",
                                        "type": "string"
                                    },
                                    {
                                        "default": [],
                                        "description": "Array of --build-arg values (\"arg=value\" strings)",
                                        "name": "BUILD_ARGS",
                                        "type": "array"
                                    },
                                    {
                                        "default": "",
                                        "description": "Path to a file with build arguments, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                                        "name": "BUILD_ARGS_FILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Digest of the image just built",
                                        "name": "IMAGE_DIGEST",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Image repository and tag where the built image was pushed",
                                        "name": "IMAGE_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Digests of the base images used for build",
                                        "name": "BASE_IMAGES_DIGESTS",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Link to the SBOM layer pushed to the registry as part of an OCI artifact.",
                                        "name": "SBOM_BLOB_URL",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "DOCKERFILE",
                                            "value": "$(params.DOCKERFILE)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "TLSVERIFY",
                                            "value": "$(params.TLSVERIFY)"
                                        },
                                        {
                                            "name": "BUILD_ARGS_FILE",
                                            "value": "$(params.BUILD_ARGS_FILE)"
                                        },
                                        {
                                            "name": "_BUILDAH_STARTED_IN_USERNS"
                                        },
                                        {
                                            "name": "BUILDAH_ISOLATION",
                                            "value": "chroot"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_PASSWORD",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_KEY",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.tpa_secret_name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "cosign.pub",
                                                    "name": "$(params.cosign-public-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "# Sync scripts to the writable workspace\ncp -rf /work/tssc/ /workspace/source/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e /workspace/source/tssc/common.sh\necho \"Successfully patched /workspace/source/tssc/common.sh\"\necho \"running init\"\npwd\nls -la\n/workspace/source/tssc/init.sh\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    },
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "build",
                                        "script": "echo \"running buildah-tssc\"\n/workspace/source/tssc/buildah-tssc.sh\ncat ./results/buildah-tssc/BASE_IMAGES_DIGESTS \u003e $(results.BASE_IMAGES_DIGESTS.path)\ncat ./results/buildah-tssc/IMAGE_DIGEST \u003e $(results.IMAGE_DIGEST.path)\ncat ./results/buildah-tssc/IMAGE_URL \u003e $(results.IMAGE_URL.path)\ncat ./results/buildah-tssc/SBOM_BLOB_URL \u003e $(results.SBOM_BLOB_URL.path)\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deploy",
                            "params": [
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Deploy built image to development environment.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy",
                                        "script": "echo \"running update-deployment\"\n/workspace/source/tssc/update-deployment.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(params.event-type)",
                                    "operator": "notin",
                                    "values": [
                                        "pull_request",
                                        "Merge Request"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deployment-check",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload-check",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy-check",
                                        "script": "echo \"running acs-deploy-check\"\n/workspace/source/tssc/acs-deploy-check.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(params.event-type)",
                                    "operator": "in",
                                    "values": [
                                        "push",
                                        "Push"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "scan",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "scan-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "scan",
                                        "script": "echo \"running acs-image-check\"\n/workspace/source/tssc/acs-image-check.sh\necho \"running acs-image-scan\"\n/workspace/source/tssc/acs-image-scan.sh\ncat ./results/acs-image-scan/SCAN_OUTPUT \u003e $(results.SCAN_OUTPUT.path)\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "show-sbom",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Show SBOM report for the built image.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "show-workload-sbom",
                                        "task.output.location": "results",
                                        "task.results.format": "application/text",
                                        "task.results.key": "LINK_TO_SBOM",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Placeholder result meant to make RHDH identify this task as the producer of the SBOM logs.",
                                        "name": "LINK_TO_SBOM",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "show-sbom",
                                        "script": "echo \"running show-sbom-rhdh\"\n/workspace/source/tssc/show-sbom-rhdh.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "summarize",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Summarize all the steps in the build pipeline.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "summarize-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "summary",
                                        "script": "echo \"running summary\"\n/workspace/source/tssc/summary.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "taskRunTemplate": {
                    "serviceAccountName": "pipeline"
                },
                "timeouts": {
                    "pipeline": "1h0m0s"
                },
                "workspaces": [
                    {
                        "name": "git-auth",
                        "secret": {
                            "secretName": "pac-gitauth-lzbatb"
                        }
                    },
                    {
                        "name": "workspace",
                        "volumeClaimTemplate": {
                            "metadata": {
                                "creationTimestamp": null
                            },
                            "spec": {
                                "accessModes": [
                                    "ReadWriteOnce"
                                ],
                                "resources": {
                                    "requests": {
                                        "storage": "1Gi"
                                    }
                                }
                            },
                            "status": {}
                        }
                    }
                ]
            },
            "status": {
                "childReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-pyth4ec1ae95a685b074189754b7b8c0f14b-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python-jnltvjzx-on-pull-request-8vw7h-build",
                        "pipelineTaskName": "build"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python-jnltvjzx-on-pull-request-8vw7h-scan",
                        "pipelineTaskName": "scan"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python-jnltvjzx-on-pull-request-8vw7h-show-sbom",
                        "pipelineTaskName": "show-sbom"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python-jnltvjzx-on-pull-request-8vw7h-summarize",
                        "pipelineTaskName": "summarize"
                    }
                ],
                "completionTime": "2026-04-27T16:35:16Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-27T16:35:16Z",
                        "message": "Tasks Completed: 5 (Failed: 0, Cancelled 0), Skipped: 2",
                        "reason": "Completed",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Source Repository URL",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Revision of the Source Repository",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "description": "Fully Qualified Output Image",
                            "name": "output-image",
                            "type": "string"
                        },
                        {
                            "default": ".",
                            "description": "Path to the source code of an application's component from where to build image.",
                            "name": "path-context",
                            "type": "string"
                        },
                        {
                            "default": "Dockerfile",
                            "description": "Path to the Dockerfile inside the context specified by parameter path-context",
                            "name": "dockerfile",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Force rebuild image",
                            "name": "rebuild",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Image tag expiration time, time values could be something like 1h, 2d, 3w for hours, days, and weeks, respectively.",
                            "name": "image-expires-after",
                            "type": "string"
                        },
                        {
                            "default": "rox-api-token",
                            "name": "stackrox-secret",
                            "type": "string"
                        },
                        {
                            "default": "gitops-auth-secret",
                            "description": "Secret name to enable this pipeline to update the gitops repo with the new image. ",
                            "name": "gitops-auth-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "cosign-pub",
                            "description": "Secret name to enable verify cosign signature. ",
                            "name": "cosign-public-key-secret",
                            "type": "string"
                        },
                        {
                            "default": "push",
                            "description": "Event that triggered the pipeline run, e.g. push, pull_request",
                            "name": "event-type",
                            "type": "string"
                        },
                        {
                            "default": [],
                            "description": "Array of --build-arg values (\"arg=value\" strings) for buildah",
                            "name": "build-args",
                            "type": "array"
                        },
                        {
                            "default": "",
                            "description": "Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                            "name": "build-args-file",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Digest of the image just built",
                            "name": "IMAGE_DIGEST",
                            "value": "$(tasks.build.results.IMAGE_DIGEST)"
                        },
                        {
                            "description": "Image repository and tag where the built image was pushed",
                            "name": "IMAGE_URL",
                            "value": "$(tasks.build.results.IMAGE_URL)"
                        },
                        {
                            "description": "Digests of the base images used for build",
                            "name": "BASE_IMAGES_DIGESTS",
                            "value": "$(tasks.build.results.BASE_IMAGES_DIGESTS)"
                        },
                        {
                            "description": "Link to the SBOM layer pushed to the registry",
                            "name": "SBOM_BLOB_URL",
                            "value": "$(tasks.build.results.SBOM_BLOB_URL)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_URL",
                            "value": "$(tasks.clone-repository.results.url)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_COMMIT",
                            "value": "$(tasks.clone-repository.results.commit)"
                        },
                        {
                            "description": "",
                            "name": "ACS_SCAN_OUTPUT",
                            "value": "$(tasks.scan.results.SCAN_OUTPUT)"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-jnltvjzx"
                                },
                                {
                                    "name": "revision",
                                    "value": "0eef320309d9b78a010d143197aebb771a10698d"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "0eef320309d9b78a010d143197aebb771a10698d"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "build",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "cosign-public-secret-name",
                                    "value": "cosign-pub"
                                },
                                {
                                    "name": "tpa_secret_name",
                                    "value": "tpa-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-python-jnltvjzx:on-pr-0eef320309d9b78a010d143197aebb771a10698d"
                                },
                                {
                                    "name": "DOCKERFILE",
                                    "value": "docker/Dockerfile"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                },
                                {
                                    "name": "BUILD_ARGS",
                                    "value": []
                                },
                                {
                                    "name": "BUILD_ARGS_FILE",
                                    "value": ""
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Builds source code into a container image and pushes the image into container registry using buildah tool.\nIn addition it generates a SBOM file, injects the SBOM file into final container image and pushes the SBOM file as separate image using cosign tool.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "build-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "./Dockerfile",
                                        "description": "Path to the Dockerfile to build.",
                                        "name": "DOCKERFILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry)",
                                        "name": "TLSVERIFY",
                                        "type": "string"
                                    },
                                    {
                                        "default": [],
                                        "description": "Array of --build-arg values (\"arg=value\" strings)",
                                        "name": "BUILD_ARGS",
                                        "type": "array"
                                    },
                                    {
                                        "default": "",
                                        "description": "Path to a file with build arguments, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                                        "name": "BUILD_ARGS_FILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Digest of the image just built",
                                        "name": "IMAGE_DIGEST",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Image repository and tag where the built image was pushed",
                                        "name": "IMAGE_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Digests of the base images used for build",
                                        "name": "BASE_IMAGES_DIGESTS",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Link to the SBOM layer pushed to the registry as part of an OCI artifact.",
                                        "name": "SBOM_BLOB_URL",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "DOCKERFILE",
                                            "value": "$(params.DOCKERFILE)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "TLSVERIFY",
                                            "value": "$(params.TLSVERIFY)"
                                        },
                                        {
                                            "name": "BUILD_ARGS_FILE",
                                            "value": "$(params.BUILD_ARGS_FILE)"
                                        },
                                        {
                                            "name": "_BUILDAH_STARTED_IN_USERNS"
                                        },
                                        {
                                            "name": "BUILDAH_ISOLATION",
                                            "value": "chroot"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_PASSWORD",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_KEY",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.tpa_secret_name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "cosign.pub",
                                                    "name": "$(params.cosign-public-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "DOCKERFILE",
                                                "value": "$(params.DOCKERFILE)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "TLSVERIFY",
                                                "value": "$(params.TLSVERIFY)"
                                            },
                                            {
                                                "name": "BUILD_ARGS_FILE",
                                                "value": "$(params.BUILD_ARGS_FILE)"
                                            },
                                            {
                                                "name": "_BUILDAH_STARTED_IN_USERNS"
                                            },
                                            {
                                                "name": "BUILDAH_ISOLATION",
                                                "value": "chroot"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_PASSWORD",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_KEY",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.tpa_secret_name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "cosign.pub",
                                                        "name": "$(params.cosign-public-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "# Sync scripts to the writable workspace\ncp -rf /work/tssc/ /workspace/source/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e /workspace/source/tssc/common.sh\necho \"Successfully patched /workspace/source/tssc/common.sh\"\necho \"running init\"\npwd\nls -la\n/workspace/source/tssc/init.sh\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    },
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "DOCKERFILE",
                                                "value": "$(params.DOCKERFILE)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "TLSVERIFY",
                                                "value": "$(params.TLSVERIFY)"
                                            },
                                            {
                                                "name": "BUILD_ARGS_FILE",
                                                "value": "$(params.BUILD_ARGS_FILE)"
                                            },
                                            {
                                                "name": "_BUILDAH_STARTED_IN_USERNS"
                                            },
                                            {
                                                "name": "BUILDAH_ISOLATION",
                                                "value": "chroot"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_PASSWORD",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_KEY",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.tpa_secret_name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "cosign.pub",
                                                        "name": "$(params.cosign-public-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "build",
                                        "script": "echo \"running buildah-tssc\"\n/workspace/source/tssc/buildah-tssc.sh\ncat ./results/buildah-tssc/BASE_IMAGES_DIGESTS \u003e $(results.BASE_IMAGES_DIGESTS.path)\ncat ./results/buildah-tssc/IMAGE_DIGEST \u003e $(results.IMAGE_DIGEST.path)\ncat ./results/buildah-tssc/IMAGE_URL \u003e $(results.IMAGE_URL.path)\ncat ./results/buildah-tssc/SBOM_BLOB_URL \u003e $(results.SBOM_BLOB_URL.path)\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deploy",
                            "params": [
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-python-jnltvjzx:on-pr-0eef320309d9b78a010d143197aebb771a10698d"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Deploy built image to development environment.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy",
                                        "script": "echo \"running update-deployment\"\n/workspace/source/tssc/update-deployment.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "pull_request",
                                    "operator": "notin",
                                    "values": [
                                        "pull_request",
                                        "Merge Request"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deployment-check",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-python-jnltvjzx:on-pr-0eef320309d9b78a010d143197aebb771a10698d"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload-check",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy-check",
                                        "script": "echo \"running acs-deploy-check\"\n/workspace/source/tssc/acs-deploy-check.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "pull_request",
                                    "operator": "in",
                                    "values": [
                                        "push",
                                        "Push"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "scan",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-python-jnltvjzx:on-pr-0eef320309d9b78a010d143197aebb771a10698d"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "scan-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "scan",
                                        "script": "echo \"running acs-image-check\"\n/workspace/source/tssc/acs-image-check.sh\necho \"running acs-image-scan\"\n/workspace/source/tssc/acs-image-scan.sh\ncat ./results/acs-image-scan/SCAN_OUTPUT \u003e $(results.SCAN_OUTPUT.path)\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "show-sbom",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-python-jnltvjzx:on-pr-0eef320309d9b78a010d143197aebb771a10698d"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Show SBOM report for the built image.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "show-workload-sbom",
                                        "task.output.location": "results",
                                        "task.results.format": "application/text",
                                        "task.results.key": "LINK_TO_SBOM",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Placeholder result meant to make RHDH identify this task as the producer of the SBOM logs.",
                                        "name": "LINK_TO_SBOM",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "show-sbom",
                                        "script": "echo \"running show-sbom-rhdh\"\n/workspace/source/tssc/show-sbom-rhdh.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "summarize",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-python-jnltvjzx:on-pr-0eef320309d9b78a010d143197aebb771a10698d"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Summarize all the steps in the build pipeline.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "summarize-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "summary",
                                        "script": "echo \"running summary\"\n/workspace/source/tssc/summary.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "results": [
                    {
                        "name": "IMAGE_DIGEST",
                        "value": "sha256:a8880f08075b4edc64990d5f0526c6fed76b32db4655c60415ae191852121a3b"
                    },
                    {
                        "name": "IMAGE_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-python-jnltvjzx:on-pr-0eef320309d9b78a010d143197aebb771a10698d"
                    },
                    {
                        "name": "BASE_IMAGES_DIGESTS",
                        "value": "registry.access.redhat.com/ubi9/python-312:latest@sha256:0abad955c2c2e4575dc8987d76b8c49a7dd8e0679063e3118dab03c54528232f\n"
                    },
                    {
                        "name": "SBOM_BLOB_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-python-jnltvjzx@sha256:1679734a425c037b20e68976aae9e4005edf9dc74e94f6d0eae3fb7cbdc0186c"
                    },
                    {
                        "name": "CHAINS-GIT_URL",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-jnltvjzx"
                    },
                    {
                        "name": "CHAINS-GIT_COMMIT",
                        "value": "0eef320309d9b78a010d143197aebb771a10698d"
                    },
                    {
                        "name": "ACS_SCAN_OUTPUT",
                        "value": "{\"vulnerabilities\":{\"critical\":0,\"high\":10,\"medium\":123,\"low\":227}}\n"
                    }
                ],
                "skippedTasks": [
                    {
                        "name": "deploy",
                        "reason": "When Expressions evaluated to false",
                        "whenExpressions": [
                            {
                                "input": "pull_request",
                                "operator": "notin",
                                "values": [
                                    "pull_request",
                                    "Merge Request"
                                ]
                            }
                        ]
                    },
                    {
                        "name": "deployment-check",
                        "reason": "When Expressions evaluated to false",
                        "whenExpressions": [
                            {
                                "input": "pull_request",
                                "operator": "in",
                                "values": [
                                    "push",
                                    "Push"
                                ]
                            }
                        ]
                    }
                ],
                "startTime": "2026-04-27T16:32:40Z"
            }
        },
        {
            "apiVersion": "tekton.dev/v1",
            "kind": "PipelineRun",
            "metadata": {
                "annotations": {
                    "chains.tekton.dev/signed": "true",
                    "chains.tekton.dev/transparency": "https://rekor-server-tssc-tas.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/api/v1/log/entries?logIndex=111",
                    "pipelinesascode.tekton.dev/branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/check-run-id": "73233751626",
                    "pipelinesascode.tekton.dev/controller-info": "{\"name\":\"default\",\"configmap\":\"pipelines-as-code\",\"secret\":\"pipelines-as-code-secret\", \"gRepo\": \"pipelines-as-code\"}",
                    "pipelinesascode.tekton.dev/event-type": "push",
                    "pipelinesascode.tekton.dev/git-auth-secret": "pac-gitauth-wcfsex",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2ad7207044.fkjd.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-python-jnltvjzx-on-push-5q8x9",
                    "pipelinesascode.tekton.dev/max-keep-runs": "2",
                    "pipelinesascode.tekton.dev/on-event": "[push]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-python-jnltvjzx-on-push",
                    "pipelinesascode.tekton.dev/pipeline": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/pipelines/docker-build-tssc.yaml",
                    "pipelinesascode.tekton.dev/repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-jnltvjzx",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-python-jnltvjzx-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "0da1e6cc1c7d1e5e4dfa6791c3db27cda13732c6",
                    "pipelinesascode.tekton.dev/sha-title": "Merge pull request #1 from rhtap-rhdh-qe/test-branch-1777307549097",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-jnltvjzx/commit/0da1e6cc1c7d1e5e4dfa6791c3db27cda13732c6",
                    "pipelinesascode.tekton.dev/source-branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-jnltvjzx",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/task-0": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/init.yaml",
                    "pipelinesascode.tekton.dev/task-1": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/git-clone.yaml",
                    "pipelinesascode.tekton.dev/task-10": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/deploy-workload.yaml",
                    "pipelinesascode.tekton.dev/task-11": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/scan-workload.yaml",
                    "pipelinesascode.tekton.dev/task-12": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/summarize-workload.yaml",
                    "pipelinesascode.tekton.dev/task-13": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/show-workload-sbom.yaml",
                    "pipelinesascode.tekton.dev/task-14": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/deploy-workload-check.yaml",
                    "pipelinesascode.tekton.dev/task-2": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/buildah-rhtap.yaml",
                    "pipelinesascode.tekton.dev/task-3": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-image-check.yaml",
                    "pipelinesascode.tekton.dev/task-4": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-image-scan.yaml",
                    "pipelinesascode.tekton.dev/task-5": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/acs-deploy-check.yaml",
                    "pipelinesascode.tekton.dev/task-6": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/update-deployment.yaml",
                    "pipelinesascode.tekton.dev/task-7": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/show-sbom-rhdh.yaml",
                    "pipelinesascode.tekton.dev/task-8": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/summary.yaml",
                    "pipelinesascode.tekton.dev/task-9": "https://raw.githubusercontent.com/redhat-appstudio/tssc-dev-multi-ci/main/samples/tekton/pac/tasks/build-workload.yaml",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-python-jnltvjzx",
                    "results.tekton.dev/record": "tssc-app-ci/results/0a53ec11-6f20-4a74-8953-73e87f749bf5/records/0a53ec11-6f20-4a74-8953-73e87f749bf5",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-python-jnltvjzx\",\"commit\":\"0da1e6cc1c7d1e5e4dfa6791c3db27cda13732c6\",\"eventType\":\"push\"}",
                    "results.tekton.dev/result": "tssc-app-ci/results/0a53ec11-6f20-4a74-8953-73e87f749bf5",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-27T16:35:32Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "results.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-python-jnltvjzx-on-push-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-python-jnltvjzx",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-python-jnltvjzx",
                    "backstage.io/kubernetes-id": "e2e-tests-python-jnltvjzx",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-python-jnltvjzx",
                    "pipelinesascode.tekton.dev/check-run-id": "73233751626",
                    "pipelinesascode.tekton.dev/event-type": "push",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-python-jnltvjzx-on-push",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-python-jnltvjzx-repository",
                    "pipelinesascode.tekton.dev/sha": "0da1e6cc1c7d1e5e4dfa6791c3db27cda13732c6",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-python-jnltvjzx",
                    "tekton.dev/pipeline": "e2e-tests-python-jnltvjzx-on-push-5q8x9"
                },
                "name": "e2e-tests-python-jnltvjzx-on-push-5q8x9",
                "namespace": "tssc-app-ci",
                "resourceVersion": "50099",
                "uid": "0a53ec11-6f20-4a74-8953-73e87f749bf5"
            },
            "spec": {
                "params": [
                    {
                        "name": "dockerfile",
                        "value": "docker/Dockerfile"
                    },
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-jnltvjzx"
                    },
                    {
                        "name": "image-expires-after",
                        "value": "5d"
                    },
                    {
                        "name": "output-image",
                        "value": "quay.io/rhtap_qe/e2e-tests-python-jnltvjzx:0da1e6cc1c7d1e5e4dfa6791c3db27cda13732c6"
                    },
                    {
                        "name": "path-context",
                        "value": "."
                    },
                    {
                        "name": "revision",
                        "value": "0da1e6cc1c7d1e5e4dfa6791c3db27cda13732c6"
                    },
                    {
                        "name": "event-type",
                        "value": "push"
                    },
                    {
                        "name": "gitops-auth-secret-name",
                        "value": "gitops-auth-secret"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Source Repository URL",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Revision of the Source Repository",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "description": "Fully Qualified Output Image",
                            "name": "output-image",
                            "type": "string"
                        },
                        {
                            "default": ".",
                            "description": "Path to the source code of an application's component from where to build image.",
                            "name": "path-context",
                            "type": "string"
                        },
                        {
                            "default": "Dockerfile",
                            "description": "Path to the Dockerfile inside the context specified by parameter path-context",
                            "name": "dockerfile",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Force rebuild image",
                            "name": "rebuild",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Image tag expiration time, time values could be something like 1h, 2d, 3w for hours, days, and weeks, respectively.",
                            "name": "image-expires-after",
                            "type": "string"
                        },
                        {
                            "default": "rox-api-token",
                            "name": "stackrox-secret",
                            "type": "string"
                        },
                        {
                            "default": "gitops-auth-secret",
                            "description": "Secret name to enable this pipeline to update the gitops repo with the new image. ",
                            "name": "gitops-auth-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "cosign-pub",
                            "description": "Secret name to enable verify cosign signature. ",
                            "name": "cosign-public-key-secret",
                            "type": "string"
                        },
                        {
                            "default": "push",
                            "description": "Event that triggered the pipeline run, e.g. push, pull_request",
                            "name": "event-type",
                            "type": "string"
                        },
                        {
                            "default": [],
                            "description": "Array of --build-arg values (\"arg=value\" strings) for buildah",
                            "name": "build-args",
                            "type": "array"
                        },
                        {
                            "default": "",
                            "description": "Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                            "name": "build-args-file",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Digest of the image just built",
                            "name": "IMAGE_DIGEST",
                            "value": "$(tasks.build.results.IMAGE_DIGEST)"
                        },
                        {
                            "description": "Image repository and tag where the built image was pushed",
                            "name": "IMAGE_URL",
                            "value": "$(tasks.build.results.IMAGE_URL)"
                        },
                        {
                            "description": "Digests of the base images used for build",
                            "name": "BASE_IMAGES_DIGESTS",
                            "value": "$(tasks.build.results.BASE_IMAGES_DIGESTS)"
                        },
                        {
                            "description": "Link to the SBOM layer pushed to the registry",
                            "name": "SBOM_BLOB_URL",
                            "value": "$(tasks.build.results.SBOM_BLOB_URL)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_URL",
                            "value": "$(tasks.clone-repository.results.url)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_COMMIT",
                            "value": "$(tasks.clone-repository.results.commit)"
                        },
                        {
                            "description": "",
                            "name": "ACS_SCAN_OUTPUT",
                            "value": "$(tasks.scan.results.SCAN_OUTPUT)"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "$(params.git-url)"
                                },
                                {
                                    "name": "revision",
                                    "value": "$(params.revision)"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "$(params.revision)"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "build",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "cosign-public-secret-name",
                                    "value": "$(params.cosign-public-key-secret)"
                                },
                                {
                                    "name": "tpa_secret_name",
                                    "value": "$(params.trustification-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "DOCKERFILE",
                                    "value": "$(params.dockerfile)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                },
                                {
                                    "name": "BUILD_ARGS",
                                    "value": [
                                        "$(params.build-args[*])"
                                    ]
                                },
                                {
                                    "name": "BUILD_ARGS_FILE",
                                    "value": "$(params.build-args-file)"
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Builds source code into a container image and pushes the image into container registry using buildah tool.\nIn addition it generates a SBOM file, injects the SBOM file into final container image and pushes the SBOM file as separate image using cosign tool.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "build-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "./Dockerfile",
                                        "description": "Path to the Dockerfile to build.",
                                        "name": "DOCKERFILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry)",
                                        "name": "TLSVERIFY",
                                        "type": "string"
                                    },
                                    {
                                        "default": [],
                                        "description": "Array of --build-arg values (\"arg=value\" strings)",
                                        "name": "BUILD_ARGS",
                                        "type": "array"
                                    },
                                    {
                                        "default": "",
                                        "description": "Path to a file with build arguments, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                                        "name": "BUILD_ARGS_FILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Digest of the image just built",
                                        "name": "IMAGE_DIGEST",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Image repository and tag where the built image was pushed",
                                        "name": "IMAGE_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Digests of the base images used for build",
                                        "name": "BASE_IMAGES_DIGESTS",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Link to the SBOM layer pushed to the registry as part of an OCI artifact.",
                                        "name": "SBOM_BLOB_URL",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "DOCKERFILE",
                                            "value": "$(params.DOCKERFILE)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "TLSVERIFY",
                                            "value": "$(params.TLSVERIFY)"
                                        },
                                        {
                                            "name": "BUILD_ARGS_FILE",
                                            "value": "$(params.BUILD_ARGS_FILE)"
                                        },
                                        {
                                            "name": "_BUILDAH_STARTED_IN_USERNS"
                                        },
                                        {
                                            "name": "BUILDAH_ISOLATION",
                                            "value": "chroot"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_PASSWORD",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_KEY",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.tpa_secret_name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "cosign.pub",
                                                    "name": "$(params.cosign-public-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "# Sync scripts to the writable workspace\ncp -rf /work/tssc/ /workspace/source/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e /workspace/source/tssc/common.sh\necho \"Successfully patched /workspace/source/tssc/common.sh\"\necho \"running init\"\npwd\nls -la\n/workspace/source/tssc/init.sh\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    },
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "build",
                                        "script": "echo \"running buildah-tssc\"\n/workspace/source/tssc/buildah-tssc.sh\ncat ./results/buildah-tssc/BASE_IMAGES_DIGESTS \u003e $(results.BASE_IMAGES_DIGESTS.path)\ncat ./results/buildah-tssc/IMAGE_DIGEST \u003e $(results.IMAGE_DIGEST.path)\ncat ./results/buildah-tssc/IMAGE_URL \u003e $(results.IMAGE_URL.path)\ncat ./results/buildah-tssc/SBOM_BLOB_URL \u003e $(results.SBOM_BLOB_URL.path)\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deploy",
                            "params": [
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Deploy built image to development environment.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy",
                                        "script": "echo \"running update-deployment\"\n/workspace/source/tssc/update-deployment.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(params.event-type)",
                                    "operator": "notin",
                                    "values": [
                                        "pull_request",
                                        "Merge Request"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deployment-check",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "$(params.gitops-auth-secret-name)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload-check",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy-check",
                                        "script": "echo \"running acs-deploy-check\"\n/workspace/source/tssc/acs-deploy-check.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "$(params.event-type)",
                                    "operator": "in",
                                    "values": [
                                        "push",
                                        "Push"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "scan",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "$(params.stackrox-secret)"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "scan-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "scan",
                                        "script": "echo \"running acs-image-check\"\n/workspace/source/tssc/acs-image-check.sh\necho \"running acs-image-scan\"\n/workspace/source/tssc/acs-image-scan.sh\ncat ./results/acs-image-scan/SCAN_OUTPUT \u003e $(results.SCAN_OUTPUT.path)\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "show-sbom",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Show SBOM report for the built image.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "show-workload-sbom",
                                        "task.output.location": "results",
                                        "task.results.format": "application/text",
                                        "task.results.key": "LINK_TO_SBOM",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Placeholder result meant to make RHDH identify this task as the producer of the SBOM logs.",
                                        "name": "LINK_TO_SBOM",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "show-sbom",
                                        "script": "echo \"running show-sbom-rhdh\"\n/workspace/source/tssc/show-sbom-rhdh.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "summarize",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "$(params.output-image)"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "$(params.path-context)"
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "$(params.image-expires-after)"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Summarize all the steps in the build pipeline.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "summarize-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "summary",
                                        "script": "echo \"running summary\"\n/workspace/source/tssc/summary.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ]
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "taskRunTemplate": {
                    "serviceAccountName": "pipeline"
                },
                "timeouts": {
                    "pipeline": "1h0m0s"
                },
                "workspaces": [
                    {
                        "name": "gitops-auth",
                        "secret": {
                            "secretName": "$(params.gitops-auth-secret-name)"
                        }
                    },
                    {
                        "name": "git-auth",
                        "secret": {
                            "secretName": "pac-gitauth-wcfsex"
                        }
                    },
                    {
                        "name": "workspace",
                        "volumeClaimTemplate": {
                            "metadata": {
                                "creationTimestamp": null
                            },
                            "spec": {
                                "accessModes": [
                                    "ReadWriteOnce"
                                ],
                                "resources": {
                                    "requests": {
                                        "storage": "1Gi"
                                    }
                                }
                            },
                            "status": {}
                        }
                    }
                ]
            },
            "status": {
                "childReferences": [
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python-jnltvjzx-on-push-5q8x9-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python-jnltvjzx-on-push-5q8x9-build",
                        "pipelineTaskName": "build"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python-jnltvjzx-on-push-5q8x9-deploy",
                        "pipelineTaskName": "deploy",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "notin",
                                "values": [
                                    "pull_request",
                                    "Merge Request"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python-jnltvjzx-on-push-5q8x9-deployment-check",
                        "pipelineTaskName": "deployment-check",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "in",
                                "values": [
                                    "push",
                                    "Push"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python-jnltvjzx-on-push-5q8x9-scan",
                        "pipelineTaskName": "scan"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python-jnltvjzx-on-push-5q8x9-show-sbom",
                        "pipelineTaskName": "show-sbom"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python-jnltvjzx-on-push-5q8x9-summarize",
                        "pipelineTaskName": "summarize"
                    }
                ],
                "completionTime": "2026-04-27T16:38:11Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-27T16:38:11Z",
                        "message": "Tasks Completed: 7 (Failed: 0, Cancelled 0), Skipped: 0",
                        "reason": "Succeeded",
                        "status": "True",
                        "type": "Succeeded"
                    }
                ],
                "pipelineSpec": {
                    "params": [
                        {
                            "description": "Source Repository URL",
                            "name": "git-url",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Revision of the Source Repository",
                            "name": "revision",
                            "type": "string"
                        },
                        {
                            "description": "Fully Qualified Output Image",
                            "name": "output-image",
                            "type": "string"
                        },
                        {
                            "default": ".",
                            "description": "Path to the source code of an application's component from where to build image.",
                            "name": "path-context",
                            "type": "string"
                        },
                        {
                            "default": "Dockerfile",
                            "description": "Path to the Dockerfile inside the context specified by parameter path-context",
                            "name": "dockerfile",
                            "type": "string"
                        },
                        {
                            "default": "false",
                            "description": "Force rebuild image",
                            "name": "rebuild",
                            "type": "string"
                        },
                        {
                            "default": "",
                            "description": "Image tag expiration time, time values could be something like 1h, 2d, 3w for hours, days, and weeks, respectively.",
                            "name": "image-expires-after",
                            "type": "string"
                        },
                        {
                            "default": "rox-api-token",
                            "name": "stackrox-secret",
                            "type": "string"
                        },
                        {
                            "default": "gitops-auth-secret",
                            "description": "Secret name to enable this pipeline to update the gitops repo with the new image. ",
                            "name": "gitops-auth-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "tpa-secret",
                            "description": "The name of the Secret that contains Trustification (TPA) configuration",
                            "name": "trustification-secret-name",
                            "type": "string"
                        },
                        {
                            "default": "cosign-pub",
                            "description": "Secret name to enable verify cosign signature. ",
                            "name": "cosign-public-key-secret",
                            "type": "string"
                        },
                        {
                            "default": "push",
                            "description": "Event that triggered the pipeline run, e.g. push, pull_request",
                            "name": "event-type",
                            "type": "string"
                        },
                        {
                            "default": [],
                            "description": "Array of --build-arg values (\"arg=value\" strings) for buildah",
                            "name": "build-args",
                            "type": "array"
                        },
                        {
                            "default": "",
                            "description": "Path to a file with build arguments for buildah, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                            "name": "build-args-file",
                            "type": "string"
                        }
                    ],
                    "results": [
                        {
                            "description": "Digest of the image just built",
                            "name": "IMAGE_DIGEST",
                            "value": "$(tasks.build.results.IMAGE_DIGEST)"
                        },
                        {
                            "description": "Image repository and tag where the built image was pushed",
                            "name": "IMAGE_URL",
                            "value": "$(tasks.build.results.IMAGE_URL)"
                        },
                        {
                            "description": "Digests of the base images used for build",
                            "name": "BASE_IMAGES_DIGESTS",
                            "value": "$(tasks.build.results.BASE_IMAGES_DIGESTS)"
                        },
                        {
                            "description": "Link to the SBOM layer pushed to the registry",
                            "name": "SBOM_BLOB_URL",
                            "value": "$(tasks.build.results.SBOM_BLOB_URL)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_URL",
                            "value": "$(tasks.clone-repository.results.url)"
                        },
                        {
                            "description": "",
                            "name": "CHAINS-GIT_COMMIT",
                            "value": "$(tasks.clone-repository.results.commit)"
                        },
                        {
                            "description": "",
                            "name": "ACS_SCAN_OUTPUT",
                            "value": "$(tasks.scan.results.SCAN_OUTPUT)"
                        }
                    ],
                    "tasks": [
                        {
                            "name": "clone-repository",
                            "params": [
                                {
                                    "name": "url",
                                    "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-jnltvjzx"
                                },
                                {
                                    "name": "revision",
                                    "value": "0da1e6cc1c7d1e5e4dfa6791c3db27cda13732c6"
                                },
                                {
                                    "name": "depth",
                                    "value": "0"
                                }
                            ],
                            "taskSpec": {
                                "description": "The git-clone Task will clone a repo from the provided url into the output Workspace. By default the repo will be cloned into the root of your Workspace.",
                                "metadata": {
                                    "annotations": {
                                        "tekton.dev/categories": "Git",
                                        "tekton.dev/displayName": "git clone",
                                        "tekton.dev/pipelines.minVersion": "0.21.0",
                                        "tekton.dev/platforms": "linux/amd64,linux/s390x,linux/ppc64le,linux/arm64",
                                        "tekton.dev/tags": "git"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Repository URL to clone from.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Revision to checkout. (branch, tag, sha, ref, etc...)",
                                        "name": "revision",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Refspec to fetch before checking out revision.",
                                        "name": "refspec",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Initialize and fetch git submodules.",
                                        "name": "submodules",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Comma-separated list of specific submodule paths to initialize and fetch. Only submodules in the specified directories and their subdirectories will be fetched.\nEmpty string fetches all submodules. Parameter \"submodules\" must be set to \"true\" to make this parameter applicable.\n",
                                        "name": "submodulePaths",
                                        "type": "string"
                                    },
                                    {
                                        "default": "1",
                                        "description": "Perform a shallow clone, fetching only the most recent N commits.",
                                        "name": "depth",
                                        "type": "string"
                                    },
                                    {
                                        "default": "7",
                                        "description": "Length of short commit SHA",
                                        "name": "shortCommitLength",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Set the `http.sslVerify` global git config. Setting this to `false` is not advised unless you are sure that you trust your git remote.",
                                        "name": "sslVerify",
                                        "type": "string"
                                    },
                                    {
                                        "default": "source",
                                        "description": "Subdirectory inside the `output` Workspace to clone the repo into.",
                                        "name": "subdirectory",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Define the directory patterns to match or exclude when performing a sparse checkout.",
                                        "name": "sparseCheckoutDirectories",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Clean out the contents of the destination directory if it already exists before cloning.",
                                        "name": "deleteExisting",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTP proxy server for non-SSL requests.",
                                        "name": "httpProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "HTTPS proxy server for SSL requests.",
                                        "name": "httpsProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Opt out of proxying HTTP/HTTPS requests.",
                                        "name": "noProxy",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Log the commands that are executed during `git-clone`'s operation.",
                                        "name": "verbose",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Deprecated. Has no effect. Will be removed in the future.",
                                        "name": "gitInitImage",
                                        "type": "string"
                                    },
                                    {
                                        "default": "/tekton/home",
                                        "description": "Absolute path to the user's home directory. Set this explicitly if you are running the image as a non-root user.\n",
                                        "name": "userHome",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Check symlinks in the repo. If they're pointing outside of the repo, the build will fail.\n",
                                        "name": "enableSymlinkCheck",
                                        "type": "string"
                                    },
                                    {
                                        "default": "false",
                                        "description": "Fetch all tags for the repo.",
                                        "name": "fetchTags",
                                        "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": "Set to \"true\" to merge the targetBranch into the checked-out revision.",
                                        "name": "mergeTargetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "main",
                                        "description": "The target branch to merge into the revision (if mergeTargetBranch is true).",
                                        "name": "targetBranch",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "URL of the repository to fetch the target branch from when mergeTargetBranch is true.\nIf empty, uses the same repository (origin). This allows merging a branch from a different repository.\n",
                                        "name": "mergeSourceRepoUrl",
                                        "type": "string"
                                    },
                                    {
                                        "default": "",
                                        "description": "Perform a shallow fetch of the target branch, fetching only the most recent N commits.\nIf empty, fetches the full history of the target branch.\n",
                                        "name": "mergeSourceDepth",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task.",
                                        "name": "commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit SHA that was fetched by this Task limited to params.shortCommitLength number of characters",
                                        "name": "short-commit",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task.",
                                        "name": "url",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The commit timestamp of the checkout",
                                        "name": "commit-timestamp",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise URL that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The precise commit SHA that was fetched by this Task. This result uses Chains type hinting to include in the provenance.",
                                        "name": "CHAINS-GIT_COMMIT",
                                        "type": "string"
                                    },
                                    {
                                        "description": "The SHA of the commit after merging the target branch (if the param mergeTargetBranch is true).",
                                        "name": "merged_sha",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_URL",
                                                "value": "$(params.url)"
                                            },
                                            {
                                                "name": "PARAM_REVISION",
                                                "value": "0da1e6cc1c7d1e5e4dfa6791c3db27cda13732c6"
                                            },
                                            {
                                                "name": "PARAM_REFSPEC",
                                                "value": "$(params.refspec)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULES",
                                                "value": "$(params.submodules)"
                                            },
                                            {
                                                "name": "PARAM_SUBMODULE_PATHS",
                                                "value": "$(params.submodulePaths)"
                                            },
                                            {
                                                "name": "PARAM_DEPTH",
                                                "value": "$(params.depth)"
                                            },
                                            {
                                                "name": "PARAM_SHORT_COMMIT_LENGTH",
                                                "value": "$(params.shortCommitLength)"
                                            },
                                            {
                                                "name": "PARAM_SSL_VERIFY",
                                                "value": "$(params.sslVerify)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "PARAM_DELETE_EXISTING",
                                                "value": "$(params.deleteExisting)"
                                            },
                                            {
                                                "name": "PARAM_HTTP_PROXY",
                                                "value": "$(params.httpProxy)"
                                            },
                                            {
                                                "name": "PARAM_HTTPS_PROXY",
                                                "value": "$(params.httpsProxy)"
                                            },
                                            {
                                                "name": "PARAM_NO_PROXY",
                                                "value": "$(params.noProxy)"
                                            },
                                            {
                                                "name": "PARAM_VERBOSE",
                                                "value": "$(params.verbose)"
                                            },
                                            {
                                                "name": "PARAM_SPARSE_CHECKOUT_DIRECTORIES",
                                                "value": "$(params.sparseCheckoutDirectories)"
                                            },
                                            {
                                                "name": "PARAM_USER_HOME",
                                                "value": "$(params.userHome)"
                                            },
                                            {
                                                "name": "PARAM_FETCH_TAGS",
                                                "value": "$(params.fetchTags)"
                                            },
                                            {
                                                "name": "PARAM_GIT_INIT_IMAGE",
                                                "value": "$(params.gitInitImage)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_TARGET_BRANCH",
                                                "value": "$(params.mergeTargetBranch)"
                                            },
                                            {
                                                "name": "PARAM_TARGET_BRANCH",
                                                "value": "$(params.targetBranch)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_REPO_URL",
                                                "value": "$(params.mergeSourceRepoUrl)"
                                            },
                                            {
                                                "name": "PARAM_MERGE_SOURCE_DEPTH",
                                                "value": "$(params.mergeSourceDepth)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.ssh-directory.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_SSH_DIRECTORY_PATH",
                                                "value": "$(workspaces.ssh-directory.path)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND",
                                                "value": "$(workspaces.basic-auth.bound)"
                                            },
                                            {
                                                "name": "WORKSPACE_BASIC_AUTH_DIRECTORY_PATH",
                                                "value": "$(workspaces.basic-auth.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "clone",
                                        "script": "#!/usr/bin/env sh\nset -eu\n\nif [ \"${PARAM_VERBOSE}\" = \"true\" ] ; then\n  set -x\nfi\n\nif [ -n \"${PARAM_GIT_INIT_IMAGE}\" ]; then\n  echo \"WARNING: provided deprecated gitInitImage parameter has no effect.\"\nfi\n\nif [ \"${WORKSPACE_BASIC_AUTH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  if [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" ]; then\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.git-credentials\" \"${PARAM_USER_HOME}/.git-credentials\"\n    cp \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/.gitconfig\" \"${PARAM_USER_HOME}/.gitconfig\"\n  # Compatibility with kubernetes.io/basic-auth secrets\n  elif [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username\" ] \u0026\u0026 [ -f \"${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password\" ]; then\n    HOSTNAME=$(echo $PARAM_URL | awk -F/ '{print $3}')\n    echo \"https://$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/username):$(cat ${WORKSPACE_BASIC_AUTH_DIRECTORY_PATH}/password)@$HOSTNAME\" \u003e \"${PARAM_USER_HOME}/.git-credentials\"\n    echo -e \"[credential \\\"https://$HOSTNAME\\\"]\\n  helper = store\" \u003e \"${PARAM_USER_HOME}/.gitconfig\"\n  else\n    echo \"Unknown basic-auth workspace format\"\n    exit 1\n  fi\n  chmod 400 \"${PARAM_USER_HOME}/.git-credentials\"\n  chmod 400 \"${PARAM_USER_HOME}/.gitconfig\"\nfi\n\n# Should be called after the gitconfig is copied from the repository secret\nca_bundle=/mnt/trusted-ca/ca-bundle.crt\nif [ -f \"$ca_bundle\" ]; then\n  echo \"INFO: Using mounted CA bundle: $ca_bundle\"\n  git config --global http.sslCAInfo \"$ca_bundle\"\nfi\n\nif [ \"${WORKSPACE_SSH_DIRECTORY_BOUND}\" = \"true\" ] ; then\n  cp -R \"${WORKSPACE_SSH_DIRECTORY_PATH}\" \"${PARAM_USER_HOME}\"/.ssh\n  chmod 700 \"${PARAM_USER_HOME}\"/.ssh\n  chmod -R 400 \"${PARAM_USER_HOME}\"/.ssh/*\nfi\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\n\ncleandir() {\n  # Delete any existing contents of the repo directory if it exists.\n  #\n  # We don't just \"rm -rf ${CHECKOUT_DIR}\" because ${CHECKOUT_DIR} might be \"/\"\n  # or the root of a mounted volume.\n  if [ -d \"${CHECKOUT_DIR}\" ] ; then\n    # Delete non-hidden files and directories\n    rm -rf \"${CHECKOUT_DIR:?}\"/*\n    # Delete files and directories starting with . but excluding ..\n    rm -rf \"${CHECKOUT_DIR}\"/.[!.]*\n    # Delete files and directories starting with .. plus any other character\n    rm -rf \"${CHECKOUT_DIR}\"/..?*\n  fi\n}\n\nif [ \"${PARAM_DELETE_EXISTING}\" = \"true\" ] ; then\n  cleandir\nfi\n\ntest -z \"${PARAM_HTTP_PROXY}\" || export HTTP_PROXY=\"${PARAM_HTTP_PROXY}\"\ntest -z \"${PARAM_HTTPS_PROXY}\" || export HTTPS_PROXY=\"${PARAM_HTTPS_PROXY}\"\ntest -z \"${PARAM_NO_PROXY}\" || export NO_PROXY=\"${PARAM_NO_PROXY}\"\n\n/ko-app/git-init \\\n  -url=\"${PARAM_URL}\" \\\n  -revision=\"${PARAM_REVISION}\" \\\n  -refspec=\"${PARAM_REFSPEC}\" \\\n  -path=\"${CHECKOUT_DIR}\" \\\n  -sslVerify=\"${PARAM_SSL_VERIFY}\" \\\n  -submodules=\"${PARAM_SUBMODULES}\" \\\n  -submodulePaths=\"${PARAM_SUBMODULE_PATHS}\" \\\n  -depth=\"${PARAM_DEPTH}\" \\\n  -sparseCheckoutDirectories=\"${PARAM_SPARSE_CHECKOUT_DIRECTORIES}\" \\\n  -retryMaxAttempts=10\ncd \"${CHECKOUT_DIR}\"\nRESULT_SHA=\"$(git rev-parse HEAD)\"\nRESULT_SHA_SHORT=\"$(git rev-parse --short=\"${PARAM_SHORT_COMMIT_LENGTH}\" HEAD)\"\nEXIT_CODE=\"$?\"\nif [ \"${EXIT_CODE}\" != 0 ] ; then\n  exit \"${EXIT_CODE}\"\nfi\nif [ \"${PARAM_MERGE_TARGET_BRANCH}\" = \"true\" ]; then\n  echo \"Merge option enabled. Attempting to merge target branch '${PARAM_TARGET_BRANCH}' into HEAD (${RESULT_SHA}).\"\n\n  if [ \"${PARAM_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow clone with depth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  if [ \"${PARAM_MERGE_SOURCE_DEPTH}\" = \"1\" ]; then\n    echo \"WARNING: Shallow fetch with mergeSourceDepth=1 may cause merge conflicts due to insufficient commit history.\" \u003e\u00262\n  fi\n\n  # Determine if merging from a different repository or the same one\n  if [ -n \"${PARAM_MERGE_SOURCE_REPO_URL}\" ]; then\n    # Normalize URLs for comparison (remove trailing slashes and .git suffix)\n    normalize_url() {\n      echo \"$1\" | sed -e 's#/$##' -e 's#\\.git$##'\n    }\n\n    NORMALIZED_ORIGIN_URL=$(normalize_url \"${PARAM_URL}\")\n    NORMALIZED_MERGE_URL=$(normalize_url \"${PARAM_MERGE_SOURCE_REPO_URL}\")\n\n    if [ \"${NORMALIZED_ORIGIN_URL}\" = \"${NORMALIZED_MERGE_URL}\" ]; then\n      echo \"Merge source URL is the same as origin. Using existing 'origin' remote.\"\n      MERGE_REMOTE=\"origin\"\n    else\n      echo \"Merging from different repository: ${PARAM_MERGE_SOURCE_REPO_URL}\"\n      echo \"Adding remote 'merge-source'...\"\n      git remote add merge-source \"${PARAM_MERGE_SOURCE_REPO_URL}\"\n      MERGE_REMOTE=\"merge-source\"\n    fi\n  else\n    echo \"Merging from the same repository (origin)\"\n    MERGE_REMOTE=\"origin\"\n  fi\n\n  echo \"Fetching target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}...\"\n  if [ -n \"${PARAM_MERGE_SOURCE_DEPTH}\" ]; then\n    retry git fetch --depth=\"${PARAM_MERGE_SOURCE_DEPTH}\" ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  else\n    retry git fetch ${MERGE_REMOTE} \"${PARAM_TARGET_BRANCH}\"\n  fi\n  FETCH_EXIT_CODE=\"$?\"\n  if [ \"${FETCH_EXIT_CODE}\" != \"0\" ]; then\n    echo \"ERROR: Failed to fetch target branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE}.\" \u003e\u00262\n    exit \"${FETCH_EXIT_CODE}\"\n  fi\n\n  echo \"Merging ${MERGE_REMOTE}/${PARAM_TARGET_BRANCH} into current HEAD...\"\n  git config --global user.email \"tekton-git-clone@tekton.dev\"\n  git config --global user.name \"Tekton Git Clone Task\"\n  git merge \"${MERGE_REMOTE}/${PARAM_TARGET_BRANCH}\" --no-commit --no-ff --allow-unrelated-histories\n  MERGE_CHECK_EXIT_CODE=\"$?\"\n  if [ \"${MERGE_CHECK_EXIT_CODE}\" != \"0\" ] ; then\n    echo \"ERROR: Merge conflict detected or merge failed before commit.\" \u003e\u00262\n    echo \"--- Git Status ---\"\n    git status\n    echo \"------------------\"\n    exit \"${MERGE_CHECK_EXIT_CODE}\"\n  else\n    # Check if there are changes that need to be merged, and if so, create a merge commit.\n    if git diff --staged --quiet; then\n      echo \"No diff was found, skipping merge...\" \u003e\u00262\n    else\n      echo \"Merge successful (no conflicts found), committing...\"\n      git commit -m \"Merge branch '${PARAM_TARGET_BRANCH}' from ${MERGE_REMOTE} into ${RESULT_SHA}\"\n      COMMIT_EXIT_CODE=\"$?\"\n      if [ \"${COMMIT_EXIT_CODE}\" != \"0\" ]; then\n        echo \"ERROR: Failed to commit merge.\" \u003e\u00262\n        exit \"${COMMIT_EXIT_CODE}\"\n      fi\n      MERGED_SHA=$(git rev-parse HEAD)\n      echo \"New HEAD after merge: ${MERGED_SHA}\"\n      echo \"${MERGED_SHA}\" \u003e \"$(results.merged_sha.path)\"\n    fi\n  fi\nelse\n  echo \"Merge option disabled. Using checked-out revision ${RESULT_SHA} directly.\"\nfi\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.commit.path)\"\nprintf \"%s\" \"${RESULT_SHA}\" \u003e \"$(results.CHAINS-GIT_COMMIT.path)\"\nprintf \"%s\" \"${RESULT_SHA_SHORT}\" \u003e \"$(results.short-commit.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.url.path)\"\nprintf \"%s\" \"${PARAM_URL}\" \u003e \"$(results.CHAINS-GIT_URL.path)\"\nprintf \"%s\" \"$(git log -1 --pretty=%ct)\" \u003e \"$(results.commit-timestamp.path)\"\n\nif [ \"${PARAM_FETCH_TAGS}\" = \"true\" ] ; then\n  echo \"Fetching tags\"\n  retry git fetch --tags\nfi\n",
                                        "securityContext": {
                                            "runAsUser": 0
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/mnt/trusted-ca",
                                                "name": "trusted-ca",
                                                "readOnly": true
                                            }
                                        ]
                                    },
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "PARAM_ENABLE_SYMLINK_CHECK",
                                                "value": "$(params.enableSymlinkCheck)"
                                            },
                                            {
                                                "name": "PARAM_SUBDIRECTORY",
                                                "value": "$(params.subdirectory)"
                                            },
                                            {
                                                "name": "WORKSPACE_OUTPUT_PATH",
                                                "value": "$(workspaces.output.path)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "symlink-check",
                                        "script": "#!/usr/bin/env bash\nset -euo pipefail\n\nCHECKOUT_DIR=\"${WORKSPACE_OUTPUT_PATH}/${PARAM_SUBDIRECTORY}\"\ncheck_symlinks() {\n  FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=false\n  while read -r symlink\n  do\n    target=$(readlink -m \"$symlink\")\n    if ! [[ \"$target\" =~ ^$CHECKOUT_DIR ]]; then\n      echo \"The cloned repository contains symlink pointing outside of the cloned repository: $symlink\"\n      FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO=true\n    fi\n  done \u003c \u003c(find $CHECKOUT_DIR -type l -print)\n  if [ \"$FOUND_SYMLINK_POINTING_OUTSIDE_OF_REPO\" = true ] ; then\n    return 1\n  fi\n}\n\nif [ \"${PARAM_ENABLE_SYMLINK_CHECK}\" = \"true\" ] ; then\n  echo \"Running symlink check\"\n  check_symlinks\nfi\n"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "configMap": {
                                            "items": [
                                                {
                                                    "key": "$(params.caTrustConfigMapKey)",
                                                    "path": "ca-bundle.crt"
                                                }
                                            ],
                                            "name": "$(params.caTrustConfigMapName)",
                                            "optional": true
                                        },
                                        "name": "trusted-ca"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "The git repo will be cloned onto the volume backing this Workspace.",
                                        "name": "output"
                                    },
                                    {
                                        "description": "A .ssh directory with private key, known_hosts, config, etc. Copied to\nthe user's home before git commands are executed. Used to authenticate\nwith the git remote when performing the clone. Binding a Secret to this\nWorkspace is strongly recommended over other volume types.\n",
                                        "name": "ssh-directory",
                                        "optional": true
                                    },
                                    {
                                        "description": "A Workspace containing a .gitconfig and .git-credentials file or username and password.\nThese will be copied to the user's home before any git commands are run. Any\nother files in this Workspace are ignored. It is strongly recommended\nto use ssh-directory over basic-auth whenever possible and to bind a\nSecret to this Workspace over other volume types.\n",
                                        "name": "basic-auth",
                                        "optional": true
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "output",
                                    "workspace": "workspace"
                                },
                                {
                                    "name": "basic-auth",
                                    "workspace": "git-auth"
                                }
                            ]
                        },
                        {
                            "name": "build",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "cosign-public-secret-name",
                                    "value": "cosign-pub"
                                },
                                {
                                    "name": "tpa_secret_name",
                                    "value": "tpa-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-python-jnltvjzx:0da1e6cc1c7d1e5e4dfa6791c3db27cda13732c6"
                                },
                                {
                                    "name": "DOCKERFILE",
                                    "value": "docker/Dockerfile"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                },
                                {
                                    "name": "BUILD_ARGS",
                                    "value": []
                                },
                                {
                                    "name": "BUILD_ARGS_FILE",
                                    "value": ""
                                }
                            ],
                            "runAfter": [
                                "clone-repository"
                            ],
                            "taskSpec": {
                                "description": "Builds source code into a container image and pushes the image into container registry using buildah tool.\nIn addition it generates a SBOM file, injects the SBOM file into final container image and pushes the SBOM file as separate image using cosign tool.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "build-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "./Dockerfile",
                                        "description": "Path to the Dockerfile to build.",
                                        "name": "DOCKERFILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "true",
                                        "description": "Verify the TLS on the registry endpoint (for push/pull to a non-TLS registry)",
                                        "name": "TLSVERIFY",
                                        "type": "string"
                                    },
                                    {
                                        "default": [],
                                        "description": "Array of --build-arg values (\"arg=value\" strings)",
                                        "name": "BUILD_ARGS",
                                        "type": "array"
                                    },
                                    {
                                        "default": "",
                                        "description": "Path to a file with build arguments, see https://www.mankier.com/1/buildah-build#--build-arg-file",
                                        "name": "BUILD_ARGS_FILE",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Digest of the image just built",
                                        "name": "IMAGE_DIGEST",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Image repository and tag where the built image was pushed",
                                        "name": "IMAGE_URL",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Digests of the base images used for build",
                                        "name": "BASE_IMAGES_DIGESTS",
                                        "type": "string"
                                    },
                                    {
                                        "description": "Link to the SBOM layer pushed to the registry as part of an OCI artifact.",
                                        "name": "SBOM_BLOB_URL",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "DOCKERFILE",
                                            "value": "$(params.DOCKERFILE)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "TLSVERIFY",
                                            "value": "$(params.TLSVERIFY)"
                                        },
                                        {
                                            "name": "BUILD_ARGS_FILE",
                                            "value": "$(params.BUILD_ARGS_FILE)"
                                        },
                                        {
                                            "name": "_BUILDAH_STARTED_IN_USERNS"
                                        },
                                        {
                                            "name": "BUILDAH_ISOLATION",
                                            "value": "chroot"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_PASSWORD",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "COSIGN_SECRET_KEY",
                                            "value": "dummy"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "supported_cyclonedx_version",
                                                    "name": "$(params.tpa_secret_name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "COSIGN_PUBLIC_KEY",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "cosign.pub",
                                                    "name": "$(params.cosign-public-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "DOCKERFILE",
                                                "value": "$(params.DOCKERFILE)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "TLSVERIFY",
                                                "value": "$(params.TLSVERIFY)"
                                            },
                                            {
                                                "name": "BUILD_ARGS_FILE",
                                                "value": "$(params.BUILD_ARGS_FILE)"
                                            },
                                            {
                                                "name": "_BUILDAH_STARTED_IN_USERNS"
                                            },
                                            {
                                                "name": "BUILDAH_ISOLATION",
                                                "value": "chroot"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_PASSWORD",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_KEY",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.tpa_secret_name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "cosign.pub",
                                                        "name": "$(params.cosign-public-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "init",
                                        "script": "# Sync scripts to the writable workspace\ncp -rf /work/tssc/ /workspace/source/\n# Append the dummy function to common.sh\nprintf '\\nfunction registry-login() {\\n  echo \"--- Registry Auth Bypass Active ---\"\\n  return 0\\n}\\n' \u003e\u003e /workspace/source/tssc/common.sh\necho \"Successfully patched /workspace/source/tssc/common.sh\"\necho \"running init\"\npwd\nls -la\n/workspace/source/tssc/init.sh\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    },
                                    {
                                        "args": [
                                            "$(params.BUILD_ARGS[*])"
                                        ],
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "DOCKERFILE",
                                                "value": "$(params.DOCKERFILE)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "TLSVERIFY",
                                                "value": "$(params.TLSVERIFY)"
                                            },
                                            {
                                                "name": "BUILD_ARGS_FILE",
                                                "value": "$(params.BUILD_ARGS_FILE)"
                                            },
                                            {
                                                "name": "_BUILDAH_STARTED_IN_USERNS"
                                            },
                                            {
                                                "name": "BUILDAH_ISOLATION",
                                                "value": "chroot"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_PASSWORD",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "COSIGN_SECRET_KEY",
                                                "value": "dummy"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "TRUSTIFICATION_SUPPORTED_CYCLONEDX_VERSION",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "supported_cyclonedx_version",
                                                        "name": "$(params.tpa_secret_name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "COSIGN_PUBLIC_KEY",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "cosign.pub",
                                                        "name": "$(params.cosign-public-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "build",
                                        "script": "echo \"running buildah-tssc\"\n/workspace/source/tssc/buildah-tssc.sh\ncat ./results/buildah-tssc/BASE_IMAGES_DIGESTS \u003e $(results.BASE_IMAGES_DIGESTS.path)\ncat ./results/buildah-tssc/IMAGE_DIGEST \u003e $(results.IMAGE_DIGEST.path)\ncat ./results/buildah-tssc/IMAGE_URL \u003e $(results.IMAGE_URL.path)\ncat ./results/buildah-tssc/SBOM_BLOB_URL \u003e $(results.SBOM_BLOB_URL.path)\n",
                                        "securityContext": {
                                            "capabilities": {
                                                "add": [
                                                    "SETFCAP"
                                                ]
                                            }
                                        },
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deploy",
                            "params": [
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-python-jnltvjzx:0da1e6cc1c7d1e5e4dfa6791c3db27cda13732c6"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Deploy built image to development environment.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy",
                                        "script": "echo \"running update-deployment\"\n/workspace/source/tssc/update-deployment.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "push",
                                    "operator": "notin",
                                    "values": [
                                        "pull_request",
                                        "Merge Request"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "deployment-check",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "gitops-secret-name",
                                    "value": "gitops-auth-secret"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-python-jnltvjzx:0da1e6cc1c7d1e5e4dfa6791c3db27cda13732c6"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "deploy-workload-check",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_PASSWORD",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "password",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "GITOPS_AUTH_USERNAME",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "username",
                                                    "name": "$(params.gitops-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_PASSWORD",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "password",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "GITOPS_AUTH_USERNAME",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "username",
                                                        "name": "$(params.gitops-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "deploy-check",
                                        "script": "echo \"running acs-deploy-check\"\n/workspace/source/tssc/acs-deploy-check.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "when": [
                                {
                                    "input": "push",
                                    "operator": "in",
                                    "values": [
                                        "push",
                                        "Push"
                                    ]
                                }
                            ],
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "scan",
                            "params": [
                                {
                                    "name": "rox-secret-name",
                                    "value": "rox-api-token"
                                },
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-python-jnltvjzx:0da1e6cc1c7d1e5e4dfa6791c3db27cda13732c6"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "build"
                            ],
                            "taskSpec": {
                                "description": "Scan image built for vulnerabilities.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "scan-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Summary of the roxctl scan",
                                        "name": "SCAN_OUTPUT",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "ROX_CENTRAL_ENDPOINT",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-endpoint",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        },
                                        {
                                            "name": "ROX_API_TOKEN",
                                            "valueFrom": {
                                                "secretKeyRef": {
                                                    "key": "rox-api-token",
                                                    "name": "$(params.rox-secret-name)"
                                                }
                                            }
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "ROX_CENTRAL_ENDPOINT",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-endpoint",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            },
                                            {
                                                "name": "ROX_API_TOKEN",
                                                "valueFrom": {
                                                    "secretKeyRef": {
                                                        "key": "rox-api-token",
                                                        "name": "$(params.rox-secret-name)"
                                                    }
                                                }
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "scan",
                                        "script": "echo \"running acs-image-check\"\n/workspace/source/tssc/acs-image-check.sh\necho \"running acs-image-scan\"\n/workspace/source/tssc/acs-image-scan.sh\ncat ./results/acs-image-scan/SCAN_OUTPUT \u003e $(results.SCAN_OUTPUT.path)\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "show-sbom",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-python-jnltvjzx:0da1e6cc1c7d1e5e4dfa6791c3db27cda13732c6"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Show SBOM report for the built image.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "show-workload-sbom",
                                        "task.output.location": "results",
                                        "task.results.format": "application/text",
                                        "task.results.key": "LINK_TO_SBOM",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "results": [
                                    {
                                        "description": "Placeholder result meant to make RHDH identify this task as the producer of the SBOM logs.",
                                        "name": "LINK_TO_SBOM",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "show-sbom",
                                        "script": "echo \"running show-sbom-rhdh\"\n/workspace/source/tssc/show-sbom-rhdh.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        },
                        {
                            "name": "summarize",
                            "params": [
                                {
                                    "name": "IMAGE",
                                    "value": "quay.io/rhtap_qe/e2e-tests-python-jnltvjzx:0da1e6cc1c7d1e5e4dfa6791c3db27cda13732c6"
                                },
                                {
                                    "name": "CONTEXT",
                                    "value": "."
                                },
                                {
                                    "name": "IMAGE_EXPIRES_AFTER",
                                    "value": "5d"
                                },
                                {
                                    "name": "COMMIT_SHA",
                                    "value": "$(tasks.clone-repository.results.commit)"
                                }
                            ],
                            "runAfter": [
                                "deploy",
                                "scan"
                            ],
                            "taskSpec": {
                                "description": "Summarize all the steps in the build pipeline.",
                                "metadata": {
                                    "annotations": {
                                        "build.appstudio.redhat.com/build-type": "docker",
                                        "build.appstudio.redhat.com/task-name": "summarize-workload",
                                        "tekton.dev/pipelines.minVersion": "0.12.1",
                                        "tekton.dev/tags": "containers, tssc"
                                    },
                                    "labels": {
                                        "app.kubernetes.io/version": "0.1",
                                        "build.appstudio.redhat.com/build_type": "docker"
                                    }
                                },
                                "params": [
                                    {
                                        "description": "Reference of the image buildah will produce.",
                                        "name": "IMAGE",
                                        "type": "string"
                                    },
                                    {
                                        "default": ".",
                                        "description": "Path to the directory to use as context.",
                                        "name": "CONTEXT",
                                        "type": "string"
                                    },
                                    {
                                        "default": "vfs",
                                        "description": "Storage driver to configure for buildah",
                                        "name": "STORAGE_DRIVER",
                                        "type": "string"
                                    }
                                ],
                                "spec": null,
                                "stepTemplate": {
                                    "computeResources": {},
                                    "env": [
                                        {
                                            "name": "CI_TYPE",
                                            "value": "tekton"
                                        },
                                        {
                                            "name": "STORAGE_DRIVER",
                                            "value": "$(params.STORAGE_DRIVER)"
                                        },
                                        {
                                            "name": "CONTEXT",
                                            "value": "$(params.CONTEXT)"
                                        },
                                        {
                                            "name": "IMAGE",
                                            "value": "$(params.IMAGE)"
                                        },
                                        {
                                            "name": "IMAGE_URL",
                                            "value": "$(params.IMAGE)"
                                        }
                                    ],
                                    "workingDir": "$(workspaces.source.path)/source"
                                },
                                "steps": [
                                    {
                                        "computeResources": {},
                                        "env": [
                                            {
                                                "name": "CI_TYPE",
                                                "value": "tekton"
                                            },
                                            {
                                                "name": "STORAGE_DRIVER",
                                                "value": "$(params.STORAGE_DRIVER)"
                                            },
                                            {
                                                "name": "CONTEXT",
                                                "value": "$(params.CONTEXT)"
                                            },
                                            {
                                                "name": "IMAGE",
                                                "value": "$(params.IMAGE)"
                                            },
                                            {
                                                "name": "IMAGE_URL",
                                                "value": "$(params.IMAGE)"
                                            }
                                        ],
                                        "image": "quay.io/redhat-appstudio/rhtap-task-runner:latest",
                                        "imagePullPolicy": "Always",
                                        "name": "summary",
                                        "script": "echo \"running summary\"\n/workspace/source/tssc/summary.sh\n",
                                        "volumeMounts": [
                                            {
                                                "mountPath": "/var/lib/containers",
                                                "name": "varlibcontainers"
                                            },
                                            {
                                                "mountPath": "/tmp/files",
                                                "name": "tmpfiles"
                                            }
                                        ],
                                        "workingDir": "$(workspaces.source.path)/source"
                                    }
                                ],
                                "volumes": [
                                    {
                                        "emptyDir": {},
                                        "name": "varlibcontainers"
                                    },
                                    {
                                        "emptyDir": {},
                                        "name": "tmpfiles"
                                    }
                                ],
                                "workspaces": [
                                    {
                                        "description": "Workspace containing the source code to build.",
                                        "name": "source"
                                    }
                                ]
                            },
                            "workspaces": [
                                {
                                    "name": "source",
                                    "workspace": "workspace"
                                }
                            ]
                        }
                    ],
                    "workspaces": [
                        {
                            "name": "workspace"
                        },
                        {
                            "name": "git-auth",
                            "optional": true
                        }
                    ]
                },
                "provenance": {
                    "featureFlags": {
                        "awaitSidecarReadiness": true,
                        "coschedule": "workspaces",
                        "enableAPIFields": "beta",
                        "enableProvenanceInStatus": true,
                        "enforceNonfalsifiability": "none",
                        "maxResultSize": 4096,
                        "resultExtractionMethod": "termination-message",
                        "runningInEnvWithInjectedSidecars": true,
                        "verificationNoMatchPolicy": "ignore"
                    }
                },
                "results": [
                    {
                        "name": "IMAGE_DIGEST",
                        "value": "sha256:bfcb79905fbdaf4fb5e88d93af89f8f95df3d15367cf907fff98cc9befaf7145"
                    },
                    {
                        "name": "IMAGE_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-python-jnltvjzx:0da1e6cc1c7d1e5e4dfa6791c3db27cda13732c6"
                    },
                    {
                        "name": "BASE_IMAGES_DIGESTS",
                        "value": "registry.access.redhat.com/ubi9/python-312:latest@sha256:0abad955c2c2e4575dc8987d76b8c49a7dd8e0679063e3118dab03c54528232f\n"
                    },
                    {
                        "name": "SBOM_BLOB_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-python-jnltvjzx@sha256:6050ec48996911e5b6436b3304dfe81dd9c551c9b59da714be8ad7ff6b4c2374"
                    },
                    {
                        "name": "CHAINS-GIT_URL",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-jnltvjzx"
                    },
                    {
                        "name": "CHAINS-GIT_COMMIT",
                        "value": "0da1e6cc1c7d1e5e4dfa6791c3db27cda13732c6"
                    },
                    {
                        "name": "ACS_SCAN_OUTPUT",
                        "value": "{\"vulnerabilities\":{\"critical\":0,\"high\":10,\"medium\":123,\"low\":227}}\n"
                    }
                ],
                "startTime": "2026-04-27T16:35:32Z"
            }
        }
    ],
    "kind": "List",
    "metadata": {
        "resourceVersion": ""
    }
}
