Skip to main content

tkn pac repository

Manage Pipelines-as-Code Repository custom resources with list and delete operations.

Available Commands

  • list - List Repository CRDs
  • delete - Delete Repository CRDs

list

List Pipelines-as-Code repositories and their latest PipelineRun status.

Synopsis

tkn pac list [flags]
tkn pac ls [flags]

Description

The list command displays all Repository CRDs and their current or last PipelineRun status. It shows:
  • Repository name and URL
  • Latest commit SHA
  • Start time and duration
  • PipelineRun status
  • Clickable links to logs/console (in modern terminals)

Usage Examples

# List repositories in current namespace
tkn pac list

Flags

-A, --all-namespaces
boolean
default:"false"
List repositories across all namespaces
-n, --namespace
string
Namespace scope for the request
-l, --selectors
string
Label selector to filter repositories (supports =, ==, !=)Examples:
  • app=myapp
  • environment=production,tier=backend
  • team!=external
--use-realtime
boolean
default:"false"
Display timestamps as RFC3339 instead of relative time
--no-headers
boolean
default:"false"
Don’t print column headers

Output Example

$ tkn pac list

NAME            URL                                 SHA      STARTED       DURATION  STATUS
myorg-api       https://github.com/myorg/api        a3c5e8d  2 hours ago   5m 23s    Succeeded
myorg-frontend  https://github.com/myorg/frontend   b1d4f2a  30 mins ago   3m 45s    Running
myorg-docs      https://github.com/myorg/docs       c7e9a1b  1 day ago     2m 11s    Failed
With --all-namespaces:
$ tkn pac list -A

NAME            URL                                 SHA      STARTED       DURATION  NAMESPACE          STATUS
myorg-api       https://github.com/myorg/api        a3c5e8d  2 hours ago   5m 23s    production         Succeeded
myorg-frontend  https://github.com/myorg/frontend   b1d4f2a  30 mins ago   3m 45s    development        Running
myorg-docs      https://github.com/myorg/docs       c7e9a1b  1 day ago     2m 11s    documentation      Failed
With --use-realtime:
$ tkn pac list --use-realtime

NAME            URL                                 SHA      STARTED                    DURATION  STATUS
myorg-api       https://github.com/myorg/api        a3c5e8d  2024-03-15T14:30:00Z      5m 23s    Succeeded
myorg-frontend  https://github.com/myorg/frontend   b1d4f2a  2024-03-15T16:45:00Z      3m 45s    Running

Column Descriptions

ColumnDescription
NAMERepository CRD name
URLGit repository URL
SHALatest commit SHA (first 7 characters)
STARTEDWhen the PipelineRun started (relative or absolute)
DURATIONHow long the PipelineRun ran/is running
NAMESPACENamespace (only with -A)
STATUSPipelineRun status (Succeeded, Failed, Running, etc.)

Status Values

StatusDescription
SucceededPipelineRun completed successfully
FailedPipelineRun failed
RunningPipelineRun currently executing
PendingPipelineRun waiting to start
NoRunNo PipelineRuns found for this repository
On modern terminals (iTerm2, Windows Terminal, GNOME Terminal, kitty, etc.), the SHA and STATUS columns contain clickable links:
  • SHA link: Opens commit in Git provider
  • STATUS link: Opens PipelineRun logs in console/dashboard
Use Ctrl+Click (Linux/Windows) or Cmd+Click (macOS) to open links.

Label Selector Examples

# Repositories with specific label
tkn pac list -l app=myapp

# Multiple labels (AND)
tkn pac list -l app=myapp,environment=production

Troubleshooting

No repositories found:
Error: no repo found
Solutions:
  • Check you’re in the correct namespace: kubectl config get-contexts
  • Try listing all namespaces: tkn pac list -A
  • Verify repositories exist: kubectl get repositories
Permission denied:
Error: repositories.pipelinesascode.tekton.dev is forbidden
Solution: Request RBAC permissions to list repositories in the namespace.

delete

Delete one or more Pipelines-as-Code Repository CRDs.

Synopsis

tkn pac delete repository <name> [<name2> ...] [flags]
tkn pac delete repo <name> [flags]

Description

The delete repository command removes Repository CRDs from your cluster. With the --cascade flag, it also deletes associated secrets (webhook and provider tokens).

Usage Examples

# Delete one repository
tkn pac delete repo myorg-app

Required Arguments

name
string
required
Repository name(s) to delete (space-separated for multiple)

Flags

-c, --cascade
boolean
default:"false"
Delete the repository and its attached secretsDeletes:
  • Git provider token secret (if configured)
  • Webhook secret (if configured)
-n, --namespace
string
Namespace containing the repository

Output Example

Without cascade:
$ tkn pac delete repo myorg-app

repository myorg-app has been deleted
With cascade:
$ tkn pac delete repo myorg-app --cascade

secret git-provider-secret has been deleted
secret webhook-secret has been deleted
repository myorg-app has been deleted
Multiple repositories:
$ tkn pac delete repo myorg-api myorg-frontend myorg-docs

repository myorg-api has been deleted
repository myorg-frontend has been deleted
repository myorg-docs has been deleted

Cascade Deletion Details

When using --cascade, the command deletes:
  1. Git Provider Secret - Contains personal access token or API key
  2. Webhook Secret - Contains webhook validation secret
  3. Repository CRD - The Repository custom resource itself
Cascade deletion cannot be undone. Secrets will be permanently deleted.

Associated Secrets

Secrets deleted with --cascade (if they exist):
spec:
  git_provider:
    secret:
      name: "git-provider-secret"  # Deleted with --cascade
      key: "token"
    webhook_secret:
      name: "webhook-secret"        # Deleted with --cascade
      key: "webhook-secret"

Common Workflows

Clean Up Test Repositories

# Delete all test repos with their secrets
tkn pac delete repo test-app-1 test-app-2 test-app-3 --cascade

Remove Repository but Keep Secrets

# Delete only the Repository CRD
tkn pac delete repo myorg-app

# Secrets remain and can be reused
tkn pac create repo --url https://github.com/myorg/app-v2

Delete from Multiple Namespaces

# Development
tkn pac delete repo myorg-app -n dev --cascade

# Staging
tkn pac delete repo myorg-app -n staging --cascade

# Production
tkn pac delete repo myorg-app -n prod --cascade

Troubleshooting

Repository not found:
Error: repositories.pipelinesascode.tekton.dev "myorg-app" not found
Solutions:
  • Check the repository name: tkn pac list
  • Verify the namespace: tkn pac list -A
  • Ensure correct spelling
Secret deletion failed:
skipping deleting api secret git-provider-secret
repository myorg-app has been deleted
This is not an error - the secret may have been:
  • Already deleted
  • Never created
  • Shared by another repository
Permission denied:
Error: repositories.pipelinesascode.tekton.dev "myorg-app" is forbidden
Solution: Request RBAC permissions to delete repositories in the namespace. Webhook remains on Git provider: Deleting the Repository CRD does not remove webhooks from your Git provider. To clean up:
# Manually remove webhook from GitHub/GitLab/Bitbucket settings
# Or use the API to delete it programmatically

See Also

Build docs developers (and LLMs) love