Files
Tom Alexander 404eeeea02 Introduce a git-clone task.
The official git-clone task her permission issues when cloning a private repo, so I'm introducing my own.
2026-06-21 23:15:08 -04:00

61 lines
1.7 KiB
YAML

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