{
    "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-2a7c2b4c2e.0ayo.p3.openshiftapps.com/api/v1/log/entries?logIndex=158",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "72123497149",
                    "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-gasinh",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2a7c2b4c2e.0ayo.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-dotnet-basic-rkfhnobi-gitops-on-pull-request-pf7j6",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-dotnet-basic-rkfhnobi-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-rkfhnobi-gitops",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-dotnet-basic-rkfhnobi-gitops-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "60ef12c2f579cb033e08246033f2082cdca71bda",
                    "pipelinesascode.tekton.dev/sha-title": "Promote to prod environment",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-rkfhnobi-gitops/commit/60ef12c2f579cb033e08246033f2082cdca71bda",
                    "pipelinesascode.tekton.dev/source-branch": "promote-to-prod-1776687350354",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-rkfhnobi-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-rkfhnobi-gitops",
                    "results.tekton.dev/record": "tssc-app-ci/results/b0554f65-7c29-458b-b394-f2c85f917c7d/records/b0554f65-7c29-458b-b394-f2c85f917c7d",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-dotnet-basic-rkfhnobi-gitops\",\"commit\":\"60ef12c2f579cb033e08246033f2082cdca71bda\",\"eventType\":\"pull_request\",\"pull_request-id\":2}",
                    "results.tekton.dev/result": "tssc-app-ci/results/b0554f65-7c29-458b-b394-f2c85f917c7d",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-20T12:16:01Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "results.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-dotnet-basic-rkfhnobi-gitops-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-dotnet-basic-rkfhnobi",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-dotnet-basic-rkfhnobi",
                    "backstage.io/kubernetes-id": "e2e-tests-dotnet-basic-rkfhnobi",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-dotnet-basic-rkfhnobi",
                    "pipelinesascode.tekton.dev/check-run-id": "72123497149",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-dotnet-basic-rkfhnobi-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "2",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-dotnet-basic-rkfhnobi-gitops-repository",
                    "pipelinesascode.tekton.dev/sha": "60ef12c2f579cb033e08246033f2082cdca71bda",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-dotnet-basic-rkfhnobi-gitops",
                    "tekton.dev/pipeline": "e2e-tests-dotnet-basic-rkfhnobi-gitops-on-pull-request-pf7j6"
                },
                "name": "e2e-tests-dotnet-basic-rkfhnobi-gitops-on-pull-request-pf7j6",
                "namespace": "tssc-app-ci",
                "resourceVersion": "53639",
                "uid": "b0554f65-7c29-458b-b394-f2c85f917c7d"
            },
            "spec": {
                "params": [
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-rkfhnobi-gitops"
                    },
                    {
                        "name": "revision",
                        "value": "60ef12c2f579cb033e08246033f2082cdca71bda"
                    },
                    {
                        "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-gasinh"
                        }
                    },
                    {
                        "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-dotn11884a2fa532fe8a81a76452b457216a-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet-bas11884a2fa532fe8a81a76452b457216a-get-images",
                        "pipelineTaskName": "get-images"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotne11884a2fa532fe8a81a76452b457216a-verify-conforma",
                        "pipelineTaskName": "verify-conforma",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-dotnet-basic-rkfhnobi:0d782c8bdd4560d2080e04d551014cb85d4bad4b\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet11884a2fa532fe8a81a76452b457216a-download-sboms",
                        "pipelineTaskName": "download-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-dotnet-basic-rkfhnobi:0d782c8bdd4560d2080e04d551014cb85d4bad4b\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet-b11884a2fa532fe8a81a76452b457216a-upload-sboms",
                        "pipelineTaskName": "upload-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-dotnet-basic-rkfhnobi:0d782c8bdd4560d2080e04d551014cb85d4bad4b\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    }
                ],
                "completionTime": "2026-04-20T12:16:51Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-20T12:16:51Z",
                        "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-rkfhnobi-gitops"
                                },
                                {
                                    "name": "revision",
                                    "value": "60ef12c2f579cb033e08246033f2082cdca71bda"
                                },
                                {
                                    "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": "60ef12c2f579cb033e08246033f2082cdca71bda"
                                            },
                                            {
                                                "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-20T12:16: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-2a7c2b4c2e.0ayo.p3.openshiftapps.com/api/v1/log/entries?logIndex=122",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "72123256436",
                    "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-hqjvqh",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2a7c2b4c2e.0ayo.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-dotnet-basic-rkfhnobi-gitops-on-pull-request-tltps",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-dotnet-basic-rkfhnobi-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-rkfhnobi-gitops",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-dotnet-basic-rkfhnobi-gitops-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "d802ebdf2b61b6bfb777e5e6cf33eab93a6ee91d",
                    "pipelinesascode.tekton.dev/sha-title": "Promote to stage environment",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-rkfhnobi-gitops/commit/d802ebdf2b61b6bfb777e5e6cf33eab93a6ee91d",
                    "pipelinesascode.tekton.dev/source-branch": "promote-to-stage-1776687250638",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-rkfhnobi-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-rkfhnobi-gitops",
                    "results.tekton.dev/record": "tssc-app-ci/results/d90ff54f-a363-4de2-9711-b8e410bcd719/records/d90ff54f-a363-4de2-9711-b8e410bcd719",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-dotnet-basic-rkfhnobi-gitops\",\"commit\":\"d802ebdf2b61b6bfb777e5e6cf33eab93a6ee91d\",\"eventType\":\"pull_request\",\"pull_request-id\":1}",
                    "results.tekton.dev/result": "tssc-app-ci/results/d90ff54f-a363-4de2-9711-b8e410bcd719",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-20T12:14:21Z",
                "finalizers": [
                    "results.tekton.dev/pipelinerun",
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer"
                ],
                "generateName": "e2e-tests-dotnet-basic-rkfhnobi-gitops-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-dotnet-basic-rkfhnobi",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-dotnet-basic-rkfhnobi",
                    "backstage.io/kubernetes-id": "e2e-tests-dotnet-basic-rkfhnobi",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-dotnet-basic-rkfhnobi",
                    "pipelinesascode.tekton.dev/check-run-id": "72123256436",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-dotnet-basic-rkfhnobi-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-dotnet-basic-rkfhnobi-gitops-repository",
                    "pipelinesascode.tekton.dev/sha": "d802ebdf2b61b6bfb777e5e6cf33eab93a6ee91d",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-dotnet-basic-rkfhnobi-gitops",
                    "tekton.dev/pipeline": "e2e-tests-dotnet-basic-rkfhnobi-gitops-on-pull-request-tltps"
                },
                "name": "e2e-tests-dotnet-basic-rkfhnobi-gitops-on-pull-request-tltps",
                "namespace": "tssc-app-ci",
                "resourceVersion": "50127",
                "uid": "d90ff54f-a363-4de2-9711-b8e410bcd719"
            },
            "spec": {
                "params": [
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-rkfhnobi-gitops"
                    },
                    {
                        "name": "revision",
                        "value": "d802ebdf2b61b6bfb777e5e6cf33eab93a6ee91d"
                    },
                    {
                        "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-hqjvqh"
                        }
                    },
                    {
                        "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-dotn2cdb38515189a3f5742e6494f2468447-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet-bas2cdb38515189a3f5742e6494f2468447-get-images",
                        "pipelineTaskName": "get-images"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotne2cdb38515189a3f5742e6494f2468447-verify-conforma",
                        "pipelineTaskName": "verify-conforma",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-dotnet-basic-rkfhnobi:0d782c8bdd4560d2080e04d551014cb85d4bad4b\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet2cdb38515189a3f5742e6494f2468447-download-sboms",
                        "pipelineTaskName": "download-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-dotnet-basic-rkfhnobi:0d782c8bdd4560d2080e04d551014cb85d4bad4b\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet-b2cdb38515189a3f5742e6494f2468447-upload-sboms",
                        "pipelineTaskName": "upload-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-dotnet-basic-rkfhnobi:0d782c8bdd4560d2080e04d551014cb85d4bad4b\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    }
                ],
                "completionTime": "2026-04-20T12:15:04Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-20T12:15:04Z",
                        "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-rkfhnobi-gitops"
                                },
                                {
                                    "name": "revision",
                                    "value": "d802ebdf2b61b6bfb777e5e6cf33eab93a6ee91d"
                                },
                                {
                                    "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": "d802ebdf2b61b6bfb777e5e6cf33eab93a6ee91d"
                                            },
                                            {
                                                "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-20T12:14: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-2a7c2b4c2e.0ayo.p3.openshiftapps.com/api/v1/log/entries?logIndex=26",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "72122350409",
                    "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-btqkpa",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2a7c2b4c2e.0ayo.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-dotnet-basic-rkfhnobi-on-pull-request-rc5xc",
                    "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-rkfhnobi-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-rkfhnobi",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-dotnet-basic-rkfhnobi-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "8259b6574bcbb8a1b01f81e1a1bf7ae14dc9d21a",
                    "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-rkfhnobi/commit/8259b6574bcbb8a1b01f81e1a1bf7ae14dc9d21a",
                    "pipelinesascode.tekton.dev/source-branch": "test-branch-1776686873501",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-rkfhnobi",
                    "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-rkfhnobi",
                    "results.tekton.dev/record": "tssc-app-ci/results/bd6c137a-ef94-4180-813f-a4f8ef6a6e19/records/bd6c137a-ef94-4180-813f-a4f8ef6a6e19",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-dotnet-basic-rkfhnobi\",\"commit\":\"8259b6574bcbb8a1b01f81e1a1bf7ae14dc9d21a\",\"eventType\":\"pull_request\",\"pull_request-id\":1}",
                    "results.tekton.dev/result": "tssc-app-ci/results/bd6c137a-ef94-4180-813f-a4f8ef6a6e19",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-20T12:08:04Z",
                "finalizers": [
                    "results.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "chains.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-dotnet-basic-rkfhnobi-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-dotnet-basic-rkfhnobi",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-dotnet-basic-rkfhnobi",
                    "backstage.io/kubernetes-id": "e2e-tests-dotnet-basic-rkfhnobi",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-dotnet-basic-rkfhnobi",
                    "pipelinesascode.tekton.dev/check-run-id": "72122350409",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-dotnet-basic-rkfhnobi-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-dotnet-basic-rkfhnobi-repository",
                    "pipelinesascode.tekton.dev/sha": "8259b6574bcbb8a1b01f81e1a1bf7ae14dc9d21a",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-dotnet-basic-rkfhnobi",
                    "tekton.dev/pipeline": "e2e-tests-dotnet-basic-rkfhnobi-on-pull-request-rc5xc"
                },
                "name": "e2e-tests-dotnet-basic-rkfhnobi-on-pull-request-rc5xc",
                "namespace": "tssc-app-ci",
                "resourceVersion": "42458",
                "uid": "bd6c137a-ef94-4180-813f-a4f8ef6a6e19"
            },
            "spec": {
                "params": [
                    {
                        "name": "dockerfile",
                        "value": "docker/Dockerfile"
                    },
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-rkfhnobi"
                    },
                    {
                        "name": "image-expires-after",
                        "value": "5d"
                    },
                    {
                        "name": "output-image",
                        "value": "quay.io/rhtap_qe/e2e-tests-dotnet-basic-rkfhnobi:on-pr-8259b6574bcbb8a1b01f81e1a1bf7ae14dc9d21a"
                    },
                    {
                        "name": "path-context",
                        "value": "."
                    },
                    {
                        "name": "revision",
                        "value": "8259b6574bcbb8a1b01f81e1a1bf7ae14dc9d21a"
                    },
                    {
                        "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-btqkpa"
                        }
                    },
                    {
                        "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-dotn0d013a4b634c2f810bf071f620799a71-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet-basic-rkfhnobi-on-pull-request-rc5xc-build",
                        "pipelineTaskName": "build"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet-basic-rkfhnobi-on-pull-request-rc5xc-scan",
                        "pipelineTaskName": "scan"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet-basic-rkfhnobi-on-pull-request-rc5xc-show-sbom",
                        "pipelineTaskName": "show-sbom"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet-basic-rkfhnobi-on-pull-request-rc5xc-summarize",
                        "pipelineTaskName": "summarize"
                    }
                ],
                "completionTime": "2026-04-20T12:10:25Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-20T12:10:25Z",
                        "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-rkfhnobi"
                                },
                                {
                                    "name": "revision",
                                    "value": "8259b6574bcbb8a1b01f81e1a1bf7ae14dc9d21a"
                                },
                                {
                                    "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": "8259b6574bcbb8a1b01f81e1a1bf7ae14dc9d21a"
                                            },
                                            {
                                                "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-rkfhnobi:on-pr-8259b6574bcbb8a1b01f81e1a1bf7ae14dc9d21a"
                                },
                                {
                                    "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-rkfhnobi:on-pr-8259b6574bcbb8a1b01f81e1a1bf7ae14dc9d21a"
                                },
                                {
                                    "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-rkfhnobi:on-pr-8259b6574bcbb8a1b01f81e1a1bf7ae14dc9d21a"
                                },
                                {
                                    "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-rkfhnobi:on-pr-8259b6574bcbb8a1b01f81e1a1bf7ae14dc9d21a"
                                },
                                {
                                    "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-rkfhnobi:on-pr-8259b6574bcbb8a1b01f81e1a1bf7ae14dc9d21a"
                                },
                                {
                                    "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-rkfhnobi:on-pr-8259b6574bcbb8a1b01f81e1a1bf7ae14dc9d21a"
                                },
                                {
                                    "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:bc005d7d86bcef7ee18cfb62e6cb440ef70d3ea99760c065851bc69c52ab0bbc"
                    },
                    {
                        "name": "IMAGE_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-dotnet-basic-rkfhnobi:on-pr-8259b6574bcbb8a1b01f81e1a1bf7ae14dc9d21a"
                    },
                    {
                        "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-rkfhnobi@sha256:725a0ded47c826b408394686b67f8398f23c84a3014062cbbbe1cb9c8d248b87"
                    },
                    {
                        "name": "CHAINS-GIT_URL",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-rkfhnobi"
                    },
                    {
                        "name": "CHAINS-GIT_COMMIT",
                        "value": "8259b6574bcbb8a1b01f81e1a1bf7ae14dc9d21a"
                    },
                    {
                        "name": "ACS_SCAN_OUTPUT",
                        "value": "{\"vulnerabilities\":{\"critical\":0,\"high\":43,\"medium\":134,\"low\":225}}\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-20T12:08:04Z"
            }
        },
        {
            "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-2a7c2b4c2e.0ayo.p3.openshiftapps.com/api/v1/log/entries?logIndex=84",
                    "pipelinesascode.tekton.dev/branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/check-run-id": "72122763738",
                    "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-puwwkn",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2a7c2b4c2e.0ayo.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-dotnet-basic-rkfhnobi-on-push-2v5nc",
                    "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-rkfhnobi-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-rkfhnobi",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-dotnet-basic-rkfhnobi-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "0d782c8bdd4560d2080e04d551014cb85d4bad4b",
                    "pipelinesascode.tekton.dev/sha-title": "Merge pull request #1 from rhtap-rhdh-qe/test-branch-1776686873501",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-rkfhnobi/commit/0d782c8bdd4560d2080e04d551014cb85d4bad4b",
                    "pipelinesascode.tekton.dev/source-branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-rkfhnobi",
                    "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-rkfhnobi",
                    "results.tekton.dev/record": "tssc-app-ci/results/71a4720a-525c-44f2-8ff6-dbcbb3075221/records/71a4720a-525c-44f2-8ff6-dbcbb3075221",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-dotnet-basic-rkfhnobi\",\"commit\":\"0d782c8bdd4560d2080e04d551014cb85d4bad4b\",\"eventType\":\"push\"}",
                    "results.tekton.dev/result": "tssc-app-ci/results/71a4720a-525c-44f2-8ff6-dbcbb3075221",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-20T12:10:54Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "results.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-dotnet-basic-rkfhnobi-on-push-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-dotnet-basic-rkfhnobi",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-dotnet-basic-rkfhnobi",
                    "backstage.io/kubernetes-id": "e2e-tests-dotnet-basic-rkfhnobi",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-dotnet-basic-rkfhnobi",
                    "pipelinesascode.tekton.dev/check-run-id": "72122763738",
                    "pipelinesascode.tekton.dev/event-type": "push",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-dotnet-basic-rkfhnobi-on-push",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-dotnet-basic-rkfhnobi-repository",
                    "pipelinesascode.tekton.dev/sha": "0d782c8bdd4560d2080e04d551014cb85d4bad4b",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-dotnet-basic-rkfhnobi",
                    "tekton.dev/pipeline": "e2e-tests-dotnet-basic-rkfhnobi-on-push-2v5nc"
                },
                "name": "e2e-tests-dotnet-basic-rkfhnobi-on-push-2v5nc",
                "namespace": "tssc-app-ci",
                "resourceVersion": "47149",
                "uid": "71a4720a-525c-44f2-8ff6-dbcbb3075221"
            },
            "spec": {
                "params": [
                    {
                        "name": "dockerfile",
                        "value": "docker/Dockerfile"
                    },
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-rkfhnobi"
                    },
                    {
                        "name": "image-expires-after",
                        "value": "5d"
                    },
                    {
                        "name": "output-image",
                        "value": "quay.io/rhtap_qe/e2e-tests-dotnet-basic-rkfhnobi:0d782c8bdd4560d2080e04d551014cb85d4bad4b"
                    },
                    {
                        "name": "path-context",
                        "value": "."
                    },
                    {
                        "name": "revision",
                        "value": "0d782c8bdd4560d2080e04d551014cb85d4bad4b"
                    },
                    {
                        "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-puwwkn"
                        }
                    },
                    {
                        "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-rkfhnobi-on-push-2v5nc-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet-basic-rkfhnobi-on-push-2v5nc-build",
                        "pipelineTaskName": "build"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet-basic-rkfhnobi-on-push-2v5nc-deploy",
                        "pipelineTaskName": "deploy",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "notin",
                                "values": [
                                    "pull_request",
                                    "Merge Request"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet-basic-rkfhnobi-on-push-2v5nc-deployment-check",
                        "pipelineTaskName": "deployment-check",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "in",
                                "values": [
                                    "push",
                                    "Push"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet-basic-rkfhnobi-on-push-2v5nc-scan",
                        "pipelineTaskName": "scan"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet-basic-rkfhnobi-on-push-2v5nc-show-sbom",
                        "pipelineTaskName": "show-sbom"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-dotnet-basic-rkfhnobi-on-push-2v5nc-summarize",
                        "pipelineTaskName": "summarize"
                    }
                ],
                "completionTime": "2026-04-20T12:13:24Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-20T12:13:24Z",
                        "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-rkfhnobi"
                                },
                                {
                                    "name": "revision",
                                    "value": "0d782c8bdd4560d2080e04d551014cb85d4bad4b"
                                },
                                {
                                    "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": "0d782c8bdd4560d2080e04d551014cb85d4bad4b"
                                            },
                                            {
                                                "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-rkfhnobi:0d782c8bdd4560d2080e04d551014cb85d4bad4b"
                                },
                                {
                                    "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-rkfhnobi:0d782c8bdd4560d2080e04d551014cb85d4bad4b"
                                },
                                {
                                    "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-rkfhnobi:0d782c8bdd4560d2080e04d551014cb85d4bad4b"
                                },
                                {
                                    "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-rkfhnobi:0d782c8bdd4560d2080e04d551014cb85d4bad4b"
                                },
                                {
                                    "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-rkfhnobi:0d782c8bdd4560d2080e04d551014cb85d4bad4b"
                                },
                                {
                                    "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-rkfhnobi:0d782c8bdd4560d2080e04d551014cb85d4bad4b"
                                },
                                {
                                    "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:1f432f0742647700e80f8300c4134b048532a5a2fd0c0a7244a9adb3e6d58d58"
                    },
                    {
                        "name": "IMAGE_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-dotnet-basic-rkfhnobi:0d782c8bdd4560d2080e04d551014cb85d4bad4b"
                    },
                    {
                        "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-rkfhnobi@sha256:f10f33c01ac7fed6e50ea7939f9361227630b7c52c168f2384e333b5cf78a1d6"
                    },
                    {
                        "name": "CHAINS-GIT_URL",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-dotnet-basic-rkfhnobi"
                    },
                    {
                        "name": "CHAINS-GIT_COMMIT",
                        "value": "0d782c8bdd4560d2080e04d551014cb85d4bad4b"
                    },
                    {
                        "name": "ACS_SCAN_OUTPUT",
                        "value": "{\"vulnerabilities\":{\"critical\":0,\"high\":43,\"medium\":134,\"low\":225}}\n"
                    }
                ],
                "startTime": "2026-04-20T12:10:54Z"
            }
        },
        {
            "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-2a7c2b4c2e.0ayo.p3.openshiftapps.com/api/v1/log/entries?logIndex=144",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "72123389496",
                    "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-ytjqhv",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2a7c2b4c2e.0ayo.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-go-xyutjnea-gitops-on-pull-request-lfcnn",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-go-xyutjnea-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-xyutjnea-gitops",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-go-xyutjnea-gitops-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "3df555b1cf37cd50ef3e218441d0af2ce518dd72",
                    "pipelinesascode.tekton.dev/sha-title": "Promote to prod environment",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-xyutjnea-gitops/commit/3df555b1cf37cd50ef3e218441d0af2ce518dd72",
                    "pipelinesascode.tekton.dev/source-branch": "promote-to-prod-1776687307603",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-xyutjnea-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-xyutjnea-gitops",
                    "results.tekton.dev/record": "tssc-app-ci/results/225498f0-3adb-4fb1-af0e-323d634e30a1/records/225498f0-3adb-4fb1-af0e-323d634e30a1",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-go-xyutjnea-gitops\",\"commit\":\"3df555b1cf37cd50ef3e218441d0af2ce518dd72\",\"eventType\":\"pull_request\",\"pull_request-id\":2}",
                    "results.tekton.dev/result": "tssc-app-ci/results/225498f0-3adb-4fb1-af0e-323d634e30a1",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-20T12:15:17Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "results.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-go-xyutjnea-gitops-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-go-xyutjnea",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-go-xyutjnea",
                    "backstage.io/kubernetes-id": "e2e-tests-go-xyutjnea",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-go-xyutjnea",
                    "pipelinesascode.tekton.dev/check-run-id": "72123389496",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-go-xyutjnea-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "2",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-go-xyutjnea-gitops-repository",
                    "pipelinesascode.tekton.dev/sha": "3df555b1cf37cd50ef3e218441d0af2ce518dd72",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-go-xyutjnea-gitops",
                    "tekton.dev/pipeline": "e2e-tests-go-xyutjnea-gitops-on-pull-request-lfcnn"
                },
                "name": "e2e-tests-go-xyutjnea-gitops-on-pull-request-lfcnn",
                "namespace": "tssc-app-ci",
                "resourceVersion": "52336",
                "uid": "225498f0-3adb-4fb1-af0e-323d634e30a1"
            },
            "spec": {
                "params": [
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-xyutjnea-gitops"
                    },
                    {
                        "name": "revision",
                        "value": "3df555b1cf37cd50ef3e218441d0af2ce518dd72"
                    },
                    {
                        "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-ytjqhv"
                        }
                    },
                    {
                        "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-xb42cf7497f7f78288671eb3fdfe293fa-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-xyutjnea-gitops-on-pull-request-lfcnn-get-images",
                        "pipelineTaskName": "get-images"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-xyb42cf7497f7f78288671eb3fdfe293fa-verify-conforma",
                        "pipelineTaskName": "verify-conforma",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-go-xyutjnea:e4a8dc80ea345677cea6a9b563d1c9931a621945\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-xyub42cf7497f7f78288671eb3fdfe293fa-download-sboms",
                        "pipelineTaskName": "download-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-go-xyutjnea:e4a8dc80ea345677cea6a9b563d1c9931a621945\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-xyutjnea-gitops-on-pull-request-lfcnn-upload-sboms",
                        "pipelineTaskName": "upload-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-go-xyutjnea:e4a8dc80ea345677cea6a9b563d1c9931a621945\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    }
                ],
                "completionTime": "2026-04-20T12:16:05Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-20T12:16: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-go-xyutjnea-gitops"
                                },
                                {
                                    "name": "revision",
                                    "value": "3df555b1cf37cd50ef3e218441d0af2ce518dd72"
                                },
                                {
                                    "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": "3df555b1cf37cd50ef3e218441d0af2ce518dd72"
                                            },
                                            {
                                                "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-20T12:15:17Z"
            }
        },
        {
            "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-2a7c2b4c2e.0ayo.p3.openshiftapps.com/api/v1/log/entries?logIndex=100",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "72123120765",
                    "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-vcfivt",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2a7c2b4c2e.0ayo.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-go-xyutjnea-gitops-on-pull-request-ncr49",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-go-xyutjnea-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-xyutjnea-gitops",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-go-xyutjnea-gitops-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "713f72b939fa1f4996c8b2044288d2a85bcf0854",
                    "pipelinesascode.tekton.dev/sha-title": "Promote to stage environment",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-xyutjnea-gitops/commit/713f72b939fa1f4996c8b2044288d2a85bcf0854",
                    "pipelinesascode.tekton.dev/source-branch": "promote-to-stage-1776687193691",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-xyutjnea-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-xyutjnea-gitops",
                    "results.tekton.dev/record": "tssc-app-ci/results/20ed6ab7-6551-4611-9f29-f11ca78e3c29/records/20ed6ab7-6551-4611-9f29-f11ca78e3c29",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-go-xyutjnea-gitops\",\"commit\":\"713f72b939fa1f4996c8b2044288d2a85bcf0854\",\"eventType\":\"pull_request\",\"pull_request-id\":1}",
                    "results.tekton.dev/result": "tssc-app-ci/results/20ed6ab7-6551-4611-9f29-f11ca78e3c29",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-20T12:13:23Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "results.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-go-xyutjnea-gitops-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-go-xyutjnea",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-go-xyutjnea",
                    "backstage.io/kubernetes-id": "e2e-tests-go-xyutjnea",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-go-xyutjnea",
                    "pipelinesascode.tekton.dev/check-run-id": "72123120765",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-go-xyutjnea-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-go-xyutjnea-gitops-repository",
                    "pipelinesascode.tekton.dev/sha": "713f72b939fa1f4996c8b2044288d2a85bcf0854",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-go-xyutjnea-gitops",
                    "tekton.dev/pipeline": "e2e-tests-go-xyutjnea-gitops-on-pull-request-ncr49"
                },
                "name": "e2e-tests-go-xyutjnea-gitops-on-pull-request-ncr49",
                "namespace": "tssc-app-ci",
                "resourceVersion": "48370",
                "uid": "20ed6ab7-6551-4611-9f29-f11ca78e3c29"
            },
            "spec": {
                "params": [
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-xyutjnea-gitops"
                    },
                    {
                        "name": "revision",
                        "value": "713f72b939fa1f4996c8b2044288d2a85bcf0854"
                    },
                    {
                        "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-vcfivt"
                        }
                    },
                    {
                        "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-xe7188576d6d6bf15a793a7bbea600ae7-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-xyutjnea-gitops-on-pull-request-ncr49-get-images",
                        "pipelineTaskName": "get-images"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-xye7188576d6d6bf15a793a7bbea600ae7-verify-conforma",
                        "pipelineTaskName": "verify-conforma",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-go-xyutjnea:e4a8dc80ea345677cea6a9b563d1c9931a621945\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-xyue7188576d6d6bf15a793a7bbea600ae7-download-sboms",
                        "pipelineTaskName": "download-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-go-xyutjnea:e4a8dc80ea345677cea6a9b563d1c9931a621945\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-xyutjnea-gitops-on-pull-request-ncr49-upload-sboms",
                        "pipelineTaskName": "upload-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-go-xyutjnea:e4a8dc80ea345677cea6a9b563d1c9931a621945\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    }
                ],
                "completionTime": "2026-04-20T12:14:14Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-20T12:14:14Z",
                        "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-xyutjnea-gitops"
                                },
                                {
                                    "name": "revision",
                                    "value": "713f72b939fa1f4996c8b2044288d2a85bcf0854"
                                },
                                {
                                    "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": "713f72b939fa1f4996c8b2044288d2a85bcf0854"
                                            },
                                            {
                                                "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-20T12:13:24Z"
            }
        },
        {
            "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-2a7c2b4c2e.0ayo.p3.openshiftapps.com/api/v1/log/entries?logIndex=18",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "72122368877",
                    "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-lapenl",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2a7c2b4c2e.0ayo.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-go-xyutjnea-on-pull-request-xt7qz",
                    "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-xyutjnea-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-xyutjnea",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-go-xyutjnea-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "8cbbc49fb005d6d067e8b3b53bb1b5dee9f4c413",
                    "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-xyutjnea/commit/8cbbc49fb005d6d067e8b3b53bb1b5dee9f4c413",
                    "pipelinesascode.tekton.dev/source-branch": "test-branch-1776686881784",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-xyutjnea",
                    "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-xyutjnea",
                    "results.tekton.dev/record": "tssc-app-ci/results/c683f9da-3c03-470b-a828-98c1620d9f18/records/c683f9da-3c03-470b-a828-98c1620d9f18",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-go-xyutjnea\",\"commit\":\"8cbbc49fb005d6d067e8b3b53bb1b5dee9f4c413\",\"eventType\":\"pull_request\",\"pull_request-id\":1}",
                    "results.tekton.dev/result": "tssc-app-ci/results/c683f9da-3c03-470b-a828-98c1620d9f18",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-20T12:08:11Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "results.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-go-xyutjnea-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-go-xyutjnea",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-go-xyutjnea",
                    "backstage.io/kubernetes-id": "e2e-tests-go-xyutjnea",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-go-xyutjnea",
                    "pipelinesascode.tekton.dev/check-run-id": "72122368877",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-go-xyutjnea-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-go-xyutjnea-repository",
                    "pipelinesascode.tekton.dev/sha": "8cbbc49fb005d6d067e8b3b53bb1b5dee9f4c413",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-go-xyutjnea",
                    "tekton.dev/pipeline": "e2e-tests-go-xyutjnea-on-pull-request-xt7qz"
                },
                "name": "e2e-tests-go-xyutjnea-on-pull-request-xt7qz",
                "namespace": "tssc-app-ci",
                "resourceVersion": "41831",
                "uid": "c683f9da-3c03-470b-a828-98c1620d9f18"
            },
            "spec": {
                "params": [
                    {
                        "name": "dockerfile",
                        "value": "docker/Dockerfile"
                    },
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-xyutjnea"
                    },
                    {
                        "name": "image-expires-after",
                        "value": "5d"
                    },
                    {
                        "name": "output-image",
                        "value": "quay.io/rhtap_qe/e2e-tests-go-xyutjnea:on-pr-8cbbc49fb005d6d067e8b3b53bb1b5dee9f4c413"
                    },
                    {
                        "name": "path-context",
                        "value": "."
                    },
                    {
                        "name": "revision",
                        "value": "8cbbc49fb005d6d067e8b3b53bb1b5dee9f4c413"
                    },
                    {
                        "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-lapenl"
                        }
                    },
                    {
                        "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-xyutjnea-on-pull-request-xt7qz-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-xyutjnea-on-pull-request-xt7qz-build",
                        "pipelineTaskName": "build"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-xyutjnea-on-pull-request-xt7qz-scan",
                        "pipelineTaskName": "scan"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-xyutjnea-on-pull-request-xt7qz-show-sbom",
                        "pipelineTaskName": "show-sbom"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-xyutjnea-on-pull-request-xt7qz-summarize",
                        "pipelineTaskName": "summarize"
                    }
                ],
                "completionTime": "2026-04-20T12:10:06Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-20T12:10:06Z",
                        "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-xyutjnea"
                                },
                                {
                                    "name": "revision",
                                    "value": "8cbbc49fb005d6d067e8b3b53bb1b5dee9f4c413"
                                },
                                {
                                    "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": "8cbbc49fb005d6d067e8b3b53bb1b5dee9f4c413"
                                            },
                                            {
                                                "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-xyutjnea:on-pr-8cbbc49fb005d6d067e8b3b53bb1b5dee9f4c413"
                                },
                                {
                                    "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-xyutjnea:on-pr-8cbbc49fb005d6d067e8b3b53bb1b5dee9f4c413"
                                },
                                {
                                    "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-xyutjnea:on-pr-8cbbc49fb005d6d067e8b3b53bb1b5dee9f4c413"
                                },
                                {
                                    "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-xyutjnea:on-pr-8cbbc49fb005d6d067e8b3b53bb1b5dee9f4c413"
                                },
                                {
                                    "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-xyutjnea:on-pr-8cbbc49fb005d6d067e8b3b53bb1b5dee9f4c413"
                                },
                                {
                                    "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-xyutjnea:on-pr-8cbbc49fb005d6d067e8b3b53bb1b5dee9f4c413"
                                },
                                {
                                    "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:b7060a39bebfb06b74e6c1339f15d4515c26b90a8df58dcfc36ec12f4b4d6a6a"
                    },
                    {
                        "name": "IMAGE_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-go-xyutjnea:on-pr-8cbbc49fb005d6d067e8b3b53bb1b5dee9f4c413"
                    },
                    {
                        "name": "BASE_IMAGES_DIGESTS",
                        "value": "registry.access.redhat.com/ubi9/go-toolset:9.7-1776644338@sha256:1e1c89558f8bf86db3d88e5d5de0b6bd396ef948749a2c5d6a752ea46f35d4db\nregistry.access.redhat.com/ubi9/ubi-micro:latest@sha256:2173487b3b72b1a7b11edc908e9bbf1726f9df46a4f78fd6d19a2bab0a701f38\n"
                    },
                    {
                        "name": "SBOM_BLOB_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-go-xyutjnea@sha256:93ce58be50a12596b9a60289f0bc4510c924d12dd5e291af879bd51ce157fc8a"
                    },
                    {
                        "name": "CHAINS-GIT_URL",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-xyutjnea"
                    },
                    {
                        "name": "CHAINS-GIT_COMMIT",
                        "value": "8cbbc49fb005d6d067e8b3b53bb1b5dee9f4c413"
                    },
                    {
                        "name": "ACS_SCAN_OUTPUT",
                        "value": "{\"vulnerabilities\":{\"critical\":0,\"high\":2,\"medium\":2,\"low\":10}}\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-20T12:08: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-2a7c2b4c2e.0ayo.p3.openshiftapps.com/api/v1/log/entries?logIndex=72",
                    "pipelinesascode.tekton.dev/branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/check-run-id": "72122710435",
                    "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-damdah",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2a7c2b4c2e.0ayo.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-go-xyutjnea-on-push-4vqnw",
                    "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-xyutjnea-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/pull-request": "1",
                    "pipelinesascode.tekton.dev/repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-xyutjnea",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-go-xyutjnea-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "e4a8dc80ea345677cea6a9b563d1c9931a621945",
                    "pipelinesascode.tekton.dev/sha-title": "Merge pull request #1 from rhtap-rhdh-qe/test-branch-1776686881784",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-xyutjnea/commit/e4a8dc80ea345677cea6a9b563d1c9931a621945",
                    "pipelinesascode.tekton.dev/source-branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-xyutjnea",
                    "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-xyutjnea",
                    "results.tekton.dev/record": "tssc-app-ci/results/a06bd7d8-d682-43be-9044-e24bcf759482/records/a06bd7d8-d682-43be-9044-e24bcf759482",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-go-xyutjnea\",\"commit\":\"e4a8dc80ea345677cea6a9b563d1c9931a621945\",\"eventType\":\"push\",\"pull_request-id\":1}",
                    "results.tekton.dev/result": "tssc-app-ci/results/a06bd7d8-d682-43be-9044-e24bcf759482",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-20T12:10:32Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "results.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-go-xyutjnea-on-push-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-go-xyutjnea",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-go-xyutjnea",
                    "backstage.io/kubernetes-id": "e2e-tests-go-xyutjnea",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-go-xyutjnea",
                    "pipelinesascode.tekton.dev/check-run-id": "72122710435",
                    "pipelinesascode.tekton.dev/event-type": "push",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-go-xyutjnea-on-push",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-go-xyutjnea-repository",
                    "pipelinesascode.tekton.dev/sha": "e4a8dc80ea345677cea6a9b563d1c9931a621945",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-go-xyutjnea",
                    "tekton.dev/pipeline": "e2e-tests-go-xyutjnea-on-push-4vqnw"
                },
                "name": "e2e-tests-go-xyutjnea-on-push-4vqnw",
                "namespace": "tssc-app-ci",
                "resourceVersion": "45797",
                "uid": "a06bd7d8-d682-43be-9044-e24bcf759482"
            },
            "spec": {
                "params": [
                    {
                        "name": "dockerfile",
                        "value": "docker/Dockerfile"
                    },
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-xyutjnea"
                    },
                    {
                        "name": "image-expires-after",
                        "value": "5d"
                    },
                    {
                        "name": "output-image",
                        "value": "quay.io/rhtap_qe/e2e-tests-go-xyutjnea:e4a8dc80ea345677cea6a9b563d1c9931a621945"
                    },
                    {
                        "name": "path-context",
                        "value": "."
                    },
                    {
                        "name": "revision",
                        "value": "e4a8dc80ea345677cea6a9b563d1c9931a621945"
                    },
                    {
                        "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-damdah"
                        }
                    },
                    {
                        "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-xyutjnea-on-push-4vqnw-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-xyutjnea-on-push-4vqnw-build",
                        "pipelineTaskName": "build"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-xyutjnea-on-push-4vqnw-deploy",
                        "pipelineTaskName": "deploy",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "notin",
                                "values": [
                                    "pull_request",
                                    "Merge Request"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-xyutjnea-on-push-4vqnw-deployment-check",
                        "pipelineTaskName": "deployment-check",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "in",
                                "values": [
                                    "push",
                                    "Push"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-xyutjnea-on-push-4vqnw-scan",
                        "pipelineTaskName": "scan"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-xyutjnea-on-push-4vqnw-show-sbom",
                        "pipelineTaskName": "show-sbom"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-go-xyutjnea-on-push-4vqnw-summarize",
                        "pipelineTaskName": "summarize"
                    }
                ],
                "completionTime": "2026-04-20T12:12:30Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-20T12:12: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-go-xyutjnea"
                                },
                                {
                                    "name": "revision",
                                    "value": "e4a8dc80ea345677cea6a9b563d1c9931a621945"
                                },
                                {
                                    "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": "e4a8dc80ea345677cea6a9b563d1c9931a621945"
                                            },
                                            {
                                                "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-xyutjnea:e4a8dc80ea345677cea6a9b563d1c9931a621945"
                                },
                                {
                                    "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-xyutjnea:e4a8dc80ea345677cea6a9b563d1c9931a621945"
                                },
                                {
                                    "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-xyutjnea:e4a8dc80ea345677cea6a9b563d1c9931a621945"
                                },
                                {
                                    "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-xyutjnea:e4a8dc80ea345677cea6a9b563d1c9931a621945"
                                },
                                {
                                    "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-xyutjnea:e4a8dc80ea345677cea6a9b563d1c9931a621945"
                                },
                                {
                                    "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-xyutjnea:e4a8dc80ea345677cea6a9b563d1c9931a621945"
                                },
                                {
                                    "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:938198ee267a7150b0a229caf79c9ad85f553f02875f52cc469b531b1b138072"
                    },
                    {
                        "name": "IMAGE_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-go-xyutjnea:e4a8dc80ea345677cea6a9b563d1c9931a621945"
                    },
                    {
                        "name": "BASE_IMAGES_DIGESTS",
                        "value": "registry.access.redhat.com/ubi9/go-toolset:9.7-1776644338@sha256:1e1c89558f8bf86db3d88e5d5de0b6bd396ef948749a2c5d6a752ea46f35d4db\nregistry.access.redhat.com/ubi9/ubi-micro:latest@sha256:2173487b3b72b1a7b11edc908e9bbf1726f9df46a4f78fd6d19a2bab0a701f38\n"
                    },
                    {
                        "name": "SBOM_BLOB_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-go-xyutjnea@sha256:322cedfcae1b08f094a7d46719a9cc17e254b366cb2212f8bd8f6244bc7e5e11"
                    },
                    {
                        "name": "CHAINS-GIT_URL",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-go-xyutjnea"
                    },
                    {
                        "name": "CHAINS-GIT_COMMIT",
                        "value": "e4a8dc80ea345677cea6a9b563d1c9931a621945"
                    },
                    {
                        "name": "ACS_SCAN_OUTPUT",
                        "value": "{\"vulnerabilities\":{\"critical\":0,\"high\":2,\"medium\":2,\"low\":10}}\n"
                    }
                ],
                "startTime": "2026-04-20T12:10:32Z"
            }
        },
        {
            "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-2a7c2b4c2e.0ayo.p3.openshiftapps.com/api/v1/log/entries?logIndex=150",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "72123442110",
                    "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-mfjjxp",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2a7c2b4c2e.0ayo.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-java-quarkus-chprkuvp-gitops-on-pull-request-7wq7b",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-quarkus-chprkuvp-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-chprkuvp-gitops",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-quarkus-chprkuvp-gitops-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "70b0bd4fd3fa0cae7ffc257560eb9944d949919a",
                    "pipelinesascode.tekton.dev/sha-title": "Promote to stage environment",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-chprkuvp-gitops/commit/70b0bd4fd3fa0cae7ffc257560eb9944d949919a",
                    "pipelinesascode.tekton.dev/source-branch": "promote-to-stage-1776687328410",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-chprkuvp-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-chprkuvp-gitops",
                    "results.tekton.dev/record": "tssc-app-ci/results/52a8fc0c-c9ab-4672-9b8f-9a488566fe85/records/52a8fc0c-c9ab-4672-9b8f-9a488566fe85",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-java-quarkus-chprkuvp-gitops\",\"commit\":\"70b0bd4fd3fa0cae7ffc257560eb9944d949919a\",\"eventType\":\"pull_request\",\"pull_request-id\":1}",
                    "results.tekton.dev/result": "tssc-app-ci/results/52a8fc0c-c9ab-4672-9b8f-9a488566fe85",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-20T12:15:38Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "results.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-java-quarkus-chprkuvp-gitops-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-java-quarkus-chprkuvp",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-java-quarkus-chprkuvp",
                    "backstage.io/kubernetes-id": "e2e-tests-java-quarkus-chprkuvp",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-java-quarkus-chprkuvp",
                    "pipelinesascode.tekton.dev/check-run-id": "72123442110",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-quarkus-chprkuvp-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-quarkus-chprkuvp-gitops-repository",
                    "pipelinesascode.tekton.dev/sha": "70b0bd4fd3fa0cae7ffc257560eb9944d949919a",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-java-quarkus-chprkuvp-gitops",
                    "tekton.dev/pipeline": "e2e-tests-java-quarkus-chprkuvp-gitops-on-pull-request-7wq7b"
                },
                "name": "e2e-tests-java-quarkus-chprkuvp-gitops-on-pull-request-7wq7b",
                "namespace": "tssc-app-ci",
                "resourceVersion": "53082",
                "uid": "52a8fc0c-c9ab-4672-9b8f-9a488566fe85"
            },
            "spec": {
                "params": [
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-chprkuvp-gitops"
                    },
                    {
                        "name": "revision",
                        "value": "70b0bd4fd3fa0cae7ffc257560eb9944d949919a"
                    },
                    {
                        "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-mfjjxp"
                        }
                    },
                    {
                        "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-java14ec3ff2a41d16185e4a451e58930004-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quark14ec3ff2a41d16185e4a451e58930004-get-images",
                        "pipelineTaskName": "get-images"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-14ec3ff2a41d16185e4a451e58930004-verify-conforma",
                        "pipelineTaskName": "verify-conforma",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-java-quarkus-chprkuvp:626647f8f177e9408d43c702a4321e1ca96ef4b9\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-q14ec3ff2a41d16185e4a451e58930004-download-sboms",
                        "pipelineTaskName": "download-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-java-quarkus-chprkuvp:626647f8f177e9408d43c702a4321e1ca96ef4b9\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-qua14ec3ff2a41d16185e4a451e58930004-upload-sboms",
                        "pipelineTaskName": "upload-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-java-quarkus-chprkuvp:626647f8f177e9408d43c702a4321e1ca96ef4b9\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    }
                ],
                "completionTime": "2026-04-20T12:16:23Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-20T12:16:23Z",
                        "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-chprkuvp-gitops"
                                },
                                {
                                    "name": "revision",
                                    "value": "70b0bd4fd3fa0cae7ffc257560eb9944d949919a"
                                },
                                {
                                    "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": "70b0bd4fd3fa0cae7ffc257560eb9944d949919a"
                                            },
                                            {
                                                "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-20T12:15:38Z"
            }
        },
        {
            "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-2a7c2b4c2e.0ayo.p3.openshiftapps.com/api/v1/log/entries?logIndex=174",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "72123688191",
                    "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-bhinaf",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2a7c2b4c2e.0ayo.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-java-quarkus-chprkuvp-gitops-on-pull-request-9s4lf",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-quarkus-chprkuvp-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-chprkuvp-gitops",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-quarkus-chprkuvp-gitops-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "6b8ddca92c5aa3d84da97ebe2f1aef6316c56111",
                    "pipelinesascode.tekton.dev/sha-title": "Promote to prod environment",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-chprkuvp-gitops/commit/6b8ddca92c5aa3d84da97ebe2f1aef6316c56111",
                    "pipelinesascode.tekton.dev/source-branch": "promote-to-prod-1776687430158",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-chprkuvp-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-chprkuvp-gitops",
                    "results.tekton.dev/record": "tssc-app-ci/results/1ae8cab4-e2e7-441f-bf08-08ebbc4e2790/records/1ae8cab4-e2e7-441f-bf08-08ebbc4e2790",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-java-quarkus-chprkuvp-gitops\",\"commit\":\"6b8ddca92c5aa3d84da97ebe2f1aef6316c56111\",\"eventType\":\"pull_request\",\"pull_request-id\":2}",
                    "results.tekton.dev/result": "tssc-app-ci/results/1ae8cab4-e2e7-441f-bf08-08ebbc4e2790",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-20T12:17:20Z",
                "finalizers": [
                    "results.tekton.dev/pipelinerun",
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer"
                ],
                "generateName": "e2e-tests-java-quarkus-chprkuvp-gitops-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-java-quarkus-chprkuvp",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-java-quarkus-chprkuvp",
                    "backstage.io/kubernetes-id": "e2e-tests-java-quarkus-chprkuvp",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-java-quarkus-chprkuvp",
                    "pipelinesascode.tekton.dev/check-run-id": "72123688191",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-quarkus-chprkuvp-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "2",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-quarkus-chprkuvp-gitops-repository",
                    "pipelinesascode.tekton.dev/sha": "6b8ddca92c5aa3d84da97ebe2f1aef6316c56111",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-java-quarkus-chprkuvp-gitops",
                    "tekton.dev/pipeline": "e2e-tests-java-quarkus-chprkuvp-gitops-on-pull-request-9s4lf"
                },
                "name": "e2e-tests-java-quarkus-chprkuvp-gitops-on-pull-request-9s4lf",
                "namespace": "tssc-app-ci",
                "resourceVersion": "55399",
                "uid": "1ae8cab4-e2e7-441f-bf08-08ebbc4e2790"
            },
            "spec": {
                "params": [
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-chprkuvp-gitops"
                    },
                    {
                        "name": "revision",
                        "value": "6b8ddca92c5aa3d84da97ebe2f1aef6316c56111"
                    },
                    {
                        "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-bhinaf"
                        }
                    },
                    {
                        "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-java597c38f61d22cac250d5f942130a81e9-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quark597c38f61d22cac250d5f942130a81e9-get-images",
                        "pipelineTaskName": "get-images"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-597c38f61d22cac250d5f942130a81e9-verify-conforma",
                        "pipelineTaskName": "verify-conforma",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-java-quarkus-chprkuvp:626647f8f177e9408d43c702a4321e1ca96ef4b9\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-q597c38f61d22cac250d5f942130a81e9-download-sboms",
                        "pipelineTaskName": "download-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-java-quarkus-chprkuvp:626647f8f177e9408d43c702a4321e1ca96ef4b9\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-qua597c38f61d22cac250d5f942130a81e9-upload-sboms",
                        "pipelineTaskName": "upload-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-java-quarkus-chprkuvp:626647f8f177e9408d43c702a4321e1ca96ef4b9\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    }
                ],
                "completionTime": "2026-04-20T12:18:07Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-20T12:18: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-chprkuvp-gitops"
                                },
                                {
                                    "name": "revision",
                                    "value": "6b8ddca92c5aa3d84da97ebe2f1aef6316c56111"
                                },
                                {
                                    "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": "6b8ddca92c5aa3d84da97ebe2f1aef6316c56111"
                                            },
                                            {
                                                "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-20T12:17:20Z"
            }
        },
        {
            "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-2a7c2b4c2e.0ayo.p3.openshiftapps.com/api/v1/log/entries?logIndex=50",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "72122361869",
                    "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-qinhqr",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2a7c2b4c2e.0ayo.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-java-quarkus-chprkuvp-on-pull-request-58g2l",
                    "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-chprkuvp-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-chprkuvp",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-quarkus-chprkuvp-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "99bf60b33c87491a1d7033381f5e61cb7429d3ef",
                    "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-chprkuvp/commit/99bf60b33c87491a1d7033381f5e61cb7429d3ef",
                    "pipelinesascode.tekton.dev/source-branch": "test-branch-1776686876136",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-chprkuvp",
                    "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-chprkuvp",
                    "results.tekton.dev/record": "tssc-app-ci/results/bd3ea074-ca00-4b9e-a5e4-2bb33600d9dc/records/bd3ea074-ca00-4b9e-a5e4-2bb33600d9dc",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-java-quarkus-chprkuvp\",\"commit\":\"99bf60b33c87491a1d7033381f5e61cb7429d3ef\",\"eventType\":\"pull_request\",\"pull_request-id\":1}",
                    "results.tekton.dev/result": "tssc-app-ci/results/bd3ea074-ca00-4b9e-a5e4-2bb33600d9dc",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-20T12:08:08Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "results.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-java-quarkus-chprkuvp-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-java-quarkus-chprkuvp",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-java-quarkus-chprkuvp",
                    "backstage.io/kubernetes-id": "e2e-tests-java-quarkus-chprkuvp",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-java-quarkus-chprkuvp",
                    "pipelinesascode.tekton.dev/check-run-id": "72122361869",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-quarkus-chprkuvp-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-quarkus-chprkuvp-repository",
                    "pipelinesascode.tekton.dev/sha": "99bf60b33c87491a1d7033381f5e61cb7429d3ef",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-java-quarkus-chprkuvp",
                    "tekton.dev/pipeline": "e2e-tests-java-quarkus-chprkuvp-on-pull-request-58g2l"
                },
                "name": "e2e-tests-java-quarkus-chprkuvp-on-pull-request-58g2l",
                "namespace": "tssc-app-ci",
                "resourceVersion": "43999",
                "uid": "bd3ea074-ca00-4b9e-a5e4-2bb33600d9dc"
            },
            "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-chprkuvp"
                    },
                    {
                        "name": "image-expires-after",
                        "value": "5d"
                    },
                    {
                        "name": "output-image",
                        "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-chprkuvp:on-pr-99bf60b33c87491a1d7033381f5e61cb7429d3ef"
                    },
                    {
                        "name": "path-context",
                        "value": "."
                    },
                    {
                        "name": "revision",
                        "value": "99bf60b33c87491a1d7033381f5e61cb7429d3ef"
                    },
                    {
                        "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-qinhqr"
                        }
                    },
                    {
                        "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-javaf37d7c6fc1184223c3fb6e602f105ea4-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quarkus-chprkuvp-on-pull-request-58g2l-build",
                        "pipelineTaskName": "build"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quarkus-chprkuvp-on-pull-request-58g2l-scan",
                        "pipelineTaskName": "scan"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quarkus-chprkuvp-on-pull-request-58g2l-show-sbom",
                        "pipelineTaskName": "show-sbom"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quarkus-chprkuvp-on-pull-request-58g2l-summarize",
                        "pipelineTaskName": "summarize"
                    }
                ],
                "completionTime": "2026-04-20T12:11:27Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-20T12:11:27Z",
                        "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-chprkuvp"
                                },
                                {
                                    "name": "revision",
                                    "value": "99bf60b33c87491a1d7033381f5e61cb7429d3ef"
                                },
                                {
                                    "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": "99bf60b33c87491a1d7033381f5e61cb7429d3ef"
                                            },
                                            {
                                                "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-chprkuvp:on-pr-99bf60b33c87491a1d7033381f5e61cb7429d3ef"
                                },
                                {
                                    "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-chprkuvp:on-pr-99bf60b33c87491a1d7033381f5e61cb7429d3ef"
                                },
                                {
                                    "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-chprkuvp:on-pr-99bf60b33c87491a1d7033381f5e61cb7429d3ef"
                                },
                                {
                                    "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-chprkuvp:on-pr-99bf60b33c87491a1d7033381f5e61cb7429d3ef"
                                },
                                {
                                    "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-chprkuvp:on-pr-99bf60b33c87491a1d7033381f5e61cb7429d3ef"
                                },
                                {
                                    "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-chprkuvp:on-pr-99bf60b33c87491a1d7033381f5e61cb7429d3ef"
                                },
                                {
                                    "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:02f36b5b8aa4e1ce7efb38f5447c45a9cfd2253e4762b486fde5e58e24dca4e2"
                    },
                    {
                        "name": "IMAGE_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-chprkuvp:on-pr-99bf60b33c87491a1d7033381f5e61cb7429d3ef"
                    },
                    {
                        "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-chprkuvp@sha256:1c5236b0afd91ddc584114345a03d8a131acd5593f92f50e6e79af49dead2105"
                    },
                    {
                        "name": "CHAINS-GIT_URL",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-chprkuvp"
                    },
                    {
                        "name": "CHAINS-GIT_COMMIT",
                        "value": "99bf60b33c87491a1d7033381f5e61cb7429d3ef"
                    },
                    {
                        "name": "ACS_SCAN_OUTPUT",
                        "value": "{\"vulnerabilities\":{\"critical\":0,\"high\":9,\"medium\":74,\"low\":55}}\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-20T12:08: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-2a7c2b4c2e.0ayo.p3.openshiftapps.com/api/v1/log/entries?logIndex=119",
                    "pipelinesascode.tekton.dev/branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/check-run-id": "72122911118",
                    "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-dhicvv",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2a7c2b4c2e.0ayo.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-java-quarkus-chprkuvp-on-push-k42gq",
                    "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-chprkuvp-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-chprkuvp",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-quarkus-chprkuvp-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "626647f8f177e9408d43c702a4321e1ca96ef4b9",
                    "pipelinesascode.tekton.dev/sha-title": "Merge pull request #1 from rhtap-rhdh-qe/test-branch-1776686876136",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-chprkuvp/commit/626647f8f177e9408d43c702a4321e1ca96ef4b9",
                    "pipelinesascode.tekton.dev/source-branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-chprkuvp",
                    "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-chprkuvp",
                    "results.tekton.dev/record": "tssc-app-ci/results/f5d5f95c-28e0-4933-bf86-cee63db96e66/records/f5d5f95c-28e0-4933-bf86-cee63db96e66",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-java-quarkus-chprkuvp\",\"commit\":\"626647f8f177e9408d43c702a4321e1ca96ef4b9\",\"eventType\":\"push\"}",
                    "results.tekton.dev/result": "tssc-app-ci/results/f5d5f95c-28e0-4933-bf86-cee63db96e66",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-20T12:11:56Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "results.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-java-quarkus-chprkuvp-on-push-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-java-quarkus-chprkuvp",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-java-quarkus-chprkuvp",
                    "backstage.io/kubernetes-id": "e2e-tests-java-quarkus-chprkuvp",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-java-quarkus-chprkuvp",
                    "pipelinesascode.tekton.dev/check-run-id": "72122911118",
                    "pipelinesascode.tekton.dev/event-type": "push",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-quarkus-chprkuvp-on-push",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-quarkus-chprkuvp-repository",
                    "pipelinesascode.tekton.dev/sha": "626647f8f177e9408d43c702a4321e1ca96ef4b9",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-java-quarkus-chprkuvp",
                    "tekton.dev/pipeline": "e2e-tests-java-quarkus-chprkuvp-on-push-k42gq"
                },
                "name": "e2e-tests-java-quarkus-chprkuvp-on-push-k42gq",
                "namespace": "tssc-app-ci",
                "resourceVersion": "49904",
                "uid": "f5d5f95c-28e0-4933-bf86-cee63db96e66"
            },
            "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-chprkuvp"
                    },
                    {
                        "name": "image-expires-after",
                        "value": "5d"
                    },
                    {
                        "name": "output-image",
                        "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-chprkuvp:626647f8f177e9408d43c702a4321e1ca96ef4b9"
                    },
                    {
                        "name": "path-context",
                        "value": "."
                    },
                    {
                        "name": "revision",
                        "value": "626647f8f177e9408d43c702a4321e1ca96ef4b9"
                    },
                    {
                        "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-dhicvv"
                        }
                    },
                    {
                        "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-chprkuvp-on-push-k42gq-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quarkus-chprkuvp-on-push-k42gq-build",
                        "pipelineTaskName": "build"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quarkus-chprkuvp-on-push-k42gq-deploy",
                        "pipelineTaskName": "deploy",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "notin",
                                "values": [
                                    "pull_request",
                                    "Merge Request"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quarkus-chprkuvp-on-push-k42gq-deployment-check",
                        "pipelineTaskName": "deployment-check",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "in",
                                "values": [
                                    "push",
                                    "Push"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quarkus-chprkuvp-on-push-k42gq-scan",
                        "pipelineTaskName": "scan"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quarkus-chprkuvp-on-push-k42gq-show-sbom",
                        "pipelineTaskName": "show-sbom"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-quarkus-chprkuvp-on-push-k42gq-summarize",
                        "pipelineTaskName": "summarize"
                    }
                ],
                "completionTime": "2026-04-20T12:14:53Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-20T12:14:53Z",
                        "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-chprkuvp"
                                },
                                {
                                    "name": "revision",
                                    "value": "626647f8f177e9408d43c702a4321e1ca96ef4b9"
                                },
                                {
                                    "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": "626647f8f177e9408d43c702a4321e1ca96ef4b9"
                                            },
                                            {
                                                "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-chprkuvp:626647f8f177e9408d43c702a4321e1ca96ef4b9"
                                },
                                {
                                    "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-chprkuvp:626647f8f177e9408d43c702a4321e1ca96ef4b9"
                                },
                                {
                                    "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-chprkuvp:626647f8f177e9408d43c702a4321e1ca96ef4b9"
                                },
                                {
                                    "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-chprkuvp:626647f8f177e9408d43c702a4321e1ca96ef4b9"
                                },
                                {
                                    "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-chprkuvp:626647f8f177e9408d43c702a4321e1ca96ef4b9"
                                },
                                {
                                    "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-chprkuvp:626647f8f177e9408d43c702a4321e1ca96ef4b9"
                                },
                                {
                                    "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:5bf57fd8a00ac0debf58c3fc0fb01f3dbf9532cdbc4c00e5d93efec8d16eebe2"
                    },
                    {
                        "name": "IMAGE_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-java-quarkus-chprkuvp:626647f8f177e9408d43c702a4321e1ca96ef4b9"
                    },
                    {
                        "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-chprkuvp@sha256:ff1045040639de148a539f0114cd9505e3bfc762de5ea00c4710ed27b4e2e2c6"
                    },
                    {
                        "name": "CHAINS-GIT_URL",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-quarkus-chprkuvp"
                    },
                    {
                        "name": "CHAINS-GIT_COMMIT",
                        "value": "626647f8f177e9408d43c702a4321e1ca96ef4b9"
                    },
                    {
                        "name": "ACS_SCAN_OUTPUT",
                        "value": "{\"vulnerabilities\":{\"critical\":0,\"high\":9,\"medium\":74,\"low\":55}}\n"
                    }
                ],
                "startTime": "2026-04-20T12:11:56Z"
            }
        },
        {
            "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-2a7c2b4c2e.0ayo.p3.openshiftapps.com/api/v1/log/entries?logIndex=176",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "72123710276",
                    "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-bkwkmb",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2a7c2b4c2e.0ayo.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-java-springboot-ersgsfyr-gitops-on-pull-request-7c7wz",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-springboot-ersgsfyr-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-ersgsfyr-gitops",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-springboot-ersgsfyr-gitops-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "748a2ebe3cba0da9e9fb9b72f99c952478de5d4e",
                    "pipelinesascode.tekton.dev/sha-title": "Promote to prod environment",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-ersgsfyr-gitops/commit/748a2ebe3cba0da9e9fb9b72f99c952478de5d4e",
                    "pipelinesascode.tekton.dev/source-branch": "promote-to-prod-1776687437670",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-ersgsfyr-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-ersgsfyr-gitops",
                    "results.tekton.dev/record": "tssc-app-ci/results/d72364ca-4040-46fd-89f3-370d9ed391e0/records/d72364ca-4040-46fd-89f3-370d9ed391e0",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-java-springboot-ersgsfyr-gitops\",\"commit\":\"748a2ebe3cba0da9e9fb9b72f99c952478de5d4e\",\"eventType\":\"pull_request\",\"pull_request-id\":2}",
                    "results.tekton.dev/result": "tssc-app-ci/results/d72364ca-4040-46fd-89f3-370d9ed391e0",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-20T12:17:28Z",
                "finalizers": [
                    "results.tekton.dev/pipelinerun",
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer"
                ],
                "generateName": "e2e-tests-java-springboot-ersgsfyr-gitops-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-java-springboot-ersgsfyr",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-java-springboot-ersgsfyr",
                    "backstage.io/kubernetes-id": "e2e-tests-java-springboot-ersgsfyr",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-java-springboot-ersgsfyr",
                    "pipelinesascode.tekton.dev/check-run-id": "72123710276",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-springboot-ersgsfyr-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "2",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-springboot-ersgsfyr-gitops-repository",
                    "pipelinesascode.tekton.dev/sha": "748a2ebe3cba0da9e9fb9b72f99c952478de5d4e",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-java-springboot-ersgsfyr-gitops",
                    "tekton.dev/pipeline": "e2e-tests-java-springboot-ersgsfyr-gitops-on-pull-request-7c7wz"
                },
                "name": "e2e-tests-java-springboot-ersgsfyr-gitops-on-pull-request-7c7wz",
                "namespace": "tssc-app-ci",
                "resourceVersion": "55467",
                "uid": "d72364ca-4040-46fd-89f3-370d9ed391e0"
            },
            "spec": {
                "params": [
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-ersgsfyr-gitops"
                    },
                    {
                        "name": "revision",
                        "value": "748a2ebe3cba0da9e9fb9b72f99c952478de5d4e"
                    },
                    {
                        "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-bkwkmb"
                        }
                    },
                    {
                        "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-java39745e4343539650f3b583991cac30f9-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-sprin39745e4343539650f3b583991cac30f9-get-images",
                        "pipelineTaskName": "get-images"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-39745e4343539650f3b583991cac30f9-verify-conforma",
                        "pipelineTaskName": "verify-conforma",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-java-springboot-ersgsfyr:daa58bdd97bd4e50bc13b779ae4cf582b4a360f9\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-s39745e4343539650f3b583991cac30f9-download-sboms",
                        "pipelineTaskName": "download-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-java-springboot-ersgsfyr:daa58bdd97bd4e50bc13b779ae4cf582b4a360f9\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-spr39745e4343539650f3b583991cac30f9-upload-sboms",
                        "pipelineTaskName": "upload-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-java-springboot-ersgsfyr:daa58bdd97bd4e50bc13b779ae4cf582b4a360f9\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    }
                ],
                "completionTime": "2026-04-20T12:18:13Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-20T12:18:13Z",
                        "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-ersgsfyr-gitops"
                                },
                                {
                                    "name": "revision",
                                    "value": "748a2ebe3cba0da9e9fb9b72f99c952478de5d4e"
                                },
                                {
                                    "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": "748a2ebe3cba0da9e9fb9b72f99c952478de5d4e"
                                            },
                                            {
                                                "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-20T12:17:28Z"
            }
        },
        {
            "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-2a7c2b4c2e.0ayo.p3.openshiftapps.com/api/v1/log/entries?logIndex=155",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "72123458355",
                    "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-imolmi",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2a7c2b4c2e.0ayo.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-java-springboot-ersgsfyr-gitops-on-pull-request-ggrsv",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-springboot-ersgsfyr-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-ersgsfyr-gitops",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-springboot-ersgsfyr-gitops-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "a9348c30006cf61a227ad77b072833f023f6539c",
                    "pipelinesascode.tekton.dev/sha-title": "Promote to stage environment",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-ersgsfyr-gitops/commit/a9348c30006cf61a227ad77b072833f023f6539c",
                    "pipelinesascode.tekton.dev/source-branch": "promote-to-stage-1776687335525",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-ersgsfyr-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-ersgsfyr-gitops",
                    "results.tekton.dev/record": "tssc-app-ci/results/edc076fe-87ee-4388-b21d-4169516e8ad0/records/edc076fe-87ee-4388-b21d-4169516e8ad0",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-java-springboot-ersgsfyr-gitops\",\"commit\":\"a9348c30006cf61a227ad77b072833f023f6539c\",\"eventType\":\"pull_request\",\"pull_request-id\":1}",
                    "results.tekton.dev/result": "tssc-app-ci/results/edc076fe-87ee-4388-b21d-4169516e8ad0",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-20T12:15:45Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "results.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-java-springboot-ersgsfyr-gitops-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-java-springboot-ersgsfyr",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-java-springboot-ersgsfyr",
                    "backstage.io/kubernetes-id": "e2e-tests-java-springboot-ersgsfyr",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-java-springboot-ersgsfyr",
                    "pipelinesascode.tekton.dev/check-run-id": "72123458355",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-springboot-ersgsfyr-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-springboot-ersgsfyr-gitops-repository",
                    "pipelinesascode.tekton.dev/sha": "a9348c30006cf61a227ad77b072833f023f6539c",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-java-springboot-ersgsfyr-gitops",
                    "tekton.dev/pipeline": "e2e-tests-java-springboot-ersgsfyr-gitops-on-pull-request-ggrsv"
                },
                "name": "e2e-tests-java-springboot-ersgsfyr-gitops-on-pull-request-ggrsv",
                "namespace": "tssc-app-ci",
                "resourceVersion": "53365",
                "uid": "edc076fe-87ee-4388-b21d-4169516e8ad0"
            },
            "spec": {
                "params": [
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-ersgsfyr-gitops"
                    },
                    {
                        "name": "revision",
                        "value": "a9348c30006cf61a227ad77b072833f023f6539c"
                    },
                    {
                        "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-imolmi"
                        }
                    },
                    {
                        "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-javade129ad3894d36cc44b053842b319ce9-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-sprinde129ad3894d36cc44b053842b319ce9-get-images",
                        "pipelineTaskName": "get-images"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-de129ad3894d36cc44b053842b319ce9-verify-conforma",
                        "pipelineTaskName": "verify-conforma",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-java-springboot-ersgsfyr:daa58bdd97bd4e50bc13b779ae4cf582b4a360f9\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-sde129ad3894d36cc44b053842b319ce9-download-sboms",
                        "pipelineTaskName": "download-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-java-springboot-ersgsfyr:daa58bdd97bd4e50bc13b779ae4cf582b4a360f9\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-sprde129ad3894d36cc44b053842b319ce9-upload-sboms",
                        "pipelineTaskName": "upload-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-java-springboot-ersgsfyr:daa58bdd97bd4e50bc13b779ae4cf582b4a360f9\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    }
                ],
                "completionTime": "2026-04-20T12:16:35Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-20T12:16:35Z",
                        "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-ersgsfyr-gitops"
                                },
                                {
                                    "name": "revision",
                                    "value": "a9348c30006cf61a227ad77b072833f023f6539c"
                                },
                                {
                                    "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": "a9348c30006cf61a227ad77b072833f023f6539c"
                                            },
                                            {
                                                "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-20T12:15:45Z"
            }
        },
        {
            "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-2a7c2b4c2e.0ayo.p3.openshiftapps.com/api/v1/log/entries?logIndex=57",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "72122517477",
                    "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-ocnpno",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2a7c2b4c2e.0ayo.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-java-springboot-ersgsfyr-on-pull-request-hr27q",
                    "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-ersgsfyr-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-ersgsfyr",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-springboot-ersgsfyr-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "e724033bbd843480f5981c7cc4a978cde48c8f07",
                    "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-ersgsfyr/commit/e724033bbd843480f5981c7cc4a978cde48c8f07",
                    "pipelinesascode.tekton.dev/source-branch": "test-branch-1776686943413",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-ersgsfyr",
                    "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-ersgsfyr",
                    "results.tekton.dev/record": "tssc-app-ci/results/a06ce140-7f7c-4eeb-af53-56368b88c1d7/records/a06ce140-7f7c-4eeb-af53-56368b88c1d7",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-java-springboot-ersgsfyr\",\"commit\":\"e724033bbd843480f5981c7cc4a978cde48c8f07\",\"eventType\":\"pull_request\",\"pull_request-id\":1}",
                    "results.tekton.dev/result": "tssc-app-ci/results/a06ce140-7f7c-4eeb-af53-56368b88c1d7",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-20T12:09:13Z",
                "finalizers": [
                    "results.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "chains.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-java-springboot-ersgsfyr-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-java-springboot-ersgsfyr",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-java-springboot-ersgsfyr",
                    "backstage.io/kubernetes-id": "e2e-tests-java-springboot-ersgsfyr",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-java-springboot-ersgsfyr",
                    "pipelinesascode.tekton.dev/check-run-id": "72122517477",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-springboot-ersgsfyr-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-springboot-ersgsfyr-repository",
                    "pipelinesascode.tekton.dev/sha": "e724033bbd843480f5981c7cc4a978cde48c8f07",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-java-springboot-ersgsfyr",
                    "tekton.dev/pipeline": "e2e-tests-java-springboot-ersgsfyr-on-pull-request-hr27q"
                },
                "name": "e2e-tests-java-springboot-ersgsfyr-on-pull-request-hr27q",
                "namespace": "tssc-app-ci",
                "resourceVersion": "44861",
                "uid": "a06ce140-7f7c-4eeb-af53-56368b88c1d7"
            },
            "spec": {
                "params": [
                    {
                        "name": "dockerfile",
                        "value": "docker/Dockerfile"
                    },
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-ersgsfyr"
                    },
                    {
                        "name": "image-expires-after",
                        "value": "5d"
                    },
                    {
                        "name": "output-image",
                        "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-ersgsfyr:on-pr-e724033bbd843480f5981c7cc4a978cde48c8f07"
                    },
                    {
                        "name": "path-context",
                        "value": "."
                    },
                    {
                        "name": "revision",
                        "value": "e724033bbd843480f5981c7cc4a978cde48c8f07"
                    },
                    {
                        "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-ocnpno"
                        }
                    },
                    {
                        "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-java669df1effc4c00c2c695b50b43a2d074-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-springboot-ersgsfyr-on-pull-request-hr27q-build",
                        "pipelineTaskName": "build"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-springboot-ersgsfyr-on-pull-request-hr27q-scan",
                        "pipelineTaskName": "scan"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-spring669df1effc4c00c2c695b50b43a2d074-show-sbom",
                        "pipelineTaskName": "show-sbom"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-spring669df1effc4c00c2c695b50b43a2d074-summarize",
                        "pipelineTaskName": "summarize"
                    }
                ],
                "completionTime": "2026-04-20T12:11:55Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-20T12:11:55Z",
                        "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-ersgsfyr"
                                },
                                {
                                    "name": "revision",
                                    "value": "e724033bbd843480f5981c7cc4a978cde48c8f07"
                                },
                                {
                                    "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": "e724033bbd843480f5981c7cc4a978cde48c8f07"
                                            },
                                            {
                                                "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-ersgsfyr:on-pr-e724033bbd843480f5981c7cc4a978cde48c8f07"
                                },
                                {
                                    "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-ersgsfyr:on-pr-e724033bbd843480f5981c7cc4a978cde48c8f07"
                                },
                                {
                                    "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-ersgsfyr:on-pr-e724033bbd843480f5981c7cc4a978cde48c8f07"
                                },
                                {
                                    "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-ersgsfyr:on-pr-e724033bbd843480f5981c7cc4a978cde48c8f07"
                                },
                                {
                                    "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-ersgsfyr:on-pr-e724033bbd843480f5981c7cc4a978cde48c8f07"
                                },
                                {
                                    "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-ersgsfyr:on-pr-e724033bbd843480f5981c7cc4a978cde48c8f07"
                                },
                                {
                                    "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:4de60bbac3bb33838c01acce2ddf33b39dd6689f06cee0fa394c0e9db8f5a29a"
                    },
                    {
                        "name": "IMAGE_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-ersgsfyr:on-pr-e724033bbd843480f5981c7cc4a978cde48c8f07"
                    },
                    {
                        "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-ersgsfyr@sha256:83b5b2831b458bc66e2e384ca617727d1e5fe0391ca62812574c942e51e82a62"
                    },
                    {
                        "name": "CHAINS-GIT_URL",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-ersgsfyr"
                    },
                    {
                        "name": "CHAINS-GIT_COMMIT",
                        "value": "e724033bbd843480f5981c7cc4a978cde48c8f07"
                    },
                    {
                        "name": "ACS_SCAN_OUTPUT",
                        "value": "{\"vulnerabilities\":{\"critical\":0,\"high\":9,\"medium\":75,\"low\":56}}\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-20T12:09: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-2a7c2b4c2e.0ayo.p3.openshiftapps.com/api/v1/log/entries?logIndex=118",
                    "pipelinesascode.tekton.dev/branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/check-run-id": "72122936677",
                    "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-fqcchk",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2a7c2b4c2e.0ayo.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-java-springboot-ersgsfyr-on-push-bczj6",
                    "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-ersgsfyr-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/pull-request": "1",
                    "pipelinesascode.tekton.dev/repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-ersgsfyr",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-springboot-ersgsfyr-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "daa58bdd97bd4e50bc13b779ae4cf582b4a360f9",
                    "pipelinesascode.tekton.dev/sha-title": "Merge pull request #1 from rhtap-rhdh-qe/test-branch-1776686943413",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-ersgsfyr/commit/daa58bdd97bd4e50bc13b779ae4cf582b4a360f9",
                    "pipelinesascode.tekton.dev/source-branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-ersgsfyr",
                    "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-ersgsfyr",
                    "results.tekton.dev/record": "tssc-app-ci/results/43f546de-a070-4e08-b39c-b79c63e959c1/records/43f546de-a070-4e08-b39c-b79c63e959c1",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-java-springboot-ersgsfyr\",\"commit\":\"daa58bdd97bd4e50bc13b779ae4cf582b4a360f9\",\"eventType\":\"push\",\"pull_request-id\":1}",
                    "results.tekton.dev/result": "tssc-app-ci/results/43f546de-a070-4e08-b39c-b79c63e959c1",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-20T12:12:07Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "results.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer"
                ],
                "generateName": "e2e-tests-java-springboot-ersgsfyr-on-push-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-java-springboot-ersgsfyr",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-java-springboot-ersgsfyr",
                    "backstage.io/kubernetes-id": "e2e-tests-java-springboot-ersgsfyr",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-java-springboot-ersgsfyr",
                    "pipelinesascode.tekton.dev/check-run-id": "72122936677",
                    "pipelinesascode.tekton.dev/event-type": "push",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-springboot-ersgsfyr-on-push",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-springboot-ersgsfyr-repository",
                    "pipelinesascode.tekton.dev/sha": "daa58bdd97bd4e50bc13b779ae4cf582b4a360f9",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-java-springboot-ersgsfyr",
                    "tekton.dev/pipeline": "e2e-tests-java-springboot-ersgsfyr-on-push-bczj6"
                },
                "name": "e2e-tests-java-springboot-ersgsfyr-on-push-bczj6",
                "namespace": "tssc-app-ci",
                "resourceVersion": "49813",
                "uid": "43f546de-a070-4e08-b39c-b79c63e959c1"
            },
            "spec": {
                "params": [
                    {
                        "name": "dockerfile",
                        "value": "docker/Dockerfile"
                    },
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-ersgsfyr"
                    },
                    {
                        "name": "image-expires-after",
                        "value": "5d"
                    },
                    {
                        "name": "output-image",
                        "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-ersgsfyr:daa58bdd97bd4e50bc13b779ae4cf582b4a360f9"
                    },
                    {
                        "name": "path-context",
                        "value": "."
                    },
                    {
                        "name": "revision",
                        "value": "daa58bdd97bd4e50bc13b779ae4cf582b4a360f9"
                    },
                    {
                        "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-fqcchk"
                        }
                    },
                    {
                        "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-java6b2f9a018dae3d07bcc176f91fed8f43-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-springboot-ersgsfyr-on-push-bczj6-build",
                        "pipelineTaskName": "build"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-springboot-ersgsfyr-on-push-bczj6-deploy",
                        "pipelineTaskName": "deploy",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "notin",
                                "values": [
                                    "pull_request",
                                    "Merge Request"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java6b2f9a018dae3d07bcc176f91fed8f43-deployment-check",
                        "pipelineTaskName": "deployment-check",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "in",
                                "values": [
                                    "push",
                                    "Push"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-springboot-ersgsfyr-on-push-bczj6-scan",
                        "pipelineTaskName": "scan"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-springboot-ersgsfyr-on-push-bczj6-show-sbom",
                        "pipelineTaskName": "show-sbom"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-springboot-ersgsfyr-on-push-bczj6-summarize",
                        "pipelineTaskName": "summarize"
                    }
                ],
                "completionTime": "2026-04-20T12:14:52Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-20T12:14: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-java-springboot-ersgsfyr"
                                },
                                {
                                    "name": "revision",
                                    "value": "daa58bdd97bd4e50bc13b779ae4cf582b4a360f9"
                                },
                                {
                                    "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": "daa58bdd97bd4e50bc13b779ae4cf582b4a360f9"
                                            },
                                            {
                                                "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-ersgsfyr:daa58bdd97bd4e50bc13b779ae4cf582b4a360f9"
                                },
                                {
                                    "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-ersgsfyr:daa58bdd97bd4e50bc13b779ae4cf582b4a360f9"
                                },
                                {
                                    "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-ersgsfyr:daa58bdd97bd4e50bc13b779ae4cf582b4a360f9"
                                },
                                {
                                    "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-ersgsfyr:daa58bdd97bd4e50bc13b779ae4cf582b4a360f9"
                                },
                                {
                                    "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-ersgsfyr:daa58bdd97bd4e50bc13b779ae4cf582b4a360f9"
                                },
                                {
                                    "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-ersgsfyr:daa58bdd97bd4e50bc13b779ae4cf582b4a360f9"
                                },
                                {
                                    "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:f78150b8a775f7bad48360010cf3c0b875671b53d7a690d6f2dcbdabed6fdb45"
                    },
                    {
                        "name": "IMAGE_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-ersgsfyr:daa58bdd97bd4e50bc13b779ae4cf582b4a360f9"
                    },
                    {
                        "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-ersgsfyr@sha256:4145f8da999046410b9c5d64a97b018739cf75941da0725cde63fcf26fc4d189"
                    },
                    {
                        "name": "CHAINS-GIT_URL",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-ersgsfyr"
                    },
                    {
                        "name": "CHAINS-GIT_COMMIT",
                        "value": "daa58bdd97bd4e50bc13b779ae4cf582b4a360f9"
                    },
                    {
                        "name": "ACS_SCAN_OUTPUT",
                        "value": "{\"vulnerabilities\":{\"critical\":0,\"high\":9,\"medium\":75,\"low\":56}}\n"
                    }
                ],
                "startTime": "2026-04-20T12:12:07Z"
            }
        },
        {
            "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-2a7c2b4c2e.0ayo.p3.openshiftapps.com/api/v1/log/entries?logIndex=46",
                    "pipelinesascode.tekton.dev/branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/check-run-id": "72122456557",
                    "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-vjywxi",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2a7c2b4c2e.0ayo.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-java-springboot-ersgsfyr-on-push-pl8lj",
                    "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-ersgsfyr-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-ersgsfyr",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-springboot-ersgsfyr-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-qe-ci[bot]",
                    "pipelinesascode.tekton.dev/sha": "fcc8a42aad1250890978ebb5d046065fbefa80fa",
                    "pipelinesascode.tekton.dev/sha-title": "initial commit",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-ersgsfyr/commit/fcc8a42aad1250890978ebb5d046065fbefa80fa",
                    "pipelinesascode.tekton.dev/source-branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-ersgsfyr",
                    "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-ersgsfyr",
                    "results.tekton.dev/record": "tssc-app-ci/results/dbbe2f1f-d20a-433d-bf76-145717f71e23/records/dbbe2f1f-d20a-433d-bf76-145717f71e23",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-java-springboot-ersgsfyr\",\"commit\":\"fcc8a42aad1250890978ebb5d046065fbefa80fa\",\"eventType\":\"push\"}",
                    "results.tekton.dev/result": "tssc-app-ci/results/dbbe2f1f-d20a-433d-bf76-145717f71e23",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-20T12:08:48Z",
                "finalizers": [
                    "results.tekton.dev/pipelinerun",
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer"
                ],
                "generateName": "e2e-tests-java-springboot-ersgsfyr-on-push-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-java-springboot-ersgsfyr",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-java-springboot-ersgsfyr",
                    "backstage.io/kubernetes-id": "e2e-tests-java-springboot-ersgsfyr",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-java-springboot-ersgsfyr",
                    "pipelinesascode.tekton.dev/check-run-id": "72122456557",
                    "pipelinesascode.tekton.dev/event-type": "push",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-java-springboot-ersgsfyr-on-push",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-java-springboot-ersgsfyr-repository",
                    "pipelinesascode.tekton.dev/sha": "fcc8a42aad1250890978ebb5d046065fbefa80fa",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-java-springboot-ersgsfyr",
                    "tekton.dev/pipeline": "e2e-tests-java-springboot-ersgsfyr-on-push-pl8lj"
                },
                "name": "e2e-tests-java-springboot-ersgsfyr-on-push-pl8lj",
                "namespace": "tssc-app-ci",
                "resourceVersion": "43959",
                "uid": "dbbe2f1f-d20a-433d-bf76-145717f71e23"
            },
            "spec": {
                "params": [
                    {
                        "name": "dockerfile",
                        "value": "docker/Dockerfile"
                    },
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-ersgsfyr"
                    },
                    {
                        "name": "image-expires-after",
                        "value": "5d"
                    },
                    {
                        "name": "output-image",
                        "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-ersgsfyr:fcc8a42aad1250890978ebb5d046065fbefa80fa"
                    },
                    {
                        "name": "path-context",
                        "value": "."
                    },
                    {
                        "name": "revision",
                        "value": "fcc8a42aad1250890978ebb5d046065fbefa80fa"
                    },
                    {
                        "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-vjywxi"
                        }
                    },
                    {
                        "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-java778829496829d5afcffb0380c58439ee-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-springboot-ersgsfyr-on-push-pl8lj-build",
                        "pipelineTaskName": "build"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-springboot-ersgsfyr-on-push-pl8lj-deploy",
                        "pipelineTaskName": "deploy",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "notin",
                                "values": [
                                    "pull_request",
                                    "Merge Request"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java778829496829d5afcffb0380c58439ee-deployment-check",
                        "pipelineTaskName": "deployment-check",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "in",
                                "values": [
                                    "push",
                                    "Push"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-springboot-ersgsfyr-on-push-pl8lj-scan",
                        "pipelineTaskName": "scan"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-springboot-ersgsfyr-on-push-pl8lj-show-sbom",
                        "pipelineTaskName": "show-sbom"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-java-springboot-ersgsfyr-on-push-pl8lj-summarize",
                        "pipelineTaskName": "summarize"
                    }
                ],
                "completionTime": "2026-04-20T12:11:23Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-20T12:11: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-ersgsfyr"
                                },
                                {
                                    "name": "revision",
                                    "value": "fcc8a42aad1250890978ebb5d046065fbefa80fa"
                                },
                                {
                                    "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": "fcc8a42aad1250890978ebb5d046065fbefa80fa"
                                            },
                                            {
                                                "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-ersgsfyr:fcc8a42aad1250890978ebb5d046065fbefa80fa"
                                },
                                {
                                    "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-ersgsfyr:fcc8a42aad1250890978ebb5d046065fbefa80fa"
                                },
                                {
                                    "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-ersgsfyr:fcc8a42aad1250890978ebb5d046065fbefa80fa"
                                },
                                {
                                    "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-ersgsfyr:fcc8a42aad1250890978ebb5d046065fbefa80fa"
                                },
                                {
                                    "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-ersgsfyr:fcc8a42aad1250890978ebb5d046065fbefa80fa"
                                },
                                {
                                    "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-ersgsfyr:fcc8a42aad1250890978ebb5d046065fbefa80fa"
                                },
                                {
                                    "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:e3b99aa46f7b75406bade3225bb71705b844fd6b7781c5f85d107df6350462c7"
                    },
                    {
                        "name": "IMAGE_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-java-springboot-ersgsfyr:fcc8a42aad1250890978ebb5d046065fbefa80fa"
                    },
                    {
                        "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-ersgsfyr@sha256:30eb140ab9ebc86e18cc75697f0df612a766d509f2ff234a76b58c4080730bf4"
                    },
                    {
                        "name": "CHAINS-GIT_URL",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-java-springboot-ersgsfyr"
                    },
                    {
                        "name": "CHAINS-GIT_COMMIT",
                        "value": "fcc8a42aad1250890978ebb5d046065fbefa80fa"
                    },
                    {
                        "name": "ACS_SCAN_OUTPUT",
                        "value": "{\"vulnerabilities\":{\"critical\":0,\"high\":9,\"medium\":75,\"low\":56}}\n"
                    }
                ],
                "startTime": "2026-04-20T12:08:48Z"
            }
        },
        {
            "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-2a7c2b4c2e.0ayo.p3.openshiftapps.com/api/v1/log/entries?logIndex=98",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "72123109820",
                    "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-toejto",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2a7c2b4c2e.0ayo.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-nodejs-jdkrueld-gitops-on-pull-request-r72dc",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-nodejs-jdkrueld-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-jdkrueld-gitops",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-nodejs-jdkrueld-gitops-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "5d7434c7e8cf09b5181955361e8d4ca20417f072",
                    "pipelinesascode.tekton.dev/sha-title": "Promote to stage environment",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-jdkrueld-gitops/commit/5d7434c7e8cf09b5181955361e8d4ca20417f072",
                    "pipelinesascode.tekton.dev/source-branch": "promote-to-stage-1776687187093",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-jdkrueld-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-jdkrueld-gitops",
                    "results.tekton.dev/record": "tssc-app-ci/results/2a558294-6f53-4a61-a308-acb5b4daa18f/records/2a558294-6f53-4a61-a308-acb5b4daa18f",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-nodejs-jdkrueld-gitops\",\"commit\":\"5d7434c7e8cf09b5181955361e8d4ca20417f072\",\"eventType\":\"pull_request\",\"pull_request-id\":1}",
                    "results.tekton.dev/result": "tssc-app-ci/results/2a558294-6f53-4a61-a308-acb5b4daa18f",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-20T12:13:19Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "results.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-nodejs-jdkrueld-gitops-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-nodejs-jdkrueld",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-nodejs-jdkrueld",
                    "backstage.io/kubernetes-id": "e2e-tests-nodejs-jdkrueld",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-nodejs-jdkrueld",
                    "pipelinesascode.tekton.dev/check-run-id": "72123109820",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-nodejs-jdkrueld-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-nodejs-jdkrueld-gitops-repository",
                    "pipelinesascode.tekton.dev/sha": "5d7434c7e8cf09b5181955361e8d4ca20417f072",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-nodejs-jdkrueld-gitops",
                    "tekton.dev/pipeline": "e2e-tests-nodejs-jdkrueld-gitops-on-pull-request-r72dc"
                },
                "name": "e2e-tests-nodejs-jdkrueld-gitops-on-pull-request-r72dc",
                "namespace": "tssc-app-ci",
                "resourceVersion": "48006",
                "uid": "2a558294-6f53-4a61-a308-acb5b4daa18f"
            },
            "spec": {
                "params": [
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-jdkrueld-gitops"
                    },
                    {
                        "name": "revision",
                        "value": "5d7434c7e8cf09b5181955361e8d4ca20417f072"
                    },
                    {
                        "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-toejto"
                        }
                    },
                    {
                        "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-nodea57a178de1669a6185d03a3e60c74d79-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs-jdka57a178de1669a6185d03a3e60c74d79-get-images",
                        "pipelineTaskName": "get-images"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodeja57a178de1669a6185d03a3e60c74d79-verify-conforma",
                        "pipelineTaskName": "verify-conforma",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-nodejs-jdkrueld:f390e6e63da5f963456bb91924884fdc8647aa7b\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejsa57a178de1669a6185d03a3e60c74d79-download-sboms",
                        "pipelineTaskName": "download-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-nodejs-jdkrueld:f390e6e63da5f963456bb91924884fdc8647aa7b\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs-ja57a178de1669a6185d03a3e60c74d79-upload-sboms",
                        "pipelineTaskName": "upload-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-nodejs-jdkrueld:f390e6e63da5f963456bb91924884fdc8647aa7b\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    }
                ],
                "completionTime": "2026-04-20T12:14:04Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-20T12:14:04Z",
                        "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-jdkrueld-gitops"
                                },
                                {
                                    "name": "revision",
                                    "value": "5d7434c7e8cf09b5181955361e8d4ca20417f072"
                                },
                                {
                                    "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": "5d7434c7e8cf09b5181955361e8d4ca20417f072"
                                            },
                                            {
                                                "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-20T12:13:19Z"
            }
        },
        {
            "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-2a7c2b4c2e.0ayo.p3.openshiftapps.com/api/v1/log/entries?logIndex=138",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "72123347534",
                    "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-ttjont",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2a7c2b4c2e.0ayo.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-nodejs-jdkrueld-gitops-on-pull-request-t47tq",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-nodejs-jdkrueld-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-jdkrueld-gitops",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-nodejs-jdkrueld-gitops-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "52636ce9f196552c99efadc1f3a422bef382b88a",
                    "pipelinesascode.tekton.dev/sha-title": "Promote to prod environment",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-jdkrueld-gitops/commit/52636ce9f196552c99efadc1f3a422bef382b88a",
                    "pipelinesascode.tekton.dev/source-branch": "promote-to-prod-1776687289535",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-jdkrueld-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-jdkrueld-gitops",
                    "results.tekton.dev/record": "tssc-app-ci/results/a021e567-28f5-4dc2-9f7e-148501a2ee8a/records/a021e567-28f5-4dc2-9f7e-148501a2ee8a",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-nodejs-jdkrueld-gitops\",\"commit\":\"52636ce9f196552c99efadc1f3a422bef382b88a\",\"eventType\":\"pull_request\",\"pull_request-id\":2}",
                    "results.tekton.dev/result": "tssc-app-ci/results/a021e567-28f5-4dc2-9f7e-148501a2ee8a",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-20T12:14:59Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "results.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-nodejs-jdkrueld-gitops-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-nodejs-jdkrueld",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-nodejs-jdkrueld",
                    "backstage.io/kubernetes-id": "e2e-tests-nodejs-jdkrueld",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-nodejs-jdkrueld",
                    "pipelinesascode.tekton.dev/check-run-id": "72123347534",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-nodejs-jdkrueld-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "2",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-nodejs-jdkrueld-gitops-repository",
                    "pipelinesascode.tekton.dev/sha": "52636ce9f196552c99efadc1f3a422bef382b88a",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-nodejs-jdkrueld-gitops",
                    "tekton.dev/pipeline": "e2e-tests-nodejs-jdkrueld-gitops-on-pull-request-t47tq"
                },
                "name": "e2e-tests-nodejs-jdkrueld-gitops-on-pull-request-t47tq",
                "namespace": "tssc-app-ci",
                "resourceVersion": "52044",
                "uid": "a021e567-28f5-4dc2-9f7e-148501a2ee8a"
            },
            "spec": {
                "params": [
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-jdkrueld-gitops"
                    },
                    {
                        "name": "revision",
                        "value": "52636ce9f196552c99efadc1f3a422bef382b88a"
                    },
                    {
                        "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-ttjont"
                        }
                    },
                    {
                        "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-nodeec4d7e1cd4d9782390df3108a1e0ee71-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs-jdkec4d7e1cd4d9782390df3108a1e0ee71-get-images",
                        "pipelineTaskName": "get-images"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejec4d7e1cd4d9782390df3108a1e0ee71-verify-conforma",
                        "pipelineTaskName": "verify-conforma",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-nodejs-jdkrueld:f390e6e63da5f963456bb91924884fdc8647aa7b\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejsec4d7e1cd4d9782390df3108a1e0ee71-download-sboms",
                        "pipelineTaskName": "download-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-nodejs-jdkrueld:f390e6e63da5f963456bb91924884fdc8647aa7b\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs-jec4d7e1cd4d9782390df3108a1e0ee71-upload-sboms",
                        "pipelineTaskName": "upload-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-nodejs-jdkrueld:f390e6e63da5f963456bb91924884fdc8647aa7b\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    }
                ],
                "completionTime": "2026-04-20T12:15:51Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-20T12:15:51Z",
                        "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-jdkrueld-gitops"
                                },
                                {
                                    "name": "revision",
                                    "value": "52636ce9f196552c99efadc1f3a422bef382b88a"
                                },
                                {
                                    "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": "52636ce9f196552c99efadc1f3a422bef382b88a"
                                            },
                                            {
                                                "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-20T12:14:59Z"
            }
        },
        {
            "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-2a7c2b4c2e.0ayo.p3.openshiftapps.com/api/v1/log/entries?logIndex=20",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "72122353101",
                    "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-jzybtc",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2a7c2b4c2e.0ayo.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-nodejs-jdkrueld-on-pull-request-64ndp",
                    "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-jdkrueld-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-jdkrueld",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-nodejs-jdkrueld-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "682683e129720c3e75b853212f7173aa946cc3e9",
                    "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-jdkrueld/commit/682683e129720c3e75b853212f7173aa946cc3e9",
                    "pipelinesascode.tekton.dev/source-branch": "test-branch-1776686874631",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-jdkrueld",
                    "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-jdkrueld",
                    "results.tekton.dev/record": "tssc-app-ci/results/6d65b3d4-a6f2-4bbb-8af1-6fe343049a74/records/6d65b3d4-a6f2-4bbb-8af1-6fe343049a74",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-nodejs-jdkrueld\",\"commit\":\"682683e129720c3e75b853212f7173aa946cc3e9\",\"eventType\":\"pull_request\",\"pull_request-id\":1}",
                    "results.tekton.dev/result": "tssc-app-ci/results/6d65b3d4-a6f2-4bbb-8af1-6fe343049a74",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-20T12:08:04Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "results.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer"
                ],
                "generateName": "e2e-tests-nodejs-jdkrueld-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-nodejs-jdkrueld",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-nodejs-jdkrueld",
                    "backstage.io/kubernetes-id": "e2e-tests-nodejs-jdkrueld",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-nodejs-jdkrueld",
                    "pipelinesascode.tekton.dev/check-run-id": "72122353101",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-nodejs-jdkrueld-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-nodejs-jdkrueld-repository",
                    "pipelinesascode.tekton.dev/sha": "682683e129720c3e75b853212f7173aa946cc3e9",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-nodejs-jdkrueld",
                    "tekton.dev/pipeline": "e2e-tests-nodejs-jdkrueld-on-pull-request-64ndp"
                },
                "name": "e2e-tests-nodejs-jdkrueld-on-pull-request-64ndp",
                "namespace": "tssc-app-ci",
                "resourceVersion": "42001",
                "uid": "6d65b3d4-a6f2-4bbb-8af1-6fe343049a74"
            },
            "spec": {
                "params": [
                    {
                        "name": "dockerfile",
                        "value": "Dockerfile"
                    },
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-jdkrueld"
                    },
                    {
                        "name": "image-expires-after",
                        "value": "5d"
                    },
                    {
                        "name": "output-image",
                        "value": "quay.io/rhtap_qe/e2e-tests-nodejs-jdkrueld:on-pr-682683e129720c3e75b853212f7173aa946cc3e9"
                    },
                    {
                        "name": "path-context",
                        "value": "."
                    },
                    {
                        "name": "revision",
                        "value": "682683e129720c3e75b853212f7173aa946cc3e9"
                    },
                    {
                        "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-jzybtc"
                        }
                    },
                    {
                        "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-node1fbc23242f38eed5591061f5bbcf3432-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs-jdkrueld-on-pull-request-64ndp-build",
                        "pipelineTaskName": "build"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs-jdkrueld-on-pull-request-64ndp-scan",
                        "pipelineTaskName": "scan"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs-jdkrueld-on-pull-request-64ndp-show-sbom",
                        "pipelineTaskName": "show-sbom"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs-jdkrueld-on-pull-request-64ndp-summarize",
                        "pipelineTaskName": "summarize"
                    }
                ],
                "completionTime": "2026-04-20T12:10:08Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-20T12:10:08Z",
                        "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-jdkrueld"
                                },
                                {
                                    "name": "revision",
                                    "value": "682683e129720c3e75b853212f7173aa946cc3e9"
                                },
                                {
                                    "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": "682683e129720c3e75b853212f7173aa946cc3e9"
                                            },
                                            {
                                                "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-jdkrueld:on-pr-682683e129720c3e75b853212f7173aa946cc3e9"
                                },
                                {
                                    "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-jdkrueld:on-pr-682683e129720c3e75b853212f7173aa946cc3e9"
                                },
                                {
                                    "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-jdkrueld:on-pr-682683e129720c3e75b853212f7173aa946cc3e9"
                                },
                                {
                                    "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-jdkrueld:on-pr-682683e129720c3e75b853212f7173aa946cc3e9"
                                },
                                {
                                    "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-jdkrueld:on-pr-682683e129720c3e75b853212f7173aa946cc3e9"
                                },
                                {
                                    "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-jdkrueld:on-pr-682683e129720c3e75b853212f7173aa946cc3e9"
                                },
                                {
                                    "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:1fb12818a5bd5cde26703221972327c369ac3d1ded192e51f460d17591b6301c"
                    },
                    {
                        "name": "IMAGE_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-nodejs-jdkrueld:on-pr-682683e129720c3e75b853212f7173aa946cc3e9"
                    },
                    {
                        "name": "BASE_IMAGES_DIGESTS",
                        "value": "registry.access.redhat.com/ubi9/nodejs-22:latest@sha256:6f2ab53021ed3dafd970c52cc916eb61f56b760377f2bd34d78433b74b5256d5\nregistry.access.redhat.com/ubi9/nodejs-22-minimal:latest@sha256:5d6d3781346b84e5ebf7c968bd6e897425de5ba9046169b1c898df01c8525350\n"
                    },
                    {
                        "name": "SBOM_BLOB_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-nodejs-jdkrueld@sha256:2bf7d284aa0732099d8a09320ee56464e49e37898093a36ad61078ce73f40683"
                    },
                    {
                        "name": "CHAINS-GIT_URL",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-jdkrueld"
                    },
                    {
                        "name": "CHAINS-GIT_COMMIT",
                        "value": "682683e129720c3e75b853212f7173aa946cc3e9"
                    },
                    {
                        "name": "ACS_SCAN_OUTPUT",
                        "value": "{\"vulnerabilities\":{\"critical\":0,\"high\":3,\"medium\":45,\"low\":50}}\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-20T12:08: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-2a7c2b4c2e.0ayo.p3.openshiftapps.com/api/v1/log/entries?logIndex=71",
                    "pipelinesascode.tekton.dev/branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/check-run-id": "72122692280",
                    "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-ejbxec",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2a7c2b4c2e.0ayo.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-nodejs-jdkrueld-on-push-r5fvq",
                    "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-jdkrueld-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-jdkrueld",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-nodejs-jdkrueld-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "f390e6e63da5f963456bb91924884fdc8647aa7b",
                    "pipelinesascode.tekton.dev/sha-title": "Merge pull request #1 from rhtap-rhdh-qe/test-branch-1776686874631",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-jdkrueld/commit/f390e6e63da5f963456bb91924884fdc8647aa7b",
                    "pipelinesascode.tekton.dev/source-branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-jdkrueld",
                    "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-jdkrueld",
                    "results.tekton.dev/record": "tssc-app-ci/results/ea84dd89-6a86-46a1-a6f3-6eabec784f72/records/ea84dd89-6a86-46a1-a6f3-6eabec784f72",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-nodejs-jdkrueld\",\"commit\":\"f390e6e63da5f963456bb91924884fdc8647aa7b\",\"eventType\":\"push\"}",
                    "results.tekton.dev/result": "tssc-app-ci/results/ea84dd89-6a86-46a1-a6f3-6eabec784f72",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-20T12:10:24Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "results.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-nodejs-jdkrueld-on-push-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-nodejs-jdkrueld",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-nodejs-jdkrueld",
                    "backstage.io/kubernetes-id": "e2e-tests-nodejs-jdkrueld",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-nodejs-jdkrueld",
                    "pipelinesascode.tekton.dev/check-run-id": "72122692280",
                    "pipelinesascode.tekton.dev/event-type": "push",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-nodejs-jdkrueld-on-push",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-nodejs-jdkrueld-repository",
                    "pipelinesascode.tekton.dev/sha": "f390e6e63da5f963456bb91924884fdc8647aa7b",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-nodejs-jdkrueld",
                    "tekton.dev/pipeline": "e2e-tests-nodejs-jdkrueld-on-push-r5fvq"
                },
                "name": "e2e-tests-nodejs-jdkrueld-on-push-r5fvq",
                "namespace": "tssc-app-ci",
                "resourceVersion": "45693",
                "uid": "ea84dd89-6a86-46a1-a6f3-6eabec784f72"
            },
            "spec": {
                "params": [
                    {
                        "name": "dockerfile",
                        "value": "Dockerfile"
                    },
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-jdkrueld"
                    },
                    {
                        "name": "image-expires-after",
                        "value": "5d"
                    },
                    {
                        "name": "output-image",
                        "value": "quay.io/rhtap_qe/e2e-tests-nodejs-jdkrueld:f390e6e63da5f963456bb91924884fdc8647aa7b"
                    },
                    {
                        "name": "path-context",
                        "value": "."
                    },
                    {
                        "name": "revision",
                        "value": "f390e6e63da5f963456bb91924884fdc8647aa7b"
                    },
                    {
                        "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-ejbxec"
                        }
                    },
                    {
                        "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-jdkrueld-on-push-r5fvq-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs-jdkrueld-on-push-r5fvq-build",
                        "pipelineTaskName": "build"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs-jdkrueld-on-push-r5fvq-deploy",
                        "pipelineTaskName": "deploy",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "notin",
                                "values": [
                                    "pull_request",
                                    "Merge Request"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs-jdkrueld-on-push-r5fvq-deployment-check",
                        "pipelineTaskName": "deployment-check",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "in",
                                "values": [
                                    "push",
                                    "Push"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs-jdkrueld-on-push-r5fvq-scan",
                        "pipelineTaskName": "scan"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs-jdkrueld-on-push-r5fvq-show-sbom",
                        "pipelineTaskName": "show-sbom"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-nodejs-jdkrueld-on-push-r5fvq-summarize",
                        "pipelineTaskName": "summarize"
                    }
                ],
                "completionTime": "2026-04-20T12:12:29Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-20T12:12:29Z",
                        "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-jdkrueld"
                                },
                                {
                                    "name": "revision",
                                    "value": "f390e6e63da5f963456bb91924884fdc8647aa7b"
                                },
                                {
                                    "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": "f390e6e63da5f963456bb91924884fdc8647aa7b"
                                            },
                                            {
                                                "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-jdkrueld:f390e6e63da5f963456bb91924884fdc8647aa7b"
                                },
                                {
                                    "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-jdkrueld:f390e6e63da5f963456bb91924884fdc8647aa7b"
                                },
                                {
                                    "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-jdkrueld:f390e6e63da5f963456bb91924884fdc8647aa7b"
                                },
                                {
                                    "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-jdkrueld:f390e6e63da5f963456bb91924884fdc8647aa7b"
                                },
                                {
                                    "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-jdkrueld:f390e6e63da5f963456bb91924884fdc8647aa7b"
                                },
                                {
                                    "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-jdkrueld:f390e6e63da5f963456bb91924884fdc8647aa7b"
                                },
                                {
                                    "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:8473abc7ee349d16a5ab4a61af38f8a785eb37b50ad36437cc27dd205cda3e18"
                    },
                    {
                        "name": "IMAGE_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-nodejs-jdkrueld:f390e6e63da5f963456bb91924884fdc8647aa7b"
                    },
                    {
                        "name": "BASE_IMAGES_DIGESTS",
                        "value": "registry.access.redhat.com/ubi9/nodejs-22:latest@sha256:6f2ab53021ed3dafd970c52cc916eb61f56b760377f2bd34d78433b74b5256d5\nregistry.access.redhat.com/ubi9/nodejs-22-minimal:latest@sha256:5d6d3781346b84e5ebf7c968bd6e897425de5ba9046169b1c898df01c8525350\n"
                    },
                    {
                        "name": "SBOM_BLOB_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-nodejs-jdkrueld@sha256:720bf9a098e09e833bd2009685c90eacb697a83d7e6ac0969f3ae575459f7075"
                    },
                    {
                        "name": "CHAINS-GIT_URL",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-nodejs-jdkrueld"
                    },
                    {
                        "name": "CHAINS-GIT_COMMIT",
                        "value": "f390e6e63da5f963456bb91924884fdc8647aa7b"
                    },
                    {
                        "name": "ACS_SCAN_OUTPUT",
                        "value": "{\"vulnerabilities\":{\"critical\":0,\"high\":3,\"medium\":45,\"low\":50}}\n"
                    }
                ],
                "startTime": "2026-04-20T12:10:24Z"
            }
        },
        {
            "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-2a7c2b4c2e.0ayo.p3.openshiftapps.com/api/v1/log/entries?logIndex=134",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "72123345671",
                    "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-axeyaa",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2a7c2b4c2e.0ayo.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-python-ioftdhwe-gitops-on-pull-request-jvb5f",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-python-ioftdhwe-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-ioftdhwe-gitops",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-python-ioftdhwe-gitops-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "6caad1aa3ef17944c1680c97d05a1d950298c20f",
                    "pipelinesascode.tekton.dev/sha-title": "Promote to stage environment",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-ioftdhwe-gitops/commit/6caad1aa3ef17944c1680c97d05a1d950298c20f",
                    "pipelinesascode.tekton.dev/source-branch": "promote-to-stage-1776687289614",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-ioftdhwe-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-ioftdhwe-gitops",
                    "results.tekton.dev/record": "tssc-app-ci/results/d6205e73-6532-4614-8e83-921befffc207/records/d6205e73-6532-4614-8e83-921befffc207",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-python-ioftdhwe-gitops\",\"commit\":\"6caad1aa3ef17944c1680c97d05a1d950298c20f\",\"eventType\":\"pull_request\",\"pull_request-id\":1}",
                    "results.tekton.dev/result": "tssc-app-ci/results/d6205e73-6532-4614-8e83-921befffc207",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-20T12:14:58Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "results.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-python-ioftdhwe-gitops-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-python-ioftdhwe",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-python-ioftdhwe",
                    "backstage.io/kubernetes-id": "e2e-tests-python-ioftdhwe",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-python-ioftdhwe",
                    "pipelinesascode.tekton.dev/check-run-id": "72123345671",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-python-ioftdhwe-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-python-ioftdhwe-gitops-repository",
                    "pipelinesascode.tekton.dev/sha": "6caad1aa3ef17944c1680c97d05a1d950298c20f",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-python-ioftdhwe-gitops",
                    "tekton.dev/pipeline": "e2e-tests-python-ioftdhwe-gitops-on-pull-request-jvb5f"
                },
                "name": "e2e-tests-python-ioftdhwe-gitops-on-pull-request-jvb5f",
                "namespace": "tssc-app-ci",
                "resourceVersion": "51616",
                "uid": "d6205e73-6532-4614-8e83-921befffc207"
            },
            "spec": {
                "params": [
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-ioftdhwe-gitops"
                    },
                    {
                        "name": "revision",
                        "value": "6caad1aa3ef17944c1680c97d05a1d950298c20f"
                    },
                    {
                        "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-axeyaa"
                        }
                    },
                    {
                        "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-pyth2ecfcd6c2de71961ad320e2578f5518f-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python-iof2ecfcd6c2de71961ad320e2578f5518f-get-images",
                        "pipelineTaskName": "get-images"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-pytho2ecfcd6c2de71961ad320e2578f5518f-verify-conforma",
                        "pipelineTaskName": "verify-conforma",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-python-ioftdhwe:882669be40d161b22d55d296a7737645c4702496\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python2ecfcd6c2de71961ad320e2578f5518f-download-sboms",
                        "pipelineTaskName": "download-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-python-ioftdhwe:882669be40d161b22d55d296a7737645c4702496\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python-i2ecfcd6c2de71961ad320e2578f5518f-upload-sboms",
                        "pipelineTaskName": "upload-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-python-ioftdhwe:882669be40d161b22d55d296a7737645c4702496\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    }
                ],
                "completionTime": "2026-04-20T12:15:46Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-20T12:15: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-python-ioftdhwe-gitops"
                                },
                                {
                                    "name": "revision",
                                    "value": "6caad1aa3ef17944c1680c97d05a1d950298c20f"
                                },
                                {
                                    "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": "6caad1aa3ef17944c1680c97d05a1d950298c20f"
                                            },
                                            {
                                                "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-20T12:14:58Z"
            }
        },
        {
            "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-2a7c2b4c2e.0ayo.p3.openshiftapps.com/api/v1/log/entries?logIndex=165",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "72123604749",
                    "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-yhgfci",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2a7c2b4c2e.0ayo.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-python-ioftdhwe-gitops-on-pull-request-rjxbw",
                    "pipelinesascode.tekton.dev/on-event": "[pull_request]",
                    "pipelinesascode.tekton.dev/on-target-branch": "[main]",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-python-ioftdhwe-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-ioftdhwe-gitops",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-python-ioftdhwe-gitops-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "c115875e386c0047291cb4696031845eadb186af",
                    "pipelinesascode.tekton.dev/sha-title": "Promote to prod environment",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-ioftdhwe-gitops/commit/c115875e386c0047291cb4696031845eadb186af",
                    "pipelinesascode.tekton.dev/source-branch": "promote-to-prod-1776687395413",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-ioftdhwe-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-ioftdhwe-gitops",
                    "results.tekton.dev/record": "tssc-app-ci/results/5e8e1956-b181-4800-bda5-c21f6d7f5744/records/5e8e1956-b181-4800-bda5-c21f6d7f5744",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-python-ioftdhwe-gitops\",\"commit\":\"c115875e386c0047291cb4696031845eadb186af\",\"eventType\":\"pull_request\",\"pull_request-id\":2}",
                    "results.tekton.dev/result": "tssc-app-ci/results/5e8e1956-b181-4800-bda5-c21f6d7f5744",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-20T12:16:46Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "results.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-python-ioftdhwe-gitops-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-python-ioftdhwe",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-python-ioftdhwe",
                    "backstage.io/kubernetes-id": "e2e-tests-python-ioftdhwe",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-python-ioftdhwe",
                    "pipelinesascode.tekton.dev/check-run-id": "72123604749",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-python-ioftdhwe-gitops-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "2",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-python-ioftdhwe-gitops-repository",
                    "pipelinesascode.tekton.dev/sha": "c115875e386c0047291cb4696031845eadb186af",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-python-ioftdhwe-gitops",
                    "tekton.dev/pipeline": "e2e-tests-python-ioftdhwe-gitops-on-pull-request-rjxbw"
                },
                "name": "e2e-tests-python-ioftdhwe-gitops-on-pull-request-rjxbw",
                "namespace": "tssc-app-ci",
                "resourceVersion": "54861",
                "uid": "5e8e1956-b181-4800-bda5-c21f6d7f5744"
            },
            "spec": {
                "params": [
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-ioftdhwe-gitops"
                    },
                    {
                        "name": "revision",
                        "value": "c115875e386c0047291cb4696031845eadb186af"
                    },
                    {
                        "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-yhgfci"
                        }
                    },
                    {
                        "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-pyth65f33be21c1d7284b3d9f12aae7529f5-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python-iof65f33be21c1d7284b3d9f12aae7529f5-get-images",
                        "pipelineTaskName": "get-images"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-pytho65f33be21c1d7284b3d9f12aae7529f5-verify-conforma",
                        "pipelineTaskName": "verify-conforma",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-python-ioftdhwe:882669be40d161b22d55d296a7737645c4702496\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python65f33be21c1d7284b3d9f12aae7529f5-download-sboms",
                        "pipelineTaskName": "download-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-python-ioftdhwe:882669be40d161b22d55d296a7737645c4702496\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python-i65f33be21c1d7284b3d9f12aae7529f5-upload-sboms",
                        "pipelineTaskName": "upload-sboms",
                        "whenExpressions": [
                            {
                                "input": "{\"components\":[{\"containerImage\":\"quay.io/rhtap_qe/e2e-tests-python-ioftdhwe:882669be40d161b22d55d296a7737645c4702496\"}]}\n",
                                "operator": "notin",
                                "values": [
                                    ""
                                ]
                            }
                        ]
                    }
                ],
                "completionTime": "2026-04-20T12:17:37Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-20T12:17:37Z",
                        "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-ioftdhwe-gitops"
                                },
                                {
                                    "name": "revision",
                                    "value": "c115875e386c0047291cb4696031845eadb186af"
                                },
                                {
                                    "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": "c115875e386c0047291cb4696031845eadb186af"
                                            },
                                            {
                                                "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-20T12:16: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-2a7c2b4c2e.0ayo.p3.openshiftapps.com/api/v1/log/entries?logIndex=36",
                    "pipelinesascode.tekton.dev/branch": "main",
                    "pipelinesascode.tekton.dev/check-run-id": "72122306130",
                    "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-sxpals",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2a7c2b4c2e.0ayo.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-python-ioftdhwe-on-pull-request-rfkt5",
                    "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-ioftdhwe-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-ioftdhwe",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-python-ioftdhwe-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "4bc509dc6a1a7a785ef96c67f831c76d3b8adae0",
                    "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-ioftdhwe/commit/4bc509dc6a1a7a785ef96c67f831c76d3b8adae0",
                    "pipelinesascode.tekton.dev/source-branch": "test-branch-1776686855129",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-ioftdhwe",
                    "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-ioftdhwe",
                    "results.tekton.dev/record": "tssc-app-ci/results/1cd8b242-bc18-4d8d-bdd6-a6abade45c5d/records/1cd8b242-bc18-4d8d-bdd6-a6abade45c5d",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-python-ioftdhwe\",\"commit\":\"4bc509dc6a1a7a785ef96c67f831c76d3b8adae0\",\"eventType\":\"pull_request\",\"pull_request-id\":1}",
                    "results.tekton.dev/result": "tssc-app-ci/results/1cd8b242-bc18-4d8d-bdd6-a6abade45c5d",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-20T12:07:45Z",
                "finalizers": [
                    "results.tekton.dev/pipelinerun",
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer"
                ],
                "generateName": "e2e-tests-python-ioftdhwe-on-pull-request-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-python-ioftdhwe",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-python-ioftdhwe",
                    "backstage.io/kubernetes-id": "e2e-tests-python-ioftdhwe",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-python-ioftdhwe",
                    "pipelinesascode.tekton.dev/check-run-id": "72122306130",
                    "pipelinesascode.tekton.dev/event-type": "pull_request",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-python-ioftdhwe-on-pull-request",
                    "pipelinesascode.tekton.dev/pull-request": "1",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-python-ioftdhwe-repository",
                    "pipelinesascode.tekton.dev/sha": "4bc509dc6a1a7a785ef96c67f831c76d3b8adae0",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-python-ioftdhwe",
                    "tekton.dev/pipeline": "e2e-tests-python-ioftdhwe-on-pull-request-rfkt5"
                },
                "name": "e2e-tests-python-ioftdhwe-on-pull-request-rfkt5",
                "namespace": "tssc-app-ci",
                "resourceVersion": "43190",
                "uid": "1cd8b242-bc18-4d8d-bdd6-a6abade45c5d"
            },
            "spec": {
                "params": [
                    {
                        "name": "dockerfile",
                        "value": "docker/Dockerfile"
                    },
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-ioftdhwe"
                    },
                    {
                        "name": "image-expires-after",
                        "value": "5d"
                    },
                    {
                        "name": "output-image",
                        "value": "quay.io/rhtap_qe/e2e-tests-python-ioftdhwe:on-pr-4bc509dc6a1a7a785ef96c67f831c76d3b8adae0"
                    },
                    {
                        "name": "path-context",
                        "value": "."
                    },
                    {
                        "name": "revision",
                        "value": "4bc509dc6a1a7a785ef96c67f831c76d3b8adae0"
                    },
                    {
                        "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-sxpals"
                        }
                    },
                    {
                        "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-pyth2386712e83b5e849b350ba3bf8d494de-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python-ioftdhwe-on-pull-request-rfkt5-build",
                        "pipelineTaskName": "build"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python-ioftdhwe-on-pull-request-rfkt5-scan",
                        "pipelineTaskName": "scan"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python-ioftdhwe-on-pull-request-rfkt5-show-sbom",
                        "pipelineTaskName": "show-sbom"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python-ioftdhwe-on-pull-request-rfkt5-summarize",
                        "pipelineTaskName": "summarize"
                    }
                ],
                "completionTime": "2026-04-20T12:10:46Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-20T12:10:46Z",
                        "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-ioftdhwe"
                                },
                                {
                                    "name": "revision",
                                    "value": "4bc509dc6a1a7a785ef96c67f831c76d3b8adae0"
                                },
                                {
                                    "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": "4bc509dc6a1a7a785ef96c67f831c76d3b8adae0"
                                            },
                                            {
                                                "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-ioftdhwe:on-pr-4bc509dc6a1a7a785ef96c67f831c76d3b8adae0"
                                },
                                {
                                    "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-ioftdhwe:on-pr-4bc509dc6a1a7a785ef96c67f831c76d3b8adae0"
                                },
                                {
                                    "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-ioftdhwe:on-pr-4bc509dc6a1a7a785ef96c67f831c76d3b8adae0"
                                },
                                {
                                    "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-ioftdhwe:on-pr-4bc509dc6a1a7a785ef96c67f831c76d3b8adae0"
                                },
                                {
                                    "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-ioftdhwe:on-pr-4bc509dc6a1a7a785ef96c67f831c76d3b8adae0"
                                },
                                {
                                    "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-ioftdhwe:on-pr-4bc509dc6a1a7a785ef96c67f831c76d3b8adae0"
                                },
                                {
                                    "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:3a77ee3459cbd6d999cabd96844411a850e35cd55e5a1de162d3bec9fdf97513"
                    },
                    {
                        "name": "IMAGE_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-python-ioftdhwe:on-pr-4bc509dc6a1a7a785ef96c67f831c76d3b8adae0"
                    },
                    {
                        "name": "BASE_IMAGES_DIGESTS",
                        "value": "registry.access.redhat.com/ubi9/python-312:latest@sha256:9e5cb3f827d4ee56a53cbf0d318eebeda2c5dfd5828e7e02d6d85a1743f6e890\n"
                    },
                    {
                        "name": "SBOM_BLOB_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-python-ioftdhwe@sha256:1dd78a8852fe4f021664c04df7b99ae1a797d510ed576f211fe3b6591d147260"
                    },
                    {
                        "name": "CHAINS-GIT_URL",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-ioftdhwe"
                    },
                    {
                        "name": "CHAINS-GIT_COMMIT",
                        "value": "4bc509dc6a1a7a785ef96c67f831c76d3b8adae0"
                    },
                    {
                        "name": "ACS_SCAN_OUTPUT",
                        "value": "{\"vulnerabilities\":{\"critical\":0,\"high\":10,\"medium\":118,\"low\":228}}\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-20T12:07:45Z"
            }
        },
        {
            "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-2a7c2b4c2e.0ayo.p3.openshiftapps.com/api/v1/log/entries?logIndex=94",
                    "pipelinesascode.tekton.dev/branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/check-run-id": "72122798845",
                    "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-zqiksx",
                    "pipelinesascode.tekton.dev/git-provider": "github",
                    "pipelinesascode.tekton.dev/installation-id": "47332704",
                    "pipelinesascode.tekton.dev/log-url": "https://console-openshift-console.apps.rosa.kx-2a7c2b4c2e.0ayo.p3.openshiftapps.com/k8s/ns/tssc-app-ci/tekton.dev~v1~PipelineRun/e2e-tests-python-ioftdhwe-on-push-z89h5",
                    "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-ioftdhwe-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-ioftdhwe",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-python-ioftdhwe-repository",
                    "pipelinesascode.tekton.dev/scm-reporting-plr-started": "true",
                    "pipelinesascode.tekton.dev/sender": "rhtap-ci-tests-bot",
                    "pipelinesascode.tekton.dev/sha": "882669be40d161b22d55d296a7737645c4702496",
                    "pipelinesascode.tekton.dev/sha-title": "Merge pull request #1 from rhtap-rhdh-qe/test-branch-1776686855129",
                    "pipelinesascode.tekton.dev/sha-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-ioftdhwe/commit/882669be40d161b22d55d296a7737645c4702496",
                    "pipelinesascode.tekton.dev/source-branch": "refs/heads/main",
                    "pipelinesascode.tekton.dev/source-repo-url": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-ioftdhwe",
                    "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-ioftdhwe",
                    "results.tekton.dev/record": "tssc-app-ci/results/7f96a74d-2fa2-4482-86cd-75d72d3d9b3f/records/7f96a74d-2fa2-4482-86cd-75d72d3d9b3f",
                    "results.tekton.dev/recordSummaryAnnotations": "{\"repo\":\"e2e-tests-python-ioftdhwe\",\"commit\":\"882669be40d161b22d55d296a7737645c4702496\",\"eventType\":\"push\"}",
                    "results.tekton.dev/result": "tssc-app-ci/results/7f96a74d-2fa2-4482-86cd-75d72d3d9b3f",
                    "results.tekton.dev/stored": "true"
                },
                "creationTimestamp": "2026-04-20T12:11:08Z",
                "finalizers": [
                    "chains.tekton.dev/pipelinerun",
                    "pipelinesascode.tekton.dev/finalizer",
                    "results.tekton.dev/pipelinerun"
                ],
                "generateName": "e2e-tests-python-ioftdhwe-on-push-",
                "generation": 1,
                "labels": {
                    "app.kubernetes.io/managed-by": "pipelinesascode.tekton.dev",
                    "app.kubernetes.io/part-of": "e2e-tests-python-ioftdhwe",
                    "app.kubernetes.io/version": "v0.39.5",
                    "argocd/app-name": "e2e-tests-python-ioftdhwe",
                    "backstage.io/kubernetes-id": "e2e-tests-python-ioftdhwe",
                    "backstage.io/kubernetes-namespace": "tssc-app",
                    "janus-idp.io/tekton": "e2e-tests-python-ioftdhwe",
                    "pipelinesascode.tekton.dev/check-run-id": "72122798845",
                    "pipelinesascode.tekton.dev/event-type": "push",
                    "pipelinesascode.tekton.dev/original-prname": "e2e-tests-python-ioftdhwe-on-push",
                    "pipelinesascode.tekton.dev/repository": "e2e-tests-python-ioftdhwe-repository",
                    "pipelinesascode.tekton.dev/sha": "882669be40d161b22d55d296a7737645c4702496",
                    "pipelinesascode.tekton.dev/state": "completed",
                    "pipelinesascode.tekton.dev/url-org": "rhtap-rhdh-qe",
                    "pipelinesascode.tekton.dev/url-repository": "e2e-tests-python-ioftdhwe",
                    "tekton.dev/pipeline": "e2e-tests-python-ioftdhwe-on-push-z89h5"
                },
                "name": "e2e-tests-python-ioftdhwe-on-push-z89h5",
                "namespace": "tssc-app-ci",
                "resourceVersion": "47969",
                "uid": "7f96a74d-2fa2-4482-86cd-75d72d3d9b3f"
            },
            "spec": {
                "params": [
                    {
                        "name": "dockerfile",
                        "value": "docker/Dockerfile"
                    },
                    {
                        "name": "git-url",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-ioftdhwe"
                    },
                    {
                        "name": "image-expires-after",
                        "value": "5d"
                    },
                    {
                        "name": "output-image",
                        "value": "quay.io/rhtap_qe/e2e-tests-python-ioftdhwe:882669be40d161b22d55d296a7737645c4702496"
                    },
                    {
                        "name": "path-context",
                        "value": "."
                    },
                    {
                        "name": "revision",
                        "value": "882669be40d161b22d55d296a7737645c4702496"
                    },
                    {
                        "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-zqiksx"
                        }
                    },
                    {
                        "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-ioftdhwe-on-push-z89h5-clone-repository",
                        "pipelineTaskName": "clone-repository"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python-ioftdhwe-on-push-z89h5-build",
                        "pipelineTaskName": "build"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python-ioftdhwe-on-push-z89h5-deploy",
                        "pipelineTaskName": "deploy",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "notin",
                                "values": [
                                    "pull_request",
                                    "Merge Request"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python-ioftdhwe-on-push-z89h5-deployment-check",
                        "pipelineTaskName": "deployment-check",
                        "whenExpressions": [
                            {
                                "input": "push",
                                "operator": "in",
                                "values": [
                                    "push",
                                    "Push"
                                ]
                            }
                        ]
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python-ioftdhwe-on-push-z89h5-scan",
                        "pipelineTaskName": "scan"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python-ioftdhwe-on-push-z89h5-show-sbom",
                        "pipelineTaskName": "show-sbom"
                    },
                    {
                        "apiVersion": "tekton.dev/v1",
                        "kind": "TaskRun",
                        "name": "e2e-tests-python-ioftdhwe-on-push-z89h5-summarize",
                        "pipelineTaskName": "summarize"
                    }
                ],
                "completionTime": "2026-04-20T12:13:52Z",
                "conditions": [
                    {
                        "lastTransitionTime": "2026-04-20T12:13: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-python-ioftdhwe"
                                },
                                {
                                    "name": "revision",
                                    "value": "882669be40d161b22d55d296a7737645c4702496"
                                },
                                {
                                    "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": "882669be40d161b22d55d296a7737645c4702496"
                                            },
                                            {
                                                "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-ioftdhwe:882669be40d161b22d55d296a7737645c4702496"
                                },
                                {
                                    "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-ioftdhwe:882669be40d161b22d55d296a7737645c4702496"
                                },
                                {
                                    "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-ioftdhwe:882669be40d161b22d55d296a7737645c4702496"
                                },
                                {
                                    "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-ioftdhwe:882669be40d161b22d55d296a7737645c4702496"
                                },
                                {
                                    "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-ioftdhwe:882669be40d161b22d55d296a7737645c4702496"
                                },
                                {
                                    "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-ioftdhwe:882669be40d161b22d55d296a7737645c4702496"
                                },
                                {
                                    "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:4a3d4b0c6749dd18e53e4f4ec98a0ca8e6778c3ecbe98062d21ba966f09e7602"
                    },
                    {
                        "name": "IMAGE_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-python-ioftdhwe:882669be40d161b22d55d296a7737645c4702496"
                    },
                    {
                        "name": "BASE_IMAGES_DIGESTS",
                        "value": "registry.access.redhat.com/ubi9/python-312:latest@sha256:9e5cb3f827d4ee56a53cbf0d318eebeda2c5dfd5828e7e02d6d85a1743f6e890\n"
                    },
                    {
                        "name": "SBOM_BLOB_URL",
                        "value": "quay.io/rhtap_qe/e2e-tests-python-ioftdhwe@sha256:ed9db3a4da8c50ad9c24f02ec8094be5ec055ba14241099fa14a464eb71f605c"
                    },
                    {
                        "name": "CHAINS-GIT_URL",
                        "value": "https://github.com/rhtap-rhdh-qe/e2e-tests-python-ioftdhwe"
                    },
                    {
                        "name": "CHAINS-GIT_COMMIT",
                        "value": "882669be40d161b22d55d296a7737645c4702496"
                    },
                    {
                        "name": "ACS_SCAN_OUTPUT",
                        "value": "{\"vulnerabilities\":{\"critical\":0,\"high\":10,\"medium\":118,\"low\":228}}\n"
                    }
                ],
                "startTime": "2026-04-20T12:11:09Z"
            }
        }
    ],
    "kind": "List",
    "metadata": {
        "resourceVersion": ""
    }
}
