---
# System prepended metadata

title: Pipelines as Code version v0.20.0

---

# Pipelines as Code version v0.20.0

OpenShift Pipelines as Code v0.20.0 has been released 🥳

## Changes

* Allow setting policies on actions to be executed by set of users
    * Policies allow your teams to do some actions and reject member who are not part of those teams.
    * Currently actions supported are `pull_request` and `ok_to_test`
    * Doc: https://main.pipelines-as-code.pages.dev/docs/guide/policy/

* Add support for multiple catalog hubs to fetch the tasks
    * Doc: https://main.pipelines-as-code.pages.dev/docs/install/settings/#tekton-hub-support

* tkn pac commands `tkn pac create repo`, `tkn pac bootstrap` and `tkn pac webhook add` will check for pac installation in only `pipelines-as-code` or `openshift-pipelines` namespaces by default or if value is provided by `--pac-namespace` flag
    * PR [#1357](https://github.com/openshift-pipelines/pipelines-as-code/pull/1357)

* Add `--v1beta1` flag for `tkn pac resolve` command to get the PipelineRun as v1beta1
    * PR [#1293](https://github.com/openshift-pipelines/pipelines-as-code/pull/1293)

* Enable default metrics for pac controller
    * PR [#1328](https://github.com/openshift-pipelines/pipelines-as-code/pull/1328)

## Fixes

* Now if the author is private member of the repository's organization, then PipelineRun will be triggered for pull request
    * PR [#1286](https://github.com/openshift-pipelines/pipelines-as-code/pull/1286)

* CEL expression in Pipelines as Code has new values target_url and source_url available for filtering
    * PR [#1272](https://github.com/openshift-pipelines/pipelines-as-code/pull/1272)

* Fix branch Matching where pipelinerun was getting triggered if baseName of branch is same
    * PR [#1352](https://github.com/openshift-pipelines/pipelines-as-code/pull/1352)

* Fix status check showing skipped for pipelinrun waiting for approval
    * PR [#1310](https://github.com/openshift-pipelines/pipelines-as-code/pull/1310)

* Delete git-clone basic-auth secret when deleting a pipelinerun
    * PR [#1341](https://github.com/openshift-pipelines/pipelines-as-code/pull/1341)

## Installation

To install this version you can install the release.yaml with [`kubectl`](https://kubernetes.io/docs/tasks/tools/#kubectl) for your platform :

### Openshift
```shell
kubectl apply -f https://github.com/openshift-pipelines/pipelines-as-code/releases/download/v0.20.0/release.yaml
```
### Kubernetes
```shell
kubectl apply -f https://github.com/openshift-pipelines/pipelines-as-code/releases/download/v0.20.0/release.k8s.yaml
```
### Documentation

The documentation for this release is available here :

https://release-v0-20-0.pipelines-as-code.pages.dev

## Changelog
* 19740801951be18ac2254726588574094e34979b: Add --v1beta1 flag for pipelinerun output (@chmouel)
* a9bbc4289e3c377910aa12e30e8578a1b84eb7cc: Add a bit more information about application name (@chmouel)
* 6ec4bf8790cf91993d428e7f98a0e8f94f1cbb84: Add a getting started documentation (@chmouel)
* 67ca423ed0fc3f78e76e84c75d7a337f976eb9ad: Add a note about commit messages in the PR template (@chmouel)
* 0e4cddba94d02106a0d2852986179adaae872f87: Add comment to gitea test file (@savitaashture)
* 34e15f55e37368d4a0c1a23e6c925cd0a504a12f: Add condition check to verify secret-github-app-token-scoped enabled or not (@savitaashture)
* 2a3ce492757d4cb6bf7812ce87b44d9e2958f308: Add detailed info and addressed review comments (@savitaashture)
* 2b5e91972f4fb0ac95ddc03fa4c059ee24fedc09: Add some help to the install.sh script (@chmouel)
* 89c385b90c8404e2d0ce17a2341e65a751284351: Add support for multiple catalog hubs (#1351) (@chmouel)
* 43320b29a31b61b00808450acfd250424c99402c: Add test for deleting secret with PipelineRun (@chmouel)
* cac9555d1356f64c3654f13f589d62632b610118: Allow setting policies on actions (@chmouel)
* 1e915d306d706935ea24d4c2cac7aec1080df2aa: Apply vale rules on README.md as well (#1335) (@chmouel)
* d5dd0759c600e65b6306813015fc9f8053e38d59: Bump docker/build-push-action from 3.3.0 to 4.1.1 (@dependabot[bot])
* cfa64cd9a07a17a01736e7aceace8b7e0634181c: Bump docker/login-action from 2.1.0 to 2.2.0 (@dependabot[bot])
* b5b93624b96929d71c52fb994c607163f7f6100f: Bump docker/metadata-action from 4.4.0 to 4.5.0 (@dependabot[bot])
* 51b0b1656fd720e7885657ecdab3b017c62efb2e: Bump docker/metadata-action from 4.5.0 to 4.6.0 (@dependabot[bot])
* 60d61fd5ad90030f6b03e67cae66dde718deadbc: Cancel old jobs attached to PR when there is update (@chmouel)
* 557ccab7a2634e719dc344fc9b885190130ba493: Create service monitor for pac controller (@prietyc123)
* c04c9cc84b3759446e4a5aff72447fddc8192e12: Delete git-clone basic-auth secret when deleting a pipelinerun (@chmouel)
* 2ced6ceb7f44ab285bebf52ed2f624c5e5b23663: Enable default metrics observability for pac controller (@prietyc123)
* 1db4c6a650bee51e4f3d730b6f29742a1fcbd401: Enforce the Pipelines-as-Code name (@chmouel)
* 81e9ebb4dc9757291774cc1a3fbd49b507e0b1a2: Fetch the hugo binary ourselves (@chmouel)
* 4d3be686338ae8f8ec7b0f6fb02713c26ff45828: Fix GitHub token scope issue when secret-github-app-token-scoped key is enabled and repo level as well as global configuration provided (@savitaashture)
* f7cb9ed5fd60872b85c6365c90962892fd1ed4ae: Fix a bunch of gitea e2e random failures (@chmouel)
* eb26ff01c306da54bde277512308cffe323c21b9: Fix branch matching based on base name (#1352) (@savitaashture)
* 2eab30c7977d975151839377db2c8fd1a5daa965: Fix branch matching when there is a slashes in the base branch name (@savitaashture)
* 8584c2520b00ab98538f6c4931c62099b69480a2: Fix branch push command in release pipeline (@piyush-garg)
* 110575984e7cd39a372afbe4228b273598b88cbd: Fix comments on test (@chmouel)
* 550f16e9474a2ac1d69e0fc0885fd0014fdc2995: Fix coverage and add info about OWNER_ALIASES (@chmouel)
* 385034087ffc699aada0dd2706891455a822d0cc: Fix e2e failure for TestGiteaParamsOnRepoCR (@savitaashture)
* 78c0159fbc6c08b50aaf1f6893f3ea6302074cfc: Fix extra space in binary names (@piyush-garg)
* ccdb73a8ddbf77dba4d02c8318ec279dc07a6205: Fix goreleaser.yaml indentation and deprecations (@piyush-garg)
* 855f3a0c09bc20b949578f30d0bc56d83abc97a8: Fix help message on -o flag (@chmouel)
* 8891b494e3bde313c6242d39a4c1957a637ddbf6: Fix java template (@piyush-garg)
* f09a8a7aeb2b89f86944be82edc3f0f07fe0ba33: Fix linter bugging on deprecated v1beta1 (@chmouel)
* dc310ca3626eb86b12f735010b7a7779967d367c: Fix message when the repository cannot be matched (@Roming22)
* 3ea94cbb415c734276be43cebcf1e91cb95caf5f: Fix secret on custom params documentation (@chmouel)
* 77c4488c662a252a22099cc578ea384cf027aaf5: Fix the branchMatching for refs/tags (@piyush-garg)
* 00c137c2ceeb6b07473de50e013c110f793d7649: Fix the path of release yaml in release script (@piyush-garg)
* 895ed8aa53f17f15ca7818d9bab4ca46442a44ce: Fix ubuntu failing to install pkgs (@piyush-garg)
* 289f39a6cfe9d4c056a4bdcd3ed9fd044404b7b2: Generate dropdown of versions (@chmouel)
* 0c4aee583ae9f5bc7d6cd85ceeb79f213bd4faa6: Improve logging doc with @mramendi proposed changes. (@AndrienkoAleksandr)
* bcd314f6173f8c15224f22428e296d70e221e69e: Improve testing for unknown secret in custom param (@chmouel)
* fda373490dc9853ad7c78efda4c32601886b2fd6: Make sure we add workspaces.source as safe.dir (@chmouel)
* 74edb48a20d2723948f25ab8c97b6d70d265bf8d: Make sure we fetch everything in git (@chmouel)
* 1eb8efe8b0f63c0b6349567c1ec6c10ebf996a0c: Make sure we test for Pending Approval (@chmouel)
* f27acced491a731fdcefbea2e123c0cea510df30: Make target_url and source_url field available in cel (@piyush-garg)
* da170b1bb3068833076674030f991fdab65d4323: Move logging docs to settings.md (@AndrienkoAleksandr)
* 8bd7be7613b9247183e30c6f039417313d772d79: Not list configmaps in all namespaces (@piyush-garg)
* e0918f4ee34be657b65bda6022b20ab572e5d9f4: Only rebuild the Docker image when Go files changes (@chmouel)
* 9b0c3bb76e72e984e125c5670cb3e322f0e2b345: Refactor filtering of the eventype to its own func (@chmouel)
* 55ca7d98db4cd060d20ac4bc290ff76c069f9215: Rephrase docs for private repos (@chmouel)
* d67db4be0c06a2acba779a74ac94130065de5bd2: Rephrase running.md documentation (@chmouel)
* c203a314f8827badddfa5fbb63c0c235742ae0f1: Revert "Fix the path of release yaml in release script" (@piyush-garg)
* c9a7c05d9d3ba67f81f4f21051e4da58077c13d6: Revert "set, then unset, pending pipelinerun regardless of concurrency limit in startPR" (@chmouel)
* 0c393f1accc446cd099313f0f18e132e3221e0e2: Simplify auto-generated pac-gitauth secret URL (@Bibz87)
* 9e3a84cc75881fef42b5f3c3b2f8ec38536c0d7d: Simplify branchMatch function (@chmouel)
* fff2583b2b8f23807ab19aa2d4f29e7e0be7b99f: Try to fix uploading file to nightly (@chmouel)
* b08102e34e9925c982135a7e886cda4c41abb5ae: Update GitHub token scope e2e test to verify for global configuration (@savitaashture)
* 162753e89815d073908058d275809ded085b1b67: Update all dependencies (@chmouel)
* 1214f1526c6ccdb3816417e8185cd706a27dc30f: Update custom param doc with proper syntax for filter (#1355) (@savitaashture)
* f2fadc4cd19bd255dd8d08a0afc6f46e369a2958: Update docs/content/docs/install/settings.md (@AndrienkoAleksandr)
* ef120fa08e6b44ea3614bb2c34e3a0c5adf22bdf: Update gitea scope to 1.20 (@chmouel)
* fd9c7881f438c0383cf24a59454a29e2845ecf0d: Update installtion doc with operator configuration info (@savitaashture)
* e59c74447b7ece162313c64357b66e66cd115e73: Update status check for skipped pipelinerun from skipped to Pending approval (@savitaashture)
* 13a970a2078f4ec8fc896b44efb1c3114d649e39: Update to go-github v53 (@chmouel)
* 0de4722ccd8022d45b9f6edc050d9ca34effd954: Use 'Pipelines as Code' in the logging doc (@AndrienkoAleksandr)
* 2b5885577cdf0a2e3758e9f33800e8b97e48d1d0: Use sync.Map instead of map (@piyush-garg)
* fe5ecc745e370e4f0bb94dd040b2871ffd27d27d: [cli] Don't error when user cannot acces pac ns (@chmouel)
* e6e6339b262795ce992bf8605573262aa2c88555: add /src as safe in dockerfile (@chmouel)
* 76706d5a7319617135fb76905f42fc0eece7ae84: add placeholder reconcile test (@chmouel)
* ae3835dab4ab7936340d49ff93274f66777d528d: add workspace.source.dir as safe for git (@chmouel)
* 7aff449a09ab8155d4306990ed9b73db8969bc46: add workspace.source.dir as safe for git in release pipeline yaml (@savitaashture)
* a81cda46a7d1c75bacff70f635b0dada19705fd9: add workspace.source.dir as safe for git in release pipeline yaml (@savitaashture)
* 76c88524562ba70624173786a02e6e5440e8228c: cancel-in-progress the container building on github action (@chmouel)
* f471e70d2cec214f5c1666531ab30fc43defee7b: capitalize console name (@chmouel)
* 2934a05fbf824efc9d5fe8b65d7b480e0011c773: change pull_request_template to make it friendlier (@chmouel)
* 61b835944e329d3ff206ca296c42071f44a34a95: convert .tekton/release-pipeline.yaml to use git (@chmouel)
* 4f08ba0b810052a693d837472bc02a552fa4620a: disable depguard for now (@chmouel)
* fb5dbb9dc8e316d8b8d504e1ec4cd7c2d34a59d3: don't just list the public members of a org (@chmouel)
* 16cbdcc91febea81c0b28658876236e3c13c9a35: double default retry backoff for piplinerun patch (@gabemontero)
* 7a8ba3d32a9c61227e4f141ed163da859bae9f66: fix error message when fataling (@chmouel)
* 7260744fa54781cb4c0fbb79a47c43d50b6873b7: fix generate-coverage-release (@chmouel)
* 7cd27f05dc10ee4fd8009074618f35c6f8b2a530: fix ghapp_token when we don't output jwt tokens (@chmouel)
* c3015466225a842180b1d6b0840c9ca9c360db8b: fix gitea not starting (@chmouel)
* 20fb3043e29ce0fd5c2ecf3c95e1fb7014c14eba: fix goreleaser deprecation notice (@chmouel)
* 6c472f5e0ec927ff8b36d22d76509e4187c2366a: fix markdownlint (@chmouel)
* 77351e97c68011de87141054a2f816cac688943b: fix some gosec errors on golangci 1.54.2 (@chmouel)
* 7e18c5ac98bd02448d11e9dd5dd135709be7f5d8: fix wine install with latest ubuntu gpg keys (@chmouel)
* db7355a2ee18bc7348138ad2f1962775241cf9fd: generate release yaml in current dir (@piyush-garg)
* 2a0a47c155f55ccfdf905bd5f13cf29ef55bf853: install latest ko (#1330) (@chmouel)
* 56f723497f9e4cb9ba633afc71923c1bf0375bd5: install wine from the default ubuntu repo (@chmouel)
* 92475af511426c5a994a71059cdc29ed7fbcadc1: more return original pipelinerun vs. nil on patch (@gabemontero)
* aa136bf55d37b0c8b7d644bddc4c7eb632cf967c: print installed gitea version (@chmouel)
* 4803c1ddeeb0b647d26d36151f7529d53c4093e3: return original pipelinerun vs. nil on patch error (@gabemontero)
* 13aa6e597aa66011d5b496e9850e91e400610601: set, then unset, pending pipelinerun regardless of concurrency limit in startPR (@gabemontero)
* 6b0fdff0d1c6021e5ef0907eb439b721ff2ceb1d: tkn pac resolver fixes (@chmouel)
* 84e62066b1a1d0b240f9d7f7abc141b4c7683fda: update all deps and container images (#1282) (@chmouel)
* 9e3f8850a60078e846fe7c92ef482aaa1d1e3010: updates gitea sdk to main and fork structs (@chmouel)
* 9198838c3296bba27fc68de177729055f908b07d: use curl from docker hub (@chmouel)
* 0488f72aaa070b5574b8cb297bcedf73c633555e: use git instead of github api to upload release.yaml file (@chmouel)
* 8efd0f87254edc8dc19f844813a8ba0781dc0d16: when pushing to gitea use a loop to try multiple times on errors (@chmouel)

