Access Pipelines and Tasks in Private Repositories
Integration Test Scenarios point to their corresponding pipeline with a Git Resolver. The Git Resolver schema is inherited from Tekton and functions in the same way. Users should create an access token for their repository in Github or Gitlab then store that token in a secret in their namespace.
Once this is done, the Resolver should be updated with the fields token
and tokenKey
, which provide the name of the secret and the key within the data
section of that secret in which the access token is stored.
Example of Resolver in IntegrationTestScenario
its.yaml
apiVersion: appstudio.redhat.com/v1beta2
kind: IntegrationTestScenario
metadata:
name: example-pass
namespace: default
spec:
application: application-sample
contexts:
- description: Application testing
name: application
resolverRef:
resolver: git
params:
- name: org
value: konflux-ci
- name: repo
value: sample-private-repo
- name: serverURL
value: https://github.com
- name: revision
value: main
- name: pathInRepo
value: pipelines/integration_pipeline_pass.yaml
- name: token
value: ${SECRET_NAME}
- name: tokenKey
value: ${SECRET_KEY}
Example of Resolver in Pipeline
This is an example of how tasks in private repos can be accessed with the Git Resolver using the same method as above.
pipeline.yaml
apiVersion: tekton.dev/v1
kind: Pipeline
metadata:
name: deploy-and-test
spec:
description: |
Demonstrates the use of Git Resolvers to access tasks in private repos
tasks:
- name: parse-metadata
taskRef:
resolver: git
params:
- name: org
value: konflux-ci
- name: repo
value: sample-private-repo
- name: serverURL
value: https://github.com
- name: revision
value: main
- name: pathInRepo
value: tasks/test_metadata.yaml
- name: token
value: ${SECRET_NAME}
- name: tokenKey
value: ${SECRET_KEY}
params:
- name: SNAPSHOT
value: $(params.SNAPSHOT)