Pipelines as Code version v0.38.0
OpenShift Pipelines as Code v0.38.0 has been released 🥳
✨ Major changes and Features
- Added an experimental CEL expression evaluator command: Introduced a new experimental command
tkn pac cel
for interactively evaluating CEL expressions, with support for various webhook payloads, headers, and provider auto-detection.- Link: #2151
- Jira: SRVKP-8026
Screen.Recording.2025-09-08.at.22.mp4
- Support PipelineRun re-triggering on git tag: Enables re-triggering PipelineRuns via GitOps comments on Git tags, allowing users to specify a tag for re-execution.
- Link: #2225
- Jira: SRVKP-8364
- optimize GHApp installation ID retrieval: Optimized the retrieval of GitHub App installation IDs by removing unnecessary listings and directly fetching the installation using the repository URL, with fallback to organization installation. This improves performance and reduces API calls.
- Link: #2218
🐛 Bug Fixes
- Revert on-path-change on pr merge in bitbucket: Reverted a change that caused the
{{ revision }}
variable to fetch incorrect commit IDs for Bitbucket merge commits, restoring expected behavior.- Link: #2247
- Jira: SRVKP-8616
- Prevent panic in EventEmitter when logger is nil: Added nil checks for the logger in
EmitMessage
to prevent panics and ensure robust initialization.- Link: #2257
- Jira: SRVKP-8910
- Check source project access for GitLab PRs: Ensures the GitLab token has read access to the source repository for pull requests, fixing potential build failures due to insufficient scope.
- Link: #2251
- Jira: SRVKP-8902, SRVKP-8910
- /ok-to-test /retest pipelineruns should not be created if last sha successful: Prevents the creation of new PipelineRuns for
/retest
or/ok-to-test
commands if the last commit SHA was already successful.- Link: #2048
- ensure cancel-in-progress targets PR PipelineRuns only: Correctly targets PR-close cancellations to PR PipelineRuns and prevents accidental cancellation of push-triggered PipelineRuns.
- Link: #2232
- use TargetProjectID for merge request comments (GitLab): Fixed an issue where GitLab merge request comments were not being posted correctly from forks due to incorrect ProjectID usage.
- Link: #2194
- Jira: SRVKP-8246
- Improve GitLab commit status handling: Clarified documentation and improved code for GitLab commit status updates, ensuring comments are only posted when status updates fail due to permissions.
- Link: #2253
- Jira: SRVKP-8908
- handle duplicate secret creation gracefully: Modified secret creation logic to reuse existing secrets instead of failing when a duplicate secret is encountered.
- Link: #2224
📚 Documentation Updates
- Add CEL filter example for non-code changes: Provided a comprehensive example for using CEL expressions to filter PipelineRuns, specifically excluding changes to documentation or configuration files.
- Link: #2243
- Jira: SRVKP-4602
- Add deprecation notice of Repository CR PipelineRun status: Added a prominent deprecation notice for the
PipelineRun
status field in theRepository
CR, indicating its future removal.- Link: #2238
- Add tags available for every metric in PaC: Documented the available tags/keys for every metric in Pipelines-as-Code to help users filter metrics effectively.
- Link: #2227
⚙️ Chores
- Add PR labeling with Gemini: Introduced an automated pull request labeling pipeline using Tekton and a Python script that leverages the Gemini AI model to analyze PRs and suggest labels.
- Link: #2233
- Add check user permission step in e2e workflow: Added a step to the end-to-end workflow that checks the triggering user's repository permissions via the GitHub REST API.
- Link: #2230
- Jira: SRVKP-8350
- ensure tmp dir for tests: Created the
tmp/
directory before running unit tests to prevent potential test execution failures.- Link: #2250
- Re-enable tests for Global config changes: Re-enabled tests that were previously skipped due to flakiness, as the flakes were unrelated to the global config modifications.
- Link: #2236
- Add AI assistance disclosure to PR template: Added a section to the pull request template for contributors to disclose the use of AI assistance.
- Link: #2255
- Update Jira AI token secret names: Updated AI token secret names to
gemini-api-key
andapi-key
to align with.tekton/pr-labeler.yaml
setup.- Link: #2241
- Add more unit tests for pr sorting: Added more test cases to improve the overall test coverage for the PipelineRun sorting logic.
- Link: #2197
- Update dependencies: Updated various CI and tooling dependencies, including
golang
image versions andpre-commit
hook configurations, and refined Vale style files for better accuracy with technical terms.- Link: #2249
- fix GEMINI rules: Adjusted Gemini rules to enforce code quality, formatting, and development processes, including rules for architecture, dependencies, documentation, and testing.
- Link: #2228
- add mathur07 to E2E tests allowlist: Added a user to the allowlist for triggering E2E tests on pull requests to facilitate automated testing.
- Link: #2221
- Use DeepEqual for map comparison in tests: Replaced manual map comparisons with
DeepEqual
in tests for more robust and accurate comparison.- Link: #2220
- Add tests for getExecutionOrderPatch func: Added unit tests for the
getExecutionOrderPatch
function to ensure it returns the correct value when called.- Link: #2215
- Use usernames for E2E trigger permissions: Updated E2E trigger permissions to use usernames, as GitHub has deprecated the
author_association
field.- Link: #2217
- Bump actions/setup-go from 5 to 6: Updated the
actions/setup-go
GitHub Action from version 5 to 6.- Link: #2240
- Bump actions/github-script from 7 to 8: Updated the
actions/github-script
GitHub Action from version 7 to 8.- Link: #2239
- Bump actions/checkout from 4 to 5: Updated the
actions/checkout
GitHub Action from version 4 to 5.- Link: #2219
Installation
To install this version you can install the release.yaml with kubectl
for your platform :
Openshift
kubectl apply -f https://github.com/openshift-pipelines/pipelines-as-code/releases/download/v0.38.0/release.yaml
Kubernetes
kubectl apply -f https://github.com/openshift-pipelines/pipelines-as-code/releases/download/v0.38.0/release.k8s.yaml
Documentation
The documentation for this release is available here :
https://release-v0-38-0.pipelines-as-code.pages.dev
Changelog
- 440cf02: Add e2e test for GitlabMergeRequestValidationErrors (@infernus01)
- 8cdbaff: Revert "fix: Re-enable tests for Global config changes" (@zakisk)
- 95d7eda: Revert on-path-change on pr merge in bitbucket (@zakisk)
- 61ba239: chore(deps): bump actions/checkout from 4 to 5 (@dependabot[bot])
- 8f2b37a: chore(deps): bump actions/github-script from 7 to 8 (@dependabot[bot])
- 018026a: chore(deps): bump actions/setup-go from 5 to 6 (@dependabot[bot])
- 3dab622: chore(deps): update Go dependencies (@chmouel)
- bae62a5: chore: Add tests for getExecutionOrderPatch func (@zakisk)
- b037c29: chore: Update pre-commit hooks to v6.0.0 (@chmouel)
- bbd98c2: chore: Upgrade Go image to 1.24 (@chmouel)
- bc5dd61: chore: add mathur07 to E2E tests allowlist (@mathur07)
- 79c8e77: chore: update vale rules from RedHat (@chmouel)
- 03a1885: chore: use deep equal for map comparison (@zakisk)
- d810742: docs(.github): Add AI assistance disclosure to PR template (@chmouel)
- c379ccd: feat: Add CEL expression evaluator command (@chmouel)
- 86a29ea: feat: Add GEMINI rules for code quality and processes (@chmouel)
- accff8e: feat: Add PR labeling with Gemini (@chmouel)
- a0b2c6f: feat: Add check user permission step in e2e workflow (@zakisk)
- c8644f3: feat: Introduce add-llm-coauthor script (@chmouel)
- fbb4d9e: feat: Support PipelineRun re-triggering on git tag (@zakisk)
- 11953f2: feat: improve pr-labeler (@chmouel)
- cc3c49d: fix(gitlab): use TargetProjectID for merge request comments (@infernus01)
- c5b32f0: fix: Check source project access for GitLab PRs (@chmouel)
- 4e56944: fix: Create tmp directory for unit tests (@chmouel)
- 49df439: fix: Improve GitLab commit status handling (@chmouel)
- 42fdcdf: fix: Prevent panic in EventEmitter when logger is nil (@chmouel)
- ba4a587: fix: Re-enable tests for Global config changes (@chmouel)
- 717b4a0: fix: Update Jira AI token secret names (@chmouel)
- 6b55d0e: fix: commit status for unauthorized user in Bitbucket Data Center (@zakisk)
- 8fcfe51: fix: correct CEL expression syntax in filtering example (@chmouel)
- cd437c5: fix: don't restart successful pipelineruns on /retest /ok-to-test (@waveywaves)
- c5d07bb: fix: ensure cancel-in-progress targets PR PipelineRuns only (@zakisk)
- ee9da52: handle duplicate secret creation gracefully (@ab-ghosh)
- e76ae6c: refactor: Use usernames for E2E trigger permissions (@zakisk)
- 90903ee: refactor: optimize GHApp installation ID retrieval (@chmouel)
- 1da22b4: test(sort): add more unit tests for pr sorting (@chmouel)
- 1483793: use ListProjectForks instead of creating forks in e2e test (@infernus01)