Skip to content

v0.38.0

Latest
Compare
Choose a tag to compare
@osp-pac osp-pac released this 26 Sep 06:21
· 20 commits to main since this release

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.
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.
  • 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.

🐛 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.
  • Prevent panic in EventEmitter when logger is nil: Added nil checks for the logger in EmitMessage to prevent panics and ensure robust initialization.
  • 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.
  • /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.
  • ensure cancel-in-progress targets PR PipelineRuns only: Correctly targets PR-close cancellations to PR PipelineRuns and prevents accidental cancellation of push-triggered PipelineRuns.
  • 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.
  • 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.
  • handle duplicate secret creation gracefully: Modified secret creation logic to reuse existing secrets instead of failing when a duplicate secret is encountered.

📚 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.
  • Add deprecation notice of Repository CR PipelineRun status: Added a prominent deprecation notice for the PipelineRun status field in the Repository CR, indicating its future removal.
  • 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.

⚙️ 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.
  • 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.
  • ensure tmp dir for tests: Created the tmp/ directory before running unit tests to prevent potential test execution failures.
  • 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.
  • Add AI assistance disclosure to PR template: Added a section to the pull request template for contributors to disclose the use of AI assistance.
  • Update Jira AI token secret names: Updated AI token secret names to gemini-api-key and api-key to align with .tekton/pr-labeler.yaml setup.
  • Add more unit tests for pr sorting: Added more test cases to improve the overall test coverage for the PipelineRun sorting logic.
  • Update dependencies: Updated various CI and tooling dependencies, including golang image versions and pre-commit hook configurations, and refined Vale style files for better accuracy with technical terms.
  • fix GEMINI rules: Adjusted Gemini rules to enforce code quality, formatting, and development processes, including rules for architecture, dependencies, documentation, and testing.
  • add mathur07 to E2E tests allowlist: Added a user to the allowlist for triggering E2E tests on pull requests to facilitate automated testing.
  • Use DeepEqual for map comparison in tests: Replaced manual map comparisons with DeepEqual in tests for more robust and accurate comparison.
  • Add tests for getExecutionOrderPatch func: Added unit tests for the getExecutionOrderPatch function to ensure it returns the correct value when called.
  • Use usernames for E2E trigger permissions: Updated E2E trigger permissions to use usernames, as GitHub has deprecated the author_association field.
  • Bump actions/setup-go from 5 to 6: Updated the actions/setup-go GitHub Action from version 5 to 6.
  • Bump actions/github-script from 7 to 8: Updated the actions/github-script GitHub Action from version 7 to 8.
  • Bump actions/checkout from 4 to 5: Updated the actions/checkout GitHub Action from version 4 to 5.

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