Introduce a git-clone task.
The official git-clone task her permission issues when cloning a private repo, so I'm introducing my own.
This commit is contained in:
60
task/git-clone/0.1/git-clone.yaml
Normal file
60
task/git-clone/0.1/git-clone.yaml
Normal file
@@ -0,0 +1,60 @@
|
|||||||
|
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
|
||||||
Reference in New Issue
Block a user