apiVersion: tekton.dev/v1 kind: Task metadata: name: git-clone labels: app.kubernetes.io/version: "0.1" annotations: tekton.dev/categories: SCM tekton.dev/pipelines.minVersion: "1.12.1" tekton.dev/tags: scm tekton.dev/displayName: "Clone a git repository." tekton.dev/platforms: "linux/amd64" spec: description: >- This task will clone a git repository. workspaces: - name: output mountPath: /output readOnly: false params: - name: url type: string description: The repository url to clone. - name: revision type: string description: The revision to clone. - name: IMAGE type: string description: Docker image to use for performing the clone. default: "alpine/git:v2.54.0" results: - name: commit type: string description: The commit hash that was cloned. - name: url type: string description: The URL to the git repo. - name: committer-date type: string description: The time of the git commit in unix timestamp format. steps: - name: fetch-repository-step image: $(params.IMAGE) workingDir: "$(workspaces.output.path)" script: | #!/usr/bin/env sh set -euo pipefail export GIT_SSH_COMMAND="ssh -o StrictHostKeyChecking=accept-new" git init --initial-branch=main git remote add origin $(params.url) git fetch -v origin $(params.revision) git checkout FETCH_HEAD git rev-parse HEAD > $(results.commit.path) echo "$(params.url)" > $(results.url.path) echo -n "$(git log -1 --pretty=%ct)" > $(results.committer-date.path) # securityContext: # runAsNonRoot: true # runAsUser: 1000 # runAsGroup: 1000