Skip to content

Merge https://github.com/IBM-Cloud/cloud-provider-ibm:release-1.36 (a8839b0) into main#96

Open
cloud-team-rebase-bot[bot] wants to merge 52 commits into
openshift:mainfrom
openshift-cloud-team:rebase-bot-main
Open

Merge https://github.com/IBM-Cloud/cloud-provider-ibm:release-1.36 (a8839b0) into main#96
cloud-team-rebase-bot[bot] wants to merge 52 commits into
openshift:mainfrom
openshift-cloud-team:rebase-bot-main

Conversation

@cloud-team-rebase-bot
Copy link
Copy Markdown

@cloud-team-rebase-bot cloud-team-rebase-bot Bot commented Apr 20, 2026

Summary by CodeRabbit

  • Chores

    • Bumped Kubernetes support and displayed product version to v1.36.1.
    • Upgraded Go toolchain to 1.26.0 and updated linting tool to 2.12.2.
    • Refreshed numerous module dependencies to align with Kubernetes v1.36.x ecosystem.
    • Added Dependabot configuration for daily dependency checks.
  • New Workflows

    • Added automation for dependency updates, golangci-lint updates, kube version checks, and PR dispatch/automation.

jckasper and others added 23 commits March 9, 2026 15:38
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: John Kasperski <jckasper@us.ibm.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Bump github.com/go-openapi/strfmt from 0.25.0 to 0.26.1

Bumps [github.com/go-openapi/strfmt](https://github.com/go-openapi/strfmt) from 0.25.0 to 0.26.1.
- [Release notes](https://github.com/go-openapi/strfmt/releases)
- [Commits](go-openapi/strfmt@v0.25.0...v0.26.1)

---
updated-dependencies:
- dependency-name: github.com/go-openapi/strfmt
  dependency-version: 0.26.1
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>

* Fix go mod tidy issue

* Move exclude to bottom of go.mod

---------

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: jckasper <jckasper@us.ibm.com>
…y (#801)

Bumps the go_modules group with 1 update in the / directory: [google.golang.org/grpc](https://github.com/grpc/grpc-go).


Updates `google.golang.org/grpc` from 1.79.1 to 1.79.3
- [Release notes](https://github.com/grpc/grpc-go/releases)
- [Commits](grpc/grpc-go@v1.79.1...v1.79.3)

---
updated-dependencies:
- dependency-name: google.golang.org/grpc
  dependency-version: 1.79.3
  dependency-type: indirect
  dependency-group: go_modules
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Bumps the kubernetes-1-36 group with 5 updates:

| Package | From | To |
| --- | --- | --- |
| [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) | `0.36.0-alpha.2` | `0.36.0-beta.0` |
| [k8s.io/client-go](https://github.com/kubernetes/client-go) | `0.36.0-alpha.2` | `0.36.0-beta.0` |
| [k8s.io/cloud-provider](https://github.com/kubernetes/cloud-provider) | `0.36.0-alpha.2` | `0.36.0-beta.0` |
| [k8s.io/component-base](https://github.com/kubernetes/component-base) | `0.36.0-alpha.2` | `0.36.0-beta.0` |
| [k8s.io/component-helpers](https://github.com/kubernetes/component-helpers) | `0.36.0-alpha.2` | `0.36.0-beta.0` |


Updates `k8s.io/apimachinery` from 0.36.0-alpha.2 to 0.36.0-beta.0
- [Commits](kubernetes/apimachinery@v0.36.0-alpha.2...v0.36.0-beta.0)

Updates `k8s.io/client-go` from 0.36.0-alpha.2 to 0.36.0-beta.0
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](kubernetes/client-go@v0.36.0-alpha.2...v0.36.0-beta.0)

Updates `k8s.io/cloud-provider` from 0.36.0-alpha.2 to 0.36.0-beta.0
- [Commits](kubernetes/cloud-provider@v0.36.0-alpha.2...v0.36.0-beta.0)

Updates `k8s.io/component-base` from 0.36.0-alpha.2 to 0.36.0-beta.0
- [Commits](kubernetes/component-base@v0.36.0-alpha.2...v0.36.0-beta.0)

Updates `k8s.io/component-helpers` from 0.36.0-alpha.2 to 0.36.0-beta.0
- [Commits](kubernetes/component-helpers@v0.36.0-alpha.2...v0.36.0-beta.0)

---
updated-dependencies:
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.36.0-beta.0
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes-1-36
- dependency-name: k8s.io/client-go
  dependency-version: 0.36.0-beta.0
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes-1-36
- dependency-name: k8s.io/cloud-provider
  dependency-version: 0.36.0-beta.0
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes-1-36
- dependency-name: k8s.io/component-base
  dependency-version: 0.36.0-beta.0
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes-1-36
- dependency-name: k8s.io/component-helpers
  dependency-version: 0.36.0-beta.0
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes-1-36
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: John Kasperski <jckasper@us.ibm.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Bumps [DavidAnson/markdownlint-cli2-action](https://github.com/davidanson/markdownlint-cli2-action) from 22 to 23.
- [Release notes](https://github.com/davidanson/markdownlint-cli2-action/releases)
- [Commits](DavidAnson/markdownlint-cli2-action@v22...v23)

---
updated-dependencies:
- dependency-name: DavidAnson/markdownlint-cli2-action
  dependency-version: '23'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…841)

Bumps [github.com/IBM/platform-services-go-sdk](https://github.com/IBM/platform-services-go-sdk) from 0.96.0 to 0.97.0.
- [Release notes](https://github.com/IBM/platform-services-go-sdk/releases)
- [Changelog](https://github.com/IBM/platform-services-go-sdk/blob/main/CHANGELOG.md)
- [Commits](IBM/platform-services-go-sdk@v0.96.0...v0.97.0)

---
updated-dependencies:
- dependency-name: github.com/IBM/platform-services-go-sdk
  dependency-version: 0.97.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…858)

Bumps [github.com/IBM/platform-services-go-sdk](https://github.com/IBM/platform-services-go-sdk) from 0.97.0 to 0.97.1.
- [Release notes](https://github.com/IBM/platform-services-go-sdk/releases)
- [Changelog](https://github.com/IBM/platform-services-go-sdk/blob/main/CHANGELOG.md)
- [Commits](IBM/platform-services-go-sdk@v0.97.0...v0.97.1)

---
updated-dependencies:
- dependency-name: github.com/IBM/platform-services-go-sdk
  dependency-version: 0.97.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/IBM/vpc-go-sdk](https://github.com/IBM/vpc-go-sdk) from 0.80.0 to 0.81.0.
- [Release notes](https://github.com/IBM/vpc-go-sdk/releases)
- [Changelog](https://github.com/IBM/vpc-go-sdk/blob/master/CHANGELOG.md)
- [Commits](IBM/vpc-go-sdk@v0.80.0...v0.81.0)

---
updated-dependencies:
- dependency-name: github.com/IBM/vpc-go-sdk
  dependency-version: 0.81.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the go_modules group with 1 update in the / directory: [go.opentelemetry.io/otel/sdk](https://github.com/open-telemetry/opentelemetry-go).


Updates `go.opentelemetry.io/otel/sdk` from 1.40.0 to 1.43.0
- [Release notes](https://github.com/open-telemetry/opentelemetry-go/releases)
- [Changelog](https://github.com/open-telemetry/opentelemetry-go/blob/main/CHANGELOG.md)
- [Commits](open-telemetry/opentelemetry-go@v1.40.0...v1.43.0)

---
updated-dependencies:
- dependency-name: go.opentelemetry.io/otel/sdk
  dependency-version: 1.43.0
  dependency-type: indirect
  dependency-group: go_modules
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [actions/github-script](https://github.com/actions/github-script) from 8 to 9.
- [Release notes](https://github.com/actions/github-script/releases)
- [Commits](actions/github-script@v8...v9)

---
updated-dependencies:
- dependency-name: actions/github-script
  dependency-version: '9'
  dependency-type: direct:production
  update-type: version-update:semver-major
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the kubernetes-1-36 group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [k8s.io/api](https://github.com/kubernetes/api) | `0.36.0-beta.0` | `0.36.0-rc.0` |
| [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) | `0.36.0-beta.0` | `0.36.0-rc.0` |
| [k8s.io/client-go](https://github.com/kubernetes/client-go) | `0.36.0-beta.0` | `0.36.0-rc.0` |
| [k8s.io/cloud-provider](https://github.com/kubernetes/cloud-provider) | `0.36.0-beta.0` | `0.36.0-rc.0` |
| [k8s.io/component-base](https://github.com/kubernetes/component-base) | `0.36.0-beta.0` | `0.36.0-rc.0` |
| [k8s.io/component-helpers](https://github.com/kubernetes/component-helpers) | `0.36.0-beta.0` | `0.36.0-rc.0` |


Updates `k8s.io/api` from 0.36.0-beta.0 to 0.36.0-rc.0
- [Commits](kubernetes/api@v0.36.0-beta.0...v0.36.0-rc.0)

Updates `k8s.io/apimachinery` from 0.36.0-beta.0 to 0.36.0-rc.0
- [Commits](kubernetes/apimachinery@v0.36.0-beta.0...v0.36.0-rc.0)

Updates `k8s.io/client-go` from 0.36.0-beta.0 to 0.36.0-rc.0
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](kubernetes/client-go@v0.36.0-beta.0...v0.36.0-rc.0)

Updates `k8s.io/cloud-provider` from 0.36.0-beta.0 to 0.36.0-rc.0
- [Commits](kubernetes/cloud-provider@v0.36.0-beta.0...v0.36.0-rc.0)

Updates `k8s.io/component-base` from 0.36.0-beta.0 to 0.36.0-rc.0
- [Commits](kubernetes/component-base@v0.36.0-beta.0...v0.36.0-rc.0)

Updates `k8s.io/component-helpers` from 0.36.0-beta.0 to 0.36.0-rc.0
- [Commits](kubernetes/component-helpers@v0.36.0-beta.0...v0.36.0-rc.0)

---
updated-dependencies:
- dependency-name: k8s.io/api
  dependency-version: 0.36.0-rc.0
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes-1-36
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.36.0-rc.0
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes-1-36
- dependency-name: k8s.io/client-go
  dependency-version: 0.36.0-rc.0
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes-1-36
- dependency-name: k8s.io/cloud-provider
  dependency-version: 0.36.0-rc.0
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes-1-36
- dependency-name: k8s.io/component-base
  dependency-version: 0.36.0-rc.0
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes-1-36
- dependency-name: k8s.io/component-helpers
  dependency-version: 0.36.0-rc.0
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes-1-36
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: John Kasperski <jckasper@us.ibm.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
Co-authored-by: John Kasperski <jckasper@us.ibm.com>
…884)

Bumps [github.com/IBM/platform-services-go-sdk](https://github.com/IBM/platform-services-go-sdk) from 0.97.1 to 0.97.2.
- [Release notes](https://github.com/IBM/platform-services-go-sdk/releases)
- [Changelog](https://github.com/IBM/platform-services-go-sdk/blob/main/CHANGELOG.md)
- [Commits](IBM/platform-services-go-sdk@v0.97.1...v0.97.2)

---
updated-dependencies:
- dependency-name: github.com/IBM/platform-services-go-sdk
  dependency-version: 0.97.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/IBM/vpc-go-sdk](https://github.com/IBM/vpc-go-sdk) from 0.81.0 to 0.82.0.
- [Release notes](https://github.com/IBM/vpc-go-sdk/releases)
- [Changelog](https://github.com/IBM/vpc-go-sdk/blob/master/CHANGELOG.md)
- [Commits](IBM/vpc-go-sdk@v0.81.0...v0.82.0)

---
updated-dependencies:
- dependency-name: github.com/IBM/vpc-go-sdk
  dependency-version: 0.82.0
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps [github.com/IBM/vpc-go-sdk](https://github.com/IBM/vpc-go-sdk) from 0.82.0 to 0.82.1.
- [Release notes](https://github.com/IBM/vpc-go-sdk/releases)
- [Changelog](https://github.com/IBM/vpc-go-sdk/blob/master/CHANGELOG.md)
- [Commits](IBM/vpc-go-sdk@v0.82.0...v0.82.1)

---
updated-dependencies:
- dependency-name: github.com/IBM/vpc-go-sdk
  dependency-version: 0.82.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Bumps the kubernetes-1-36 group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [k8s.io/api](https://github.com/kubernetes/api) | `0.36.0-rc.0` | `0.36.0-rc.1` |
| [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) | `0.36.0-rc.0` | `0.36.0-rc.1` |
| [k8s.io/client-go](https://github.com/kubernetes/client-go) | `0.36.0-rc.0` | `0.36.0-rc.1` |
| [k8s.io/cloud-provider](https://github.com/kubernetes/cloud-provider) | `0.36.0-rc.0` | `0.36.0-rc.1` |
| [k8s.io/component-base](https://github.com/kubernetes/component-base) | `0.36.0-rc.0` | `0.36.0-rc.1` |
| [k8s.io/component-helpers](https://github.com/kubernetes/component-helpers) | `0.36.0-rc.0` | `0.36.0-rc.1` |


Updates `k8s.io/api` from 0.36.0-rc.0 to 0.36.0-rc.1
- [Commits](kubernetes/api@v0.36.0-rc.0...v0.36.0-rc.1)

Updates `k8s.io/apimachinery` from 0.36.0-rc.0 to 0.36.0-rc.1
- [Commits](kubernetes/apimachinery@v0.36.0-rc.0...v0.36.0-rc.1)

Updates `k8s.io/client-go` from 0.36.0-rc.0 to 0.36.0-rc.1
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](kubernetes/client-go@v0.36.0-rc.0...v0.36.0-rc.1)

Updates `k8s.io/cloud-provider` from 0.36.0-rc.0 to 0.36.0-rc.1
- [Commits](kubernetes/cloud-provider@v0.36.0-rc.0...v0.36.0-rc.1)

Updates `k8s.io/component-base` from 0.36.0-rc.0 to 0.36.0-rc.1
- [Commits](kubernetes/component-base@v0.36.0-rc.0...v0.36.0-rc.1)

Updates `k8s.io/component-helpers` from 0.36.0-rc.0 to 0.36.0-rc.1
- [Commits](kubernetes/component-helpers@v0.36.0-rc.0...v0.36.0-rc.1)

---
updated-dependencies:
- dependency-name: k8s.io/api
  dependency-version: 0.36.0-rc.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes-1-36
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.36.0-rc.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes-1-36
- dependency-name: k8s.io/client-go
  dependency-version: 0.36.0-rc.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes-1-36
- dependency-name: k8s.io/cloud-provider
  dependency-version: 0.36.0-rc.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes-1-36
- dependency-name: k8s.io/component-base
  dependency-version: 0.36.0-rc.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes-1-36
- dependency-name: k8s.io/component-helpers
  dependency-version: 0.36.0-rc.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes-1-36
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Apr 20, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review

Walkthrough

Bumps Kubernetes-related modules and repo TAG to v1.36.1, advances Go toolchain to 1.26.0, updates golangci-lint to 2.12.2, refreshes many direct and indirect go.mod deps, updates package version/docs, and adds Dependabot plus three GitHub Actions workflows to automate updates and CI for generated PRs.

Changes

Version & Dependency Bumps

Layer / File(s) Summary
Version constants & Makefile defaults
Makefile
GOLANGCI_LINT_VERSION updated to 2.12.2; default TAG updated to v1.36.1.
Package version
ibm/ibm_version.go
Exported ibm.Version changed from "v1.35.3""v1.36.1".
Docs / References
README.md, main.go
README Kubernetes link and top-of-file reference URLs updated to v1.36.1.
Toolchain & direct Go deps
go.mod
Go toolchain directive bumped to 1.26.0; direct dependencies including all k8s.io/* modules moved to v0.36.1; IBM SDKs, fsnotify, go-openapi/strfmt and others bumped.
Indirect/transitive deps
go.mod
Widespread indirect dependency refreshes (many golang.org/x/*, google.golang.org/protobuf, Kubernetes-adjacent k8s.io/* indirect modules to v0.36.1, sigs.k8s.io/structured-merge-diff/v6 to v6.3.2); go-grpc-prometheus replaced with go-grpc-middleware/providers/prometheus + go-grpc-middleware/v2.

Automation / GitHub Workflows

Layer / File(s) Summary
Dependabot configuration
.github/dependabot.yml
Adds Dependabot version: 2 entries for github-actions and gomod across release branches release-1.36release-1.29 with cron schedules, labels, grouping for k8s.io/*, and ignore rules for certain Kubernetes modules.
Kube update workflow
.github/workflows/kube-update.yml, .github/scripts/kube-update.sh
New workflow downloads Kubernetes release/tag lists, runs a branch matrix (release-1.32release-1.36), extracts TAG from branch Makefile, runs update script, commits & opens PR if TAG changed, and dispatches pull-request-created.
Golangci-lint update workflow
.github/workflows/golangci-update.yml
New workflow iterates release branches, extracts GOLANGCI_LINT_VERSION from Makefile, fetches latest golangci-lint release, updates Makefile and creates a PR if versions differ, then dispatches pull-request-created.
Dispatch PR create workflow
.github/workflows/dispatch-pr-create.yml
New workflow triggered by repository_dispatch pull-request-created; checks out target PR branch, extracts Go/golangci-lint versions, sets up Go and golangci-lint, runs make fmt, make lint, make vet, make test, make ccm, posts a success comment, and enables auto-merge (squash).

Sequence Diagram(s)

sequenceDiagram
  actor Updater as Update Workflow
  participant Repo as GitHub Repo
  participant Runner as Actions Runner
  participant PR as Pull Request
  participant Dispatcher as Dispatch Workflow

  Updater->>Repo: Read current version (Makefile)
  Updater->>Repo: Query upstream (k8s/golangci releases)
  alt version differs
    Updater->>Repo: Commit bump and create PR
    Updater->>Repo: repository_dispatch (pull-request-created) with pr_branch/pr_title
    Dispatcher->>Repo: Checkout PR branch
    Dispatcher->>Runner: Setup Go and tools, run make fmt/lint/vet/test/ccm
    Runner->>PR: Post success comment
    Runner->>PR: Enable auto-merge (squash)
  else no change
    Updater->>Repo: Log "No update needed"
  end
Loading

🎯 4 (Complex) | ⏱️ ~50 minutes


Important

Pre-merge checks failed

Please resolve all errors before merging. Addressing warnings is optional.

❌ Failed checks (1 error, 2 warnings)

Check name Status Explanation Resolution
Ote Binary Stdout Contract ❌ Error fmt.Printf writes version to stdout in ibm_version.go's PrintVersionAndExitIfRequested(), called from main.go's Cobra RunE handler. Violates OTE Binary Stdout Contract. Replace fmt.Printf in PrintVersionAndExitIfRequested() with fmt.Fprintf(os.Stderr,...) to redirect output to stderr instead of stdout.
Title check ⚠️ Warning The title 'Merge https://github.com/IBM-Cloud/cloud-provider-ibm:release-1.36 (a8839b0) into main' describes an automated merge operation rather than the actual technical changes, which include upgrading Kubernetes from v1.35.3 to v1.36.1, updating Go toolchain, dependencies, and CI/CD workflows. Replace the title with a concise summary of the primary changes, such as 'Upgrade Kubernetes to v1.36.1 and update dependencies' to better reflect the substantive changes in the pull request.
Docstring Coverage ⚠️ Warning Docstring coverage is 24.60% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (9 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Stable And Deterministic Test Names ✅ Passed No Ginkgo tests found. All 106 Go test functions use static, descriptive names following TestXxx pattern. One t.Run() call uses static test case names. No dynamic identifiers in any test names.
Test Structure And Quality ✅ Passed No Ginkgo test files (*_test.go) were modified in this PR. The check for test structure quality is not applicable.
Microshift Test Compatibility ✅ Passed PR does not add new Ginkgo e2e tests. It modifies version numbers, dependencies, and adds GitHub Actions workflows only. Check is not applicable.
Single Node Openshift (Sno) Test Compatibility ✅ Passed No new Ginkgo e2e tests are added in this PR. The PR is a version bump merge for Kubernetes v1.36.1 with configuration and workflow updates. All test files use standard Go testing package, not Ginkgo.
Topology-Aware Scheduling Compatibility ✅ Passed PR updates IBM CCM versions/dependencies. No deployment manifests, pod scheduling, or topology constraints introduced. Check not applicable.
Ipv6 And Disconnected Network Test Compatibility ✅ Passed No Ginkgo e2e tests added. New test files are standard Go unit tests. Custom check for IPv6/disconnected network is not applicable.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Comment @coderabbitai help to get the list of available commands and usage tips.

@openshift-ci openshift-ci Bot added the needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test. label Apr 20, 2026
@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Apr 20, 2026

Hi @cloud-team-rebase-bot[bot]. Thanks for your PR.

I'm waiting for a openshift member to verify that this patch is reasonable to test. If it is, they should reply with /ok-to-test on its own line. Until that is done, I will not automatically test new commits in this PR, but the usual testing commands by org members will still work.

Regular contributors should join the org to skip this step.

Once the patch is verified, the new status will be reflected by the ok-to-test label.

I understand the commands that are listed here.

Details

Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes-sigs/prow repository.

@openshift-ci
Copy link
Copy Markdown
Contributor

openshift-ci Bot commented Apr 20, 2026

[APPROVALNOTIFIER] This PR is NOT APPROVED

This pull-request has been approved by:
Once this PR has been reviewed and has the lgtm label, please assign mkumatag for approval. For more information see the Code Review Process.

The full list of commands accepted by this bot can be found here.

Details Needs approval from an approver in each of these files:

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 7

🧹 Nitpick comments (1)
.github/workflows/dispatch-pr-create.yml (1)

49-50: Consider removing redundant gh CLI installation.

The GitHub CLI (gh) is pre-installed on ubuntu-latest runners. This step adds unnecessary installation time.

♻️ Proposed fix
-      - name: Install GitHub CLI
-        run: sudo apt-get install gh
-
       - name: Get PR number for branch
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/dispatch-pr-create.yml around lines 49 - 50, Remove the
redundant step that installs the GitHub CLI: delete the job/step named "Install
GitHub CLI" that runs "sudo apt-get install gh" since the "gh" CLI is
preinstalled on ubuntu-latest; ensure no downstream steps depend on that step
name or its outputs and update any references to the step if necessary.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.github/workflows/dispatch-pr-create.yml:
- Around line 40-41: The workflow step name "Rnn go vet" contains a typo; update
the step's name string to "Run go vet" so the job reads correctly (locate the
step with name "Rnn go vet" in the dispatch-pr-create.yml workflow and change it
to "Run go vet").
- Around line 52-58: The step with id get-pr uses PR_NUMBER=$(gh pr list --head
"${{ github.event.client_payload.pr_branch }}" --json number --jq '.[0].number')
which can be empty; add validation immediately after that command to check if
PR_NUMBER is empty and handle it explicitly: if empty, print a clear error to
stderr (or to $GITHUB_OUTPUT) and exit with a non-zero status (or set a sentinel
output like pr_number=; export it) so downstream steps (the comment and
auto-merge steps) can be skipped via conditional checks; update the get-pr step
to include this check and ensure subsequent steps reference the pr_number output
and use if: ${{ steps.get-pr.outputs.pr_number != '' }} to avoid failing with
unclear errors.

In @.github/workflows/kube-update.yml:
- Around line 104-105: The PR branch name currently uses only
steps.new-k8s-ver.outputs.version which can collide across matrix bases; update
the branch: value to include the matrix branch as well (e.g. combine
matrix.branch and steps.new-k8s-ver.outputs.version) so each matrix base yields
a unique PR branch; apply the same change for the other occurrence where branch:
and base: are set alongside matrix.branch and steps.new-k8s-ver.outputs.version;
ensure the combined string uses the same YAML expression syntax (e.g. ${{
matrix.branch }}-${{ steps.new-k8s-ver.outputs.version }}) and optionally
sanitize slashes/characters if needed.
- Line 102: The PR body link points to the wrong repository; edit the string in
the kube-update.yml entry that reads "Check the PR results
[here](https://github.com/IBM-Cloud/cloud-provider-ibm/actions/workflows/dispatch-pr-create.yml)"
and replace the repository segment with "openshift/cloud-provider-powervs" so it
becomes the correct actions workflow URL for this repo; update the link target
text if necessary to preserve readability.
- Line 23: The workflow references a non-existent tag
actions/download-artifact@v8 which will break the run; update the download
action tag to a valid major version such as actions/download-artifact@v3 or
actions/download-artifact@v4 (keep actions/upload-artifact@v7 and
actions/checkout@v6 as-is) so the workflow uses an available release; locate the
download step that mentions actions/download-artifact@v8 and replace the tag
accordingly.
- Around line 31-34: The workflow-level continue-on-error: true is masking
failed updates; remove the continue-on-error key or set it to false so failures
are surfaced, relying on strategy.fail-fast: false and max-parallel: 1 to
preserve matrix behavior; update the YAML to delete or change the
continue-on-error entry so failed branch updates no longer appear successful.
- Around line 3-8: Add an explicit top-level permissions block to the workflow
enabling only the tokens required by the token-using steps: grant contents:
write and pull-requests: write for peter-evans/create-pull-request and
repository-dispatch: write for peter-evans/repository-dispatch; place this
permissions map at the top-level of the workflow (alongside the existing on:
block) so GITHUB_TOKEN has the minimal required rights for those actions.

---

Nitpick comments:
In @.github/workflows/dispatch-pr-create.yml:
- Around line 49-50: Remove the redundant step that installs the GitHub CLI:
delete the job/step named "Install GitHub CLI" that runs "sudo apt-get install
gh" since the "gh" CLI is preinstalled on ubuntu-latest; ensure no downstream
steps depend on that step name or its outputs and update any references to the
step if necessary.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Pro Plus

Run ID: 815f27c6-9185-44e3-a798-38941cfe8c19

📥 Commits

Reviewing files that changed from the base of the PR and between 855eaaa and 2e28f47.

⛔ Files ignored due to path filters (291)
  • go.sum is excluded by !**/*.sum
  • vendor/github.com/IBM/vpc-go-sdk/common/version.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/IBM/vpc-go-sdk/vpcv1/vpc_v1.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/btree/README.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/btree/btree_generic.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/compare.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/export.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/internal/diff/debug_disable.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/internal/diff/debug_enable.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/internal/diff/diff.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/internal/flags/flags.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/internal/function/func.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/internal/value/name.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/internal/value/pointer.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/internal/value/sort.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/options.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/path.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/report.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/report_compare.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/report_references.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/report_reflect.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/report_slices.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/report_text.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/report_value.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/client_metrics.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/client_options.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/constants.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/options.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/reporter.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/server_metrics.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/server_options.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/COPYRIGHT is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/callmeta.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/client.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/reporter.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/server.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/.gitignore is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/.travis.yml is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/CHANGELOG.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/README.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/client.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/client_metrics.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/client_reporter.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/makefile is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/metric_options.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server_metrics.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server_reporter.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/util.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/context/context.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/grpc/reflection/README.md is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/grpc/reflection/adapt.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/grpc/reflection/grpc_reflection_v1/reflection.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/google.golang.org/grpc/reflection/grpc_reflection_v1/reflection_grpc.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/google.golang.org/grpc/reflection/grpc_reflection_v1alpha/reflection.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/google.golang.org/grpc/reflection/grpc_reflection_v1alpha/reflection_grpc.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/google.golang.org/grpc/reflection/internal/internal.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/grpc/reflection/serverreflection.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/encoding/protodelim/protodelim.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/encoding/protojson/decode.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/encoding/protojson/well_known_types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/encoding/prototext/decode.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/internal/descfmt/stringer.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/internal/version/version.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admission/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admission/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admission/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admission/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admission/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1/generated.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1/register.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1/zz_generated.deepcopy.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/admissionregistration/v1/zz_generated.model_name.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/admissionregistration/v1/zz_generated.prerelease-lifecycle.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/admissionregistration/v1alpha1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1alpha1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1alpha1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1alpha1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1beta1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1beta1/zz_generated.prerelease-lifecycle.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/apidiscovery/v2/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apidiscovery/v2/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apidiscovery/v2/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apidiscovery/v2beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apidiscovery/v2beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apidiscovery/v2beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apiserverinternal/v1alpha1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apiserverinternal/v1alpha1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apiserverinternal/v1alpha1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apiserverinternal/v1alpha1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apps/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apps/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apps/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apps/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apps/v1beta2/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apps/v1beta2/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apps/v1beta2/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1alpha1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1alpha1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1alpha1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1alpha1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1beta1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authorization/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authorization/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authorization/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authorization/v1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authorization/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authorization/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authorization/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authorization/v1beta1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta1/generated.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta1/zz_generated.deepcopy.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/autoscaling/v2beta1/zz_generated.model_name.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/autoscaling/v2beta1/zz_generated.prerelease-lifecycle.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/autoscaling/v2beta2/generated.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta2/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta2/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta2/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta2/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta2/zz_generated.deepcopy.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/autoscaling/v2beta2/zz_generated.model_name.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/autoscaling/v2beta2/zz_generated.prerelease-lifecycle.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/batch/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/batch/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/batch/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/batch/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/batch/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/batch/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1alpha1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1beta1/generated.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1beta1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1beta1/zz_generated.deepcopy.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/certificates/v1beta1/zz_generated.prerelease-lifecycle.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/coordination/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/coordination/v1alpha2/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/coordination/v1alpha2/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/coordination/v1alpha2/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/coordination/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/coordination/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/coordination/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/core/v1/generated.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/core/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/core/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/core/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/core/v1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/core/v1/zz_generated.deepcopy.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/core/v1/zz_generated.model_name.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/discovery/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/discovery/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/discovery/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/discovery/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/discovery/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/discovery/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/extensions/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/extensions/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/extensions/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/extensions/v1beta1/zz_generated.validations.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/flowcontrol/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1beta2/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1beta2/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1beta2/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1beta3/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1beta3/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1beta3/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/imagepolicy/v1alpha1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/imagepolicy/v1alpha1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/imagepolicy/v1alpha1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/networking/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/networking/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/networking/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/networking/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/networking/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/networking/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/node/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/node/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/node/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/node/v1alpha1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/node/v1alpha1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/node/v1alpha1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/node/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/node/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/node/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/policy/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/policy/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/policy/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/policy/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/policy/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/policy/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/rbac/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/rbac/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/rbac/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/rbac/v1alpha1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/rbac/v1alpha1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/rbac/v1alpha1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/rbac/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/rbac/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/rbac/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1/generated.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1/zz_generated.deepcopy.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/resource/v1/zz_generated.model_name.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/resource/v1alpha3/generated.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1alpha3/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1alpha3/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1alpha3/register.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1alpha3/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1alpha3/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1alpha3/zz_generated.deepcopy.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/resource/v1alpha3/zz_generated.model_name.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/resource/v1alpha3/zz_generated.prerelease-lifecycle.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/resource/v1beta1/generated.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1beta1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1beta1/zz_generated.deepcopy.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/resource/v1beta1/zz_generated.model_name.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/resource/v1beta2/generated.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1beta2/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1beta2/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1beta2/register.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1beta2/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1beta2/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1beta2/zz_generated.deepcopy.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/resource/v1beta2/zz_generated.model_name.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/resource/v1beta2/zz_generated.prerelease-lifecycle.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/scheduling/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/scheduling/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/scheduling/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/scheduling/v1alpha1/generated.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/scheduling/v1alpha1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/scheduling/v1alpha1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/scheduling/v1alpha1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/scheduling/v1alpha1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/scheduling/v1alpha1/zz_generated.deepcopy.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/scheduling/v1alpha1/zz_generated.model_name.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/scheduling/v1alpha2/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/scheduling/v1alpha2/generated.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/scheduling/v1alpha2/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/scheduling/v1alpha2/register.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/scheduling/v1alpha2/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/scheduling/v1alpha2/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/scheduling/v1alpha2/zz_generated.deepcopy.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/scheduling/v1alpha2/zz_generated.model_name.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/scheduling/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/scheduling/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/scheduling/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/storage/v1/generated.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
📒 Files selected for processing (9)
  • .github/dependabot.yml
  • .github/workflows/dispatch-pr-create.yml
  • .github/workflows/golangci-update.yml
  • .github/workflows/kube-update.yml
  • Makefile
  • README.md
  • go.mod
  • ibm/ibm_version.go
  • main.go

Comment thread .github/workflows/dispatch-pr-create.yml
Comment on lines +52 to +58
- name: Get PR number for branch
id: get-pr
run: |
PR_NUMBER=$(gh pr list --head "${{ github.event.client_payload.pr_branch }}" --json number --jq '.[0].number')
echo "pr_number=${PR_NUMBER}" >> "$GITHUB_OUTPUT"
env:
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

Add error handling for empty PR number.

If gh pr list returns no results (e.g., due to timing or the PR not being created), PR_NUMBER will be empty, causing the subsequent comment and auto-merge steps to fail with unclear errors.

🛡️ Proposed fix to add validation
       - name: Get PR number for branch
         id: get-pr
         run: |
           PR_NUMBER=$(gh pr list --head "${{ github.event.client_payload.pr_branch }}" --json number --jq '.[0].number')
+          if [ -z "$PR_NUMBER" ]; then
+            echo "::error::No PR found for branch ${{ github.event.client_payload.pr_branch }}"
+            exit 1
+          fi
           echo "pr_number=${PR_NUMBER}" >> "$GITHUB_OUTPUT"
         env:
           GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/dispatch-pr-create.yml around lines 52 - 58, The step with
id get-pr uses PR_NUMBER=$(gh pr list --head "${{
github.event.client_payload.pr_branch }}" --json number --jq '.[0].number')
which can be empty; add validation immediately after that command to check if
PR_NUMBER is empty and handle it explicitly: if empty, print a clear error to
stderr (or to $GITHUB_OUTPUT) and exit with a non-zero status (or set a sentinel
output like pr_number=; export it) so downstream steps (the comment and
auto-merge steps) can be skipped via conditional checks; update the get-pr step
to include this check and ensure subsequent steps reference the pr_number output
and use if: ${{ steps.get-pr.outputs.pr_number != '' }} to avoid failing with
unclear errors.

Comment on lines +3 to +8
on:
schedule:
- cron: "0 10 * * *" # Run at 10:00 UTC daily
workflow_dispatch: # Allow manual triggering

jobs:
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🌐 Web query:

What are the minimum GITHUB_TOKEN permissions required for peter-evans/create-pull-request and peter-evans/repository-dispatch in GitHub Actions?

💡 Result:

For peter-evans/create-pull-request (latest v6+), the minimum GITHUB_TOKEN permissions required are: permissions: contents: write pull-requests: write This is explicitly stated in the action's README. Repositories created after February 2023 have read-only GITHUB_TOKEN by default, so these must be set in the job or workflow. If PRs modify workflows, add workflows: write. For peter-evans/repository-dispatch (latest v4), the minimum GITHUB_TOKEN permission required is: permissions: contents: write This works for dispatching to the same repository (default). The action's README and examples show this, and issues confirm contents: write resolves "resource not accessible" errors for same-repo dispatch. For remote repositories, a PAT with repo scope (or fine-grained contents: read & write + metadata: read) is required instead of GITHUB_TOKEN. Additionally, ensure repository Settings > Actions > General > Workflow permissions allows "Read and write permissions" and "Allow GitHub Actions to create and approve pull requests" for create-pull-request.

Citations:


🏁 Script executed:

cat -n .github/workflows/kube-update.yml

Repository: openshift/cloud-provider-powervs

Length of output: 5146


Declare explicit workflow permissions for token-dependent steps.

This workflow uses peter-evans/create-pull-request (line 94) and peter-evans/repository-dispatch (line 113), which require explicit permissions. Declaring minimal required permissions avoids failures when org/repo defaults are restrictive (repositories created after February 2023 have read-only GITHUB_TOKEN by default).

Suggested fix
 on:
   schedule:
     - cron: "0 10 * * *" # Run at 10:00 UTC daily
   workflow_dispatch: # Allow manual triggering

+permissions:
+  contents: write
+  pull-requests: write
+
 jobs:
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
on:
schedule:
- cron: "0 10 * * *" # Run at 10:00 UTC daily
workflow_dispatch: # Allow manual triggering
jobs:
on:
schedule:
- cron: "0 10 * * *" # Run at 10:00 UTC daily
workflow_dispatch: # Allow manual triggering
permissions:
contents: write
pull-requests: write
jobs:
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/kube-update.yml around lines 3 - 8, Add an explicit
top-level permissions block to the workflow enabling only the tokens required by
the token-using steps: grant contents: write and pull-requests: write for
peter-evans/create-pull-request and repository-dispatch: write for
peter-evans/repository-dispatch; place this permissions map at the top-level of
the workflow (alongside the existing on: block) so GITHUB_TOKEN has the minimal
required rights for those actions.

run: curl -L --fail --retry 10 --retry-all-errors --retry-delay 60 --retry-max-time 3600 -o shared-files/kube-tags.txt https://api.github.com/repos/kubernetes/kubernetes/tags

- name: Upload both files as one artifact
uses: actions/upload-artifact@v7
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
set -euo pipefail

check_ref() {
  local repo="$1"
  local tag="$2"
  local code
  code=$(curl -s -o /dev/null -w "%{http_code}" "https://api.github.com/repos/${repo}/git/ref/tags/${tag}")
  echo "${repo}@${tag} -> HTTP ${code} (200 means tag exists)"
}

check_ref actions/upload-artifact v7
check_ref actions/checkout v6
check_ref actions/download-artifact v8

Repository: openshift/cloud-provider-powervs

Length of output: 256


actions/download-artifact@v8 tag does not exist and will break the workflow.

Line 56 uses actions/download-artifact@v8, but this version tag is unavailable (HTTP 403). Change to an existing major version (e.g., v3, v4). Lines 23 and 51 (actions/upload-artifact@v7 and actions/checkout@v6) are valid.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/kube-update.yml at line 23, The workflow references a
non-existent tag actions/download-artifact@v8 which will break the run; update
the download action tag to a valid major version such as
actions/download-artifact@v3 or actions/download-artifact@v4 (keep
actions/upload-artifact@v7 and actions/checkout@v6 as-is) so the workflow uses
an available release; locate the download step that mentions
actions/download-artifact@v8 and replace the tag accordingly.

Comment on lines +31 to +34
continue-on-error: true
strategy:
fail-fast: false
max-parallel: 1
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Job-level continue-on-error hides failed updates.

With Line 31 set to true, scheduled runs can appear successful even when one or more branches fail. fail-fast: false already preserves matrix continuity without masking failures.

Suggested fix
-    continue-on-error: true
     strategy:
       fail-fast: false
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
continue-on-error: true
strategy:
fail-fast: false
max-parallel: 1
strategy:
fail-fast: false
max-parallel: 1
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/kube-update.yml around lines 31 - 34, The workflow-level
continue-on-error: true is masking failed updates; remove the continue-on-error
key or set it to false so failures are surfaced, relying on strategy.fail-fast:
false and max-parallel: 1 to preserve matrix behavior; update the YAML to delete
or change the continue-on-error entry so failed branch updates no longer appear
successful.


✅ Tests completed successfully

Check the PR results [here](https://github.com/IBM-Cloud/cloud-provider-ibm/actions/workflows/dispatch-pr-create.yml)
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

PR body points to the wrong repository workflow URL.

Line 102 links to IBM-Cloud/cloud-provider-ibm, but this workflow is in openshift/cloud-provider-powervs. That sends reviewers to the wrong checks page.

Suggested fix
-            Check the PR results [here](https://github.com/IBM-Cloud/cloud-provider-ibm/actions/workflows/dispatch-pr-create.yml)
+            Check the PR results [here](https://github.com/${{ github.repository }}/actions/workflows/dispatch-pr-create.yml)
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Check the PR results [here](https://github.com/IBM-Cloud/cloud-provider-ibm/actions/workflows/dispatch-pr-create.yml)
Check the PR results [here](https://github.com/${{ github.repository }}/actions/workflows/dispatch-pr-create.yml)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/kube-update.yml at line 102, The PR body link points to
the wrong repository; edit the string in the kube-update.yml entry that reads
"Check the PR results
[here](https://github.com/IBM-Cloud/cloud-provider-ibm/actions/workflows/dispatch-pr-create.yml)"
and replace the repository segment with "openshift/cloud-provider-powervs" so it
becomes the correct actions workflow URL for this repo; update the link target
text if necessary to preserve readability.

Comment on lines +104 to +105
branch: ${{ steps.new-k8s-ver.outputs.version }}
base: ${{ matrix.branch }}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Use a unique PR branch per matrix base branch.

Line 104 uses only the Kubernetes version as branch name. If multiple release branches bump to the same TAG, branch names collide and PR creation/updating becomes ambiguous.

Suggested fix
-          branch: ${{ steps.new-k8s-ver.outputs.version }}
+          branch: kube-update/${{ matrix.branch }}-${{ steps.new-k8s-ver.outputs.version }}
...
-              "pr_branch": "${{ steps.new-k8s-ver.outputs.version }}",
+              "pr_branch": "kube-update/${{ matrix.branch }}-${{ steps.new-k8s-ver.outputs.version }}",

Also applies to: 119-120

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/kube-update.yml around lines 104 - 105, The PR branch name
currently uses only steps.new-k8s-ver.outputs.version which can collide across
matrix bases; update the branch: value to include the matrix branch as well
(e.g. combine matrix.branch and steps.new-k8s-ver.outputs.version) so each
matrix base yields a unique PR branch; apply the same change for the other
occurrence where branch: and base: are set alongside matrix.branch and
steps.new-k8s-ver.outputs.version; ensure the combined string uses the same YAML
expression syntax (e.g. ${{ matrix.branch }}-${{
steps.new-k8s-ver.outputs.version }}) and optionally sanitize slashes/characters
if needed.

@cloud-team-rebase-bot cloud-team-rebase-bot Bot changed the title Merge https://github.com/IBM-Cloud/cloud-provider-ibm:release-1.26 (196c7e3) into main Merge https://github.com/IBM-Cloud/cloud-provider-ibm:release-1.36 (943d8f6) into main May 4, 2026
@cloud-team-bot cloud-team-bot Bot force-pushed the rebase-bot-main branch from fe35749 to c2af6ad Compare May 4, 2026 12:21
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

♻️ Duplicate comments (8)
.github/workflows/golangci-update.yml (2)

79-79: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix PR body link to this repository.

Line 79 hardcodes IBM-Cloud/cloud-provider-ibm, which sends reviewers to the wrong workflow page for this repo.

Suggested fix
-            Check the PR results [here](https://github.com/IBM-Cloud/cloud-provider-ibm/actions/workflows/dispatch-pr-create.yml)
+            Check the PR results [here](https://github.com/${{ github.repository }}/actions/workflows/dispatch-pr-create.yml)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/golangci-update.yml at line 79, The PR body link is
hardcoded to "IBM-Cloud/cloud-provider-ibm" and must point to the current
repository; update the link text in the golangci-update workflow (the line
containing "Check the PR results
[here](https://github.com/IBM-Cloud/cloud-provider-ibm/actions/workflows/dispatch-pr-create.yml)")
to reference the current repo dynamically (e.g., use the repository context or a
variable such as github.repository or GITHUB_REPOSITORY) or replace the
hardcoded owner/repo with the correct repository name so the link directs
reviewers to this repo's dispatch-pr-create workflow.

3-10: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Add explicit workflow permissions for PR creation/dispatch.

At Line 8, no top-level permissions are defined, but Lines 71 and 90 rely on write-capable tokens. This is fragile under read-only default GITHUB_TOKEN settings.

Suggested fix
 on:
   schedule:
     - cron: "0 11 * * *" # Run at 11:00 UTC daily
   workflow_dispatch: # Allow manual triggering
 
+permissions:
+  contents: write
+  pull-requests: write
+
 jobs:
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/golangci-update.yml around lines 3 - 10, The workflow
"golangci-update" currently lacks top-level permissions but later steps require
write-capable tokens; add an explicit top-level permissions block (e.g.,
permissions: contents: write, issues: write, pull-requests: write, workflows:
write as needed) to grant the GITHUB_TOKEN the required scopes for PR creation
and dispatch and ensure these permissions appear before the jobs definition so
steps that call the REST/Dispatch APIs have the needed write access.
.github/workflows/kube-update.yml (4)

31-31: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Don’t mask matrix failures with continue-on-error: true.

Line 31 causes branch update failures to look successful. strategy.fail-fast: false (Line 33) already preserves matrix progression without hiding failures.

Suggested fix
-    continue-on-error: true
     strategy:
       fail-fast: false
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/kube-update.yml at line 31, Remove the continue-on-error:
true setting so matrix job failures are not masked; instead rely on
strategy.fail-fast: false to allow other matrix entries to run while still
surfacing failures. Locate the continue-on-error property in the workflow job
definition (the key "continue-on-error" present near the matrix/strategy block)
and delete it or set it to false so branch update failures are reported
correctly.

104-105: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Use a branch name that includes the matrix base branch.

Line 104 and Line 119 only use the Kubernetes version, so concurrent matrix runs can collide on the same PR branch name.

Suggested fix
-          branch: ${{ steps.new-k8s-ver.outputs.version }}
+          branch: kube-update/${{ matrix.branch }}-${{ steps.new-k8s-ver.outputs.version }}
...
-              "pr_branch": "${{ steps.new-k8s-ver.outputs.version }}",
+              "pr_branch": "kube-update/${{ matrix.branch }}-${{ steps.new-k8s-ver.outputs.version }}",

Also applies to: 119-120

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/kube-update.yml around lines 104 - 105, The branch name
currently uses only steps.new-k8s-ver.outputs.version which can collide across
matrix runs; change the branch assignment to include the matrix base branch
(matrix.branch) so the PR branch is unique per matrix entry (e.g., combine
matrix.branch and steps.new-k8s-ver.outputs.version into the branch value).
Update both occurrences that set branch to steps.new-k8s-ver.outputs.version
(and the similar use at the second location) to construct a composite name that
includes matrix.branch and the version output.

102-102: ⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix PR body link to the current repository.

Line 102 points reviewers to IBM-Cloud/cloud-provider-ibm, which is not this repository. Use ${{ github.repository }} to avoid stale/wrong links.

Suggested fix
-            Check the PR results [here](https://github.com/IBM-Cloud/cloud-provider-ibm/actions/workflows/dispatch-pr-create.yml)
+            Check the PR results [here](https://github.com/${{ github.repository }}/actions/workflows/dispatch-pr-create.yml)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/kube-update.yml at line 102, Replace the hard-coded PR
results link that points to "IBM-Cloud/cloud-provider-ibm" with a dynamic
repository reference using ${{ github.repository }} so the URL always targets
the current repo (e.g., update the string
"https://github.com/IBM-Cloud/cloud-provider-ibm/actions/workflows/dispatch-pr-create.yml"
to use ${{ github.repository }}); locate and modify the literal URL in the
kube-update.yml workflow (the PR results link text) so reviewers are directed to
the current repository's workflow run.

3-8: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Add explicit workflow permissions for token-based actions.

At Line 8, the workflow starts jobs without a top-level permissions block, but Lines 94 and 113 use token-dependent actions that commonly require write scopes. This can fail on repos/orgs with read-only default GITHUB_TOKEN.

Suggested fix
 on:
   schedule:
     - cron: "0 10 * * *" # Run at 10:00 UTC daily
   workflow_dispatch: # Allow manual triggering
 
+permissions:
+  contents: write
+  pull-requests: write
+
 jobs:
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/kube-update.yml around lines 3 - 8, Add a top-level
permissions block to explicitly grant the GITHUB_TOKEN the scopes required by
the token-dependent actions used later in the workflow (the actions that perform
write operations with GITHUB_TOKEN). Insert a permissions section directly under
the on: block and include at minimum the necessary write scopes (for example:
contents: write and id-token: write, plus actions: write/packages: write or
others needed by those specific actions); keep the permissions minimal and
enumerate any extra scopes required by those token-using steps so the workflow
will succeed even on repos/orgs with a read-only default GITHUB_TOKEN.
.github/workflows/dispatch-pr-create.yml (2)

5-11: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Declare explicit token permissions for PR comment/automerge steps.

At Line 9, jobs start without explicit permissions while later steps write PR comments and enable auto-merge. On read-only default tokens this fails intermittently across repos/orgs.

Suggested fix
 on:
   repository_dispatch:
     types: [pull-request-created]
 
+permissions:
+  contents: read
+  pull-requests: write
+  issues: write
+
 jobs:
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/dispatch-pr-create.yml around lines 5 - 11, The workflow
lacks explicit token permissions which breaks later steps that comment on PRs
and enable auto-merge; add a permissions stanza to the job named
dispatch-pr-create (or at workflow root) granting the minimum write rights
needed, e.g. set permissions: pull-requests: write and contents: read (or
contents: write if your steps modify repo files), so the steps that post PR
comments and enable auto-merge succeed reliably when triggered by
repository_dispatch.

55-57: ⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Guard against empty PR lookup before comment/automerge steps.

Line 55 can return no matches; then Lines 64 and 72 consume an empty PR number and fail with low-signal errors.

Suggested fix
       - name: Get PR number for branch
         id: get-pr
         run: |
           PR_NUMBER=$(gh pr list --head "${{ github.event.client_payload.pr_branch }}" --json number --jq '.[0].number')
+          if [ -z "$PR_NUMBER" ] || [ "$PR_NUMBER" = "null" ]; then
+            echo "::error::No PR found for branch ${{ github.event.client_payload.pr_branch }}"
+            echo "pr_number=" >> "$GITHUB_OUTPUT"
+            exit 1
+          fi
           echo "pr_number=${PR_NUMBER}" >> "$GITHUB_OUTPUT"
         env:
           GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
 
       - name: Comment on PR
+        if: ${{ steps.get-pr.outputs.pr_number != '' }}
         uses: peter-evans/create-or-update-comment@v5
         with:
           token: ${{ secrets.GITHUB_TOKEN }}
           issue-number: ${{ steps.get-pr.outputs.pr_number }}
           body: |
             ✅ Tests completed successfully
 
       - name: Enable auto-merge
+        if: ${{ steps.get-pr.outputs.pr_number != '' }}
         uses: peter-evans/enable-pull-request-automerge@v3

Also applies to: 60-73

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.github/workflows/dispatch-pr-create.yml around lines 55 - 57, The gh lookup
can return empty PR_NUMBER; add a guard immediately after PR_NUMBER is set:
check if the variable is empty and either fail early with a clear error log or
set a sentinel output and exit successfully to skip downstream actions; then
update the steps that consume PR_NUMBER (the steps referencing pr_number/output
and the comment/automerge steps) to run only when the pr_number output is
non-empty (use an if: condition checking the lookup step output not equal to ''
or the sentinel). Ensure you reference the PR_NUMBER variable (from the gh pr
list command) and the consuming steps' use of that output so callers do not run
when PR_NUMBER is empty.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Duplicate comments:
In @.github/workflows/dispatch-pr-create.yml:
- Around line 5-11: The workflow lacks explicit token permissions which breaks
later steps that comment on PRs and enable auto-merge; add a permissions stanza
to the job named dispatch-pr-create (or at workflow root) granting the minimum
write rights needed, e.g. set permissions: pull-requests: write and contents:
read (or contents: write if your steps modify repo files), so the steps that
post PR comments and enable auto-merge succeed reliably when triggered by
repository_dispatch.
- Around line 55-57: The gh lookup can return empty PR_NUMBER; add a guard
immediately after PR_NUMBER is set: check if the variable is empty and either
fail early with a clear error log or set a sentinel output and exit successfully
to skip downstream actions; then update the steps that consume PR_NUMBER (the
steps referencing pr_number/output and the comment/automerge steps) to run only
when the pr_number output is non-empty (use an if: condition checking the lookup
step output not equal to '' or the sentinel). Ensure you reference the PR_NUMBER
variable (from the gh pr list command) and the consuming steps' use of that
output so callers do not run when PR_NUMBER is empty.

In @.github/workflows/golangci-update.yml:
- Line 79: The PR body link is hardcoded to "IBM-Cloud/cloud-provider-ibm" and
must point to the current repository; update the link text in the
golangci-update workflow (the line containing "Check the PR results
[here](https://github.com/IBM-Cloud/cloud-provider-ibm/actions/workflows/dispatch-pr-create.yml)")
to reference the current repo dynamically (e.g., use the repository context or a
variable such as github.repository or GITHUB_REPOSITORY) or replace the
hardcoded owner/repo with the correct repository name so the link directs
reviewers to this repo's dispatch-pr-create workflow.
- Around line 3-10: The workflow "golangci-update" currently lacks top-level
permissions but later steps require write-capable tokens; add an explicit
top-level permissions block (e.g., permissions: contents: write, issues: write,
pull-requests: write, workflows: write as needed) to grant the GITHUB_TOKEN the
required scopes for PR creation and dispatch and ensure these permissions appear
before the jobs definition so steps that call the REST/Dispatch APIs have the
needed write access.

In @.github/workflows/kube-update.yml:
- Line 31: Remove the continue-on-error: true setting so matrix job failures are
not masked; instead rely on strategy.fail-fast: false to allow other matrix
entries to run while still surfacing failures. Locate the continue-on-error
property in the workflow job definition (the key "continue-on-error" present
near the matrix/strategy block) and delete it or set it to false so branch
update failures are reported correctly.
- Around line 104-105: The branch name currently uses only
steps.new-k8s-ver.outputs.version which can collide across matrix runs; change
the branch assignment to include the matrix base branch (matrix.branch) so the
PR branch is unique per matrix entry (e.g., combine matrix.branch and
steps.new-k8s-ver.outputs.version into the branch value). Update both
occurrences that set branch to steps.new-k8s-ver.outputs.version (and the
similar use at the second location) to construct a composite name that includes
matrix.branch and the version output.
- Line 102: Replace the hard-coded PR results link that points to
"IBM-Cloud/cloud-provider-ibm" with a dynamic repository reference using ${{
github.repository }} so the URL always targets the current repo (e.g., update
the string
"https://github.com/IBM-Cloud/cloud-provider-ibm/actions/workflows/dispatch-pr-create.yml"
to use ${{ github.repository }}); locate and modify the literal URL in the
kube-update.yml workflow (the PR results link text) so reviewers are directed to
the current repository's workflow run.
- Around line 3-8: Add a top-level permissions block to explicitly grant the
GITHUB_TOKEN the scopes required by the token-dependent actions used later in
the workflow (the actions that perform write operations with GITHUB_TOKEN).
Insert a permissions section directly under the on: block and include at minimum
the necessary write scopes (for example: contents: write and id-token: write,
plus actions: write/packages: write or others needed by those specific actions);
keep the permissions minimal and enumerate any extra scopes required by those
token-using steps so the workflow will succeed even on repos/orgs with a
read-only default GITHUB_TOKEN.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: f9a615ab-1f3e-4713-b95b-4f37661932bf

📥 Commits

Reviewing files that changed from the base of the PR and between fe35749 and c2af6ad.

⛔ Files ignored due to path filters (291)
  • go.sum is excluded by !**/*.sum
  • vendor/github.com/IBM/platform-services-go-sdk/common/version.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/IBM/vpc-go-sdk/common/version.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/IBM/vpc-go-sdk/vpcv1/vpc_v1.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/.cirrus.yml is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/CHANGELOG.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/CONTRIBUTING.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/README.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/backend_fen.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/backend_inotify.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/backend_kqueue.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/backend_windows.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/fsnotify.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/internal/darwin.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/internal/debug_darwin.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/internal/debug_dragonfly.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/internal/debug_freebsd.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/internal/debug_kqueue.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/internal/debug_netbsd.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/internal/debug_openbsd.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/internal/freebsd.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/internal/unix.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/internal/unix2.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/internal/windows.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/strfmt/.gitignore is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/strfmt/CONTRIBUTORS.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/strfmt/README.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/strfmt/duration.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/strfmt/go.work is excluded by !**/*.work, !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/strfmt/go.work.sum is excluded by !**/*.sum, !**/vendor/**, !vendor/**
  • vendor/github.com/google/btree/README.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/btree/btree_generic.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/compare.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/export.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/internal/diff/debug_disable.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/internal/diff/debug_enable.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/internal/diff/diff.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/internal/flags/flags.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/internal/function/func.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/internal/value/name.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/internal/value/pointer.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/internal/value/sort.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/options.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/path.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/report.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/report_compare.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/report_references.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/report_reflect.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/report_slices.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/report_text.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/report_value.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/client_metrics.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/client_options.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/constants.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/options.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/reporter.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/server_metrics.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/server_options.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/COPYRIGHT is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/callmeta.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/client.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/reporter.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/server.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/.gitignore is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/.travis.yml is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/CHANGELOG.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/README.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/client.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/client_metrics.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/client_reporter.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/makefile is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/metric_options.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server_metrics.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server_reporter.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/util.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/context/context.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/hpack/tables.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/http2.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/server.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/transport.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/writesched.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/writesched_random.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/sync/singleflight/singleflight.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/sys/cpu/cpu_darwin_arm64_other.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/sys/cpu/cpu_other_arm64.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/sys/cpu/cpu_windows_arm64.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/sys/windows/dll_windows.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/sys/windows/security_windows.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/grpc/reflection/README.md is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/grpc/reflection/adapt.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/grpc/reflection/grpc_reflection_v1/reflection.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/google.golang.org/grpc/reflection/grpc_reflection_v1/reflection_grpc.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/google.golang.org/grpc/reflection/grpc_reflection_v1alpha/reflection.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/google.golang.org/grpc/reflection/grpc_reflection_v1alpha/reflection_grpc.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/google.golang.org/grpc/reflection/internal/internal.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/grpc/reflection/serverreflection.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/encoding/protodelim/protodelim.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/encoding/protojson/decode.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/encoding/protojson/well_known_types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/encoding/prototext/decode.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/internal/descfmt/stringer.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/internal/version/version.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admission/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admission/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admission/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admission/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admission/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1/generated.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1/register.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1/zz_generated.deepcopy.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/admissionregistration/v1/zz_generated.model_name.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/admissionregistration/v1/zz_generated.prerelease-lifecycle.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/admissionregistration/v1alpha1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1alpha1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1alpha1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1alpha1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1beta1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1beta1/zz_generated.prerelease-lifecycle.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/apidiscovery/v2/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apidiscovery/v2/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apidiscovery/v2/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apidiscovery/v2beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apidiscovery/v2beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apidiscovery/v2beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apiserverinternal/v1alpha1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apiserverinternal/v1alpha1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apiserverinternal/v1alpha1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apiserverinternal/v1alpha1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apps/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apps/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apps/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apps/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apps/v1beta2/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apps/v1beta2/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apps/v1beta2/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1alpha1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1alpha1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1alpha1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1alpha1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1beta1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authorization/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authorization/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authorization/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authorization/v1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authorization/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authorization/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authorization/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authorization/v1beta1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta1/generated.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta1/zz_generated.deepcopy.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/autoscaling/v2beta1/zz_generated.model_name.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/autoscaling/v2beta1/zz_generated.prerelease-lifecycle.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/autoscaling/v2beta2/generated.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta2/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta2/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta2/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta2/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta2/zz_generated.deepcopy.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/autoscaling/v2beta2/zz_generated.model_name.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/autoscaling/v2beta2/zz_generated.prerelease-lifecycle.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/batch/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/batch/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/batch/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/batch/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/batch/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/batch/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1alpha1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1beta1/generated.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1beta1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1beta1/zz_generated.deepcopy.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/certificates/v1beta1/zz_generated.prerelease-lifecycle.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/coordination/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/coordination/v1alpha2/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/coordination/v1alpha2/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/coordination/v1alpha2/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/coordination/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/coordination/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/coordination/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/core/v1/generated.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/core/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/core/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/core/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/core/v1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/core/v1/zz_generated.deepcopy.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/core/v1/zz_generated.model_name.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/discovery/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/discovery/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/discovery/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/discovery/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/discovery/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/discovery/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/extensions/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/extensions/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/extensions/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/extensions/v1beta1/zz_generated.validations.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/flowcontrol/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1beta2/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1beta2/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1beta2/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1beta3/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1beta3/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1beta3/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/imagepolicy/v1alpha1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/imagepolicy/v1alpha1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/imagepolicy/v1alpha1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/networking/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/networking/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/networking/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/networking/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/networking/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/networking/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/node/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/node/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/node/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/node/v1alpha1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/node/v1alpha1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/node/v1alpha1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/node/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/node/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/node/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/policy/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/policy/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/policy/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/policy/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/policy/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/policy/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/rbac/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/rbac/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/rbac/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/rbac/v1alpha1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/rbac/v1alpha1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/rbac/v1alpha1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/rbac/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/rbac/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/rbac/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1/generated.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1/zz_generated.deepcopy.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/resource/v1/zz_generated.model_name.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/resource/v1alpha3/generated.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1alpha3/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1alpha3/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1alpha3/register.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1alpha3/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1alpha3/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1alpha3/zz_generated.deepcopy.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
📒 Files selected for processing (9)
  • .github/dependabot.yml
  • .github/workflows/dispatch-pr-create.yml
  • .github/workflows/golangci-update.yml
  • .github/workflows/kube-update.yml
  • Makefile
  • README.md
  • go.mod
  • ibm/ibm_version.go
  • main.go
✅ Files skipped from review due to trivial changes (4)
  • ibm/ibm_version.go
  • README.md
  • main.go
  • Makefile

dependabot Bot and others added 2 commits May 4, 2026 08:49
Bumps [github.com/fsnotify/fsnotify](https://github.com/fsnotify/fsnotify) from 1.10.0 to 1.10.1.
- [Release notes](https://github.com/fsnotify/fsnotify/releases)
- [Changelog](https://github.com/fsnotify/fsnotify/blob/main/CHANGELOG.md)
- [Commits](fsnotify/fsnotify@v1.10.0...v1.10.1)

---
updated-dependencies:
- dependency-name: github.com/fsnotify/fsnotify
  dependency-version: 1.10.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
@cloud-team-rebase-bot cloud-team-rebase-bot Bot changed the title Merge https://github.com/IBM-Cloud/cloud-provider-ibm:release-1.36 (943d8f6) into main Merge https://github.com/IBM-Cloud/cloud-provider-ibm:release-1.36 (e91b23b) into main May 7, 2026
@cloud-team-bot cloud-team-bot Bot force-pushed the rebase-bot-main branch from c2af6ad to 6402114 Compare May 7, 2026 12:16
dependabot Bot and others added 20 commits May 13, 2026 10:25
Bumps the kubernetes-1-36 group with 6 updates:

| Package | From | To |
| --- | --- | --- |
| [k8s.io/api](https://github.com/kubernetes/api) | `0.36.0` | `0.36.1` |
| [k8s.io/apimachinery](https://github.com/kubernetes/apimachinery) | `0.36.0` | `0.36.1` |
| [k8s.io/client-go](https://github.com/kubernetes/client-go) | `0.36.0` | `0.36.1` |
| [k8s.io/cloud-provider](https://github.com/kubernetes/cloud-provider) | `0.36.0` | `0.36.1` |
| [k8s.io/component-base](https://github.com/kubernetes/component-base) | `0.36.0` | `0.36.1` |
| [k8s.io/component-helpers](https://github.com/kubernetes/component-helpers) | `0.36.0` | `0.36.1` |


Updates `k8s.io/api` from 0.36.0 to 0.36.1
- [Commits](kubernetes/api@v0.36.0...v0.36.1)

Updates `k8s.io/apimachinery` from 0.36.0 to 0.36.1
- [Commits](kubernetes/apimachinery@v0.36.0...v0.36.1)

Updates `k8s.io/client-go` from 0.36.0 to 0.36.1
- [Changelog](https://github.com/kubernetes/client-go/blob/master/CHANGELOG.md)
- [Commits](kubernetes/client-go@v0.36.0...v0.36.1)

Updates `k8s.io/cloud-provider` from 0.36.0 to 0.36.1
- [Commits](kubernetes/cloud-provider@v0.36.0...v0.36.1)

Updates `k8s.io/component-base` from 0.36.0 to 0.36.1
- [Commits](kubernetes/component-base@v0.36.0...v0.36.1)

Updates `k8s.io/component-helpers` from 0.36.0 to 0.36.1
- [Commits](kubernetes/component-helpers@v0.36.0...v0.36.1)

---
updated-dependencies:
- dependency-name: k8s.io/api
  dependency-version: 0.36.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes-1-36
- dependency-name: k8s.io/apimachinery
  dependency-version: 0.36.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes-1-36
- dependency-name: k8s.io/client-go
  dependency-version: 0.36.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes-1-36
- dependency-name: k8s.io/cloud-provider
  dependency-version: 0.36.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes-1-36
- dependency-name: k8s.io/component-base
  dependency-version: 0.36.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes-1-36
- dependency-name: k8s.io/component-helpers
  dependency-version: 0.36.1
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: kubernetes-1-36
...

Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
* Fetch internal IPs of vms from dhcp server

* Remove unnesesarry field from config
Signed-off-by: Prajyot Parab <Prajyot.Parab2@ibm.com>

# Conflicts:
#	vendor/golang.org/x/crypto/internal/poly1305/sum_amd64.go
#	vendor/golang.org/x/crypto/poly1305/sum_amd64.go
#	vendor/golang.org/x/crypto/poly1305/sum_asm.go
#	vendor/golang.org/x/crypto/poly1305/sum_loong64.s
#	vendor/golang.org/x/crypto/poly1305/sum_ppc64le.go
#	vendor/golang.org/x/net/context/go17.go
#	vendor/golang.org/x/net/context/go19.go
#	vendor/golang.org/x/net/context/pre_go17.go
#	vendor/golang.org/x/net/context/pre_go19.go
#	vendor/golang.org/x/net/html/atom/table.go
#	vendor/golang.org/x/net/html/parse.go
#	vendor/golang.org/x/net/html/token.go
#	vendor/golang.org/x/sys/cpu/cpu_loong64.go
#	vendor/golang.org/x/sys/cpu/parse.go
#	vendor/golang.org/x/sys/unix/zerrors_linux_loong64.go
#	vendor/golang.org/x/sys/unix/zsysnum_linux_loong64.go
#	vendor/golang.org/x/sys/windows/registry/key.go
#	vendor/golang.org/x/sys/windows/registry/value.go
#	vendor/golang.org/x/text/internal/number/format.go
#	vendor/golang.org/x/text/language/parse.go
@cloud-team-rebase-bot cloud-team-rebase-bot Bot changed the title Merge https://github.com/IBM-Cloud/cloud-provider-ibm:release-1.36 (e91b23b) into main Merge https://github.com/IBM-Cloud/cloud-provider-ibm:release-1.36 (a8839b0) into main May 14, 2026
Copy link
Copy Markdown

@coderabbitai coderabbitai Bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 4

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.github/workflows/golangci-update.yml:
- Around line 69-86: The PR body in the "Create pull request" step contains a
hardcoded link to IBM-Cloud/cloud-provider-ibm; update the body string under the
with: body field for the peter-evans/create-pull-request action to build the
correct repo URL dynamically (use the GitHub Actions context variables such as
${{ github.server_url }}/${{ github.repository
}}/actions/workflows/dispatch-pr-create.yml or ${{ github.server_url } }/${{
github.repository }} as appropriate) so the "Check the PR results" link points
to the current repository instead of the hardcoded IBM-Cloud repo.
- Around line 41-49: The curl call that sets latest_tag in the "Get latest
golangci-lint release" step lacks fail-on-error handling, so network/HTTP errors
or rate limits can produce empty or invalid output; update the run block that
defines latest_tag to call curl with the --fail (or -f) flag and/or
retry/backoff and validate that the result is non-empty and not "null" (check
the latest_tag variable) before using it, and on failure log a clear error and
fall back to steps.current.outputs.version (echoing the chosen version to
GITHUB_OUTPUT as before).
- Around line 36-39: The current extraction of GOLANGCI_LINT_VERSION in the
GitHub Actions step (id: current) is unguarded and can emit an empty/malformed
"version=v" string; modify the run block that greps the Makefile for
GOLANGCI_LINT_VERSION to check the grep/awk pipeline exit status and validate
the extracted value (e.g., non-empty and matches a semver-like pattern) before
echoing to GITHUB_OUTPUT, and if validation fails, fail the step with an
explicit error message indicating the Makefile parse/variable issue so
downstream steps don’t receive an invalid version.
- Around line 56-67: The sed line in the commit-change step blindly strips the
first character from CURRENT and LATEST using ${CURRENT:1}/${LATEST:1}, which
corrupts versions if they don't start with 'v'; update the run script in the
commit-change step (the block that includes the sed command and commit_msg) to
validate and normalize the variables first (e.g., if a variable starts with 'v'
strip it, otherwise leave it intact), assign normalized values (e.g., curr and
latest) and use those in the sed invocation and commit message so the Makefile
update and commit_msg use correct versions; ensure you reference the existing
CURRENT and LATEST env variables and replace the direct ${CURRENT:1}/${LATEST:1}
usage with the validated normalized variables.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Repository: openshift/coderabbit/.coderabbit.yaml

Review profile: CHILL

Plan: Enterprise

Run ID: 36e843df-876a-49f3-b721-b457164b170b

📥 Commits

Reviewing files that changed from the base of the PR and between 6402114 and f14d681.

⛔ Files ignored due to path filters (291)
  • go.sum is excluded by !**/*.sum
  • vendor/github.com/IBM/platform-services-go-sdk/common/version.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/IBM/vpc-go-sdk/common/version.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/IBM/vpc-go-sdk/vpcv1/vpc_v1.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/.cirrus.yml is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/CHANGELOG.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/CONTRIBUTING.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/README.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/backend_fen.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/backend_inotify.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/backend_kqueue.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/backend_windows.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/fsnotify.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/internal/darwin.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/internal/debug_darwin.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/internal/debug_dragonfly.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/internal/debug_freebsd.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/internal/debug_kqueue.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/internal/debug_netbsd.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/internal/debug_openbsd.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/internal/freebsd.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/internal/unix.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/internal/unix2.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/fsnotify/fsnotify/internal/windows.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/strfmt/.gitignore is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/strfmt/CONTRIBUTORS.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/strfmt/README.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/strfmt/duration.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/strfmt/go.work is excluded by !**/*.work, !**/vendor/**, !vendor/**
  • vendor/github.com/go-openapi/strfmt/go.work.sum is excluded by !**/*.sum, !**/vendor/**, !vendor/**
  • vendor/github.com/google/btree/README.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/btree/btree_generic.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/compare.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/export.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/internal/diff/debug_disable.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/internal/diff/debug_enable.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/internal/diff/diff.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/internal/flags/flags.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/internal/function/func.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/internal/value/name.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/internal/value/pointer.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/internal/value/sort.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/options.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/path.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/report.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/report_compare.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/report_references.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/report_reflect.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/report_slices.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/report_text.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/google/go-cmp/cmp/report_value.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/client_metrics.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/client_options.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/constants.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/options.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/reporter.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/server_metrics.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/providers/prometheus/server_options.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/COPYRIGHT is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/LICENSE is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/callmeta.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/client.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/doc.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/reporter.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-middleware/v2/interceptors/server.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/.gitignore is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/.travis.yml is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/CHANGELOG.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/README.md is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/client.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/client_metrics.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/client_reporter.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/makefile is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/metric_options.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server_metrics.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/server_reporter.go is excluded by !**/vendor/**, !vendor/**
  • vendor/github.com/grpc-ecosystem/go-grpc-prometheus/util.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/context/context.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/hpack/tables.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/http2.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/server.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/transport.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/writesched.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/writesched_priority_rfc7540.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/net/http2/writesched_random.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/sync/singleflight/singleflight.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/sys/cpu/cpu_darwin_arm64_other.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/sys/cpu/cpu_other_arm64.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/sys/cpu/cpu_windows_arm64.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/sys/windows/dll_windows.go is excluded by !**/vendor/**, !vendor/**
  • vendor/golang.org/x/sys/windows/security_windows.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/grpc/reflection/README.md is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/grpc/reflection/adapt.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/grpc/reflection/grpc_reflection_v1/reflection.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/google.golang.org/grpc/reflection/grpc_reflection_v1/reflection_grpc.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/google.golang.org/grpc/reflection/grpc_reflection_v1alpha/reflection.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/google.golang.org/grpc/reflection/grpc_reflection_v1alpha/reflection_grpc.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/google.golang.org/grpc/reflection/internal/internal.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/grpc/reflection/serverreflection.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/encoding/protodelim/protodelim.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/encoding/protojson/decode.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/encoding/protojson/well_known_types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/encoding/prototext/decode.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/internal/descfmt/stringer.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/internal/version/version.go is excluded by !**/vendor/**, !vendor/**
  • vendor/google.golang.org/protobuf/reflect/protodesc/desc_init.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admission/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admission/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admission/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admission/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admission/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1/generated.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1/register.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1/zz_generated.deepcopy.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/admissionregistration/v1/zz_generated.model_name.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/admissionregistration/v1/zz_generated.prerelease-lifecycle.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/admissionregistration/v1alpha1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1alpha1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1alpha1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1alpha1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1beta1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/admissionregistration/v1beta1/zz_generated.prerelease-lifecycle.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/apidiscovery/v2/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apidiscovery/v2/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apidiscovery/v2/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apidiscovery/v2beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apidiscovery/v2beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apidiscovery/v2beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apiserverinternal/v1alpha1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apiserverinternal/v1alpha1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apiserverinternal/v1alpha1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apiserverinternal/v1alpha1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apps/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apps/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apps/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apps/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apps/v1beta2/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apps/v1beta2/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/apps/v1beta2/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1alpha1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1alpha1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1alpha1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1alpha1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authentication/v1beta1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authorization/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authorization/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authorization/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authorization/v1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authorization/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authorization/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authorization/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/authorization/v1beta1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta1/generated.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta1/zz_generated.deepcopy.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/autoscaling/v2beta1/zz_generated.model_name.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/autoscaling/v2beta1/zz_generated.prerelease-lifecycle.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/autoscaling/v2beta2/generated.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta2/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta2/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta2/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta2/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/autoscaling/v2beta2/zz_generated.deepcopy.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/autoscaling/v2beta2/zz_generated.model_name.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/autoscaling/v2beta2/zz_generated.prerelease-lifecycle.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/batch/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/batch/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/batch/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/batch/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/batch/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/batch/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1alpha1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1beta1/generated.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1beta1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/certificates/v1beta1/zz_generated.deepcopy.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/certificates/v1beta1/zz_generated.prerelease-lifecycle.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/coordination/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/coordination/v1alpha2/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/coordination/v1alpha2/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/coordination/v1alpha2/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/coordination/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/coordination/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/coordination/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/core/v1/generated.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/core/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/core/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/core/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/core/v1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/core/v1/zz_generated.deepcopy.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/core/v1/zz_generated.model_name.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/discovery/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/discovery/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/discovery/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/discovery/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/discovery/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/discovery/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/extensions/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/extensions/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/extensions/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/extensions/v1beta1/zz_generated.validations.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/flowcontrol/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1beta2/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1beta2/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1beta2/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1beta3/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1beta3/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/flowcontrol/v1beta3/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/imagepolicy/v1alpha1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/imagepolicy/v1alpha1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/imagepolicy/v1alpha1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/networking/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/networking/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/networking/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/networking/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/networking/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/networking/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/node/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/node/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/node/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/node/v1alpha1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/node/v1alpha1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/node/v1alpha1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/node/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/node/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/node/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/policy/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/policy/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/policy/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/policy/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/policy/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/policy/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/rbac/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/rbac/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/rbac/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/rbac/v1alpha1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/rbac/v1alpha1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/rbac/v1alpha1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/rbac/v1beta1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/rbac/v1beta1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/rbac/v1beta1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1/generated.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1/zz_generated.deepcopy.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/resource/v1/zz_generated.model_name.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
  • vendor/k8s.io/api/resource/v1alpha3/generated.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1alpha3/generated.proto is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1alpha3/generated.protomessage.pb.go is excluded by !**/*.pb.go, !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1alpha3/register.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1alpha3/types.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1alpha3/types_swagger_doc_generated.go is excluded by !**/vendor/**, !vendor/**
  • vendor/k8s.io/api/resource/v1alpha3/zz_generated.deepcopy.go is excluded by !**/vendor/**, !vendor/**, !**/zz_generated*
📒 Files selected for processing (9)
  • .github/dependabot.yml
  • .github/workflows/dispatch-pr-create.yml
  • .github/workflows/golangci-update.yml
  • .github/workflows/kube-update.yml
  • Makefile
  • README.md
  • go.mod
  • ibm/ibm_version.go
  • main.go
✅ Files skipped from review due to trivial changes (3)
  • README.md
  • main.go
  • ibm/ibm_version.go
🚧 Files skipped from review as they are similar to previous changes (5)
  • Makefile
  • .github/dependabot.yml
  • .github/workflows/dispatch-pr-create.yml
  • .github/workflows/kube-update.yml
  • go.mod

Comment on lines +36 to +39
- name: Get current golangci-lint version for ${{ matrix.branch }}
id: current
run: |
echo "version=v$(grep '^GOLANGCI_LINT_VERSION ' Makefile | awk '{ print $3 }')" >> "$GITHUB_OUTPUT"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Add error handling for version extraction.

The grep and awk pipeline has no error handling. If the Makefile is missing, formatted differently, or doesn't contain the expected GOLANGCI_LINT_VERSION variable, the pipeline will silently produce an empty or malformed version string (e.g., version=v), causing downstream failures.

🛡️ Proposed fix to add validation
       - name: Get current golangci-lint version for ${{ matrix.branch }}
         id: current
         run: |
-          echo "version=v$(grep '^GOLANGCI_LINT_VERSION ' Makefile | awk '{ print $3 }')" >> "$GITHUB_OUTPUT"
+          version=$(grep '^GOLANGCI_LINT_VERSION ' Makefile | awk '{ print $3 }')
+          if [ -z "$version" ]; then
+            echo "Error: Failed to extract GOLANGCI_LINT_VERSION from Makefile"
+            exit 1
+          fi
+          echo "version=v$version" >> "$GITHUB_OUTPUT"
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Get current golangci-lint version for ${{ matrix.branch }}
id: current
run: |
echo "version=v$(grep '^GOLANGCI_LINT_VERSION ' Makefile | awk '{ print $3 }')" >> "$GITHUB_OUTPUT"
- name: Get current golangci-lint version for ${{ matrix.branch }}
id: current
run: |
version=$(grep '^GOLANGCI_LINT_VERSION ' Makefile | awk '{ print $3 }')
if [ -z "$version" ]; then
echo "Error: Failed to extract GOLANGCI_LINT_VERSION from Makefile"
exit 1
fi
echo "version=v$version" >> "$GITHUB_OUTPUT"
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/golangci-update.yml around lines 36 - 39, The current
extraction of GOLANGCI_LINT_VERSION in the GitHub Actions step (id: current) is
unguarded and can emit an empty/malformed "version=v" string; modify the run
block that greps the Makefile for GOLANGCI_LINT_VERSION to check the grep/awk
pipeline exit status and validate the extracted value (e.g., non-empty and
matches a semver-like pattern) before echoing to GITHUB_OUTPUT, and if
validation fails, fail the step with an explicit error message indicating the
Makefile parse/variable issue so downstream steps don’t receive an invalid
version.

Comment on lines +41 to +49
- name: Get latest golangci-lint release
id: latest
run: |
latest_tag=$(curl -s https://api.github.com/repos/golangci/golangci-lint/releases/latest | jq -r .tag_name)
if [ "$latest_tag" == "null" ]; then
echo "Failed to fetch latest version, using current version as fallback"
latest_tag="${{ steps.current.outputs.version }}"
fi
echo "version=$latest_tag" >> "$GITHUB_OUTPUT"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Add error handling for GitHub API request.

The curl command lacks the --fail flag and doesn't handle network failures or API rate limits. If the request fails (network error, rate limit, HTTP error), latest_tag could be empty or contain error JSON, leading to silent failures or incorrect version comparisons.

🛡️ Proposed fix to add robust error handling
       - name: Get latest golangci-lint release
         id: latest
         run: |
-          latest_tag=$(curl -s https://api.github.com/repos/golangci/golangci-lint/releases/latest | jq -r .tag_name)
-          if [ "$latest_tag" == "null" ]; then
+          latest_tag=$(curl -sSf https://api.github.com/repos/golangci/golangci-lint/releases/latest | jq -r .tag_name)
+          if [ -z "$latest_tag" ] || [ "$latest_tag" == "null" ]; then
             echo "Failed to fetch latest version, using current version as fallback"
             latest_tag="${{ steps.current.outputs.version }}"
           fi
           echo "version=$latest_tag" >> "$GITHUB_OUTPUT"

Note: The -f flag makes curl fail on HTTP errors, and the check now handles both empty and "null" values.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/golangci-update.yml around lines 41 - 49, The curl call
that sets latest_tag in the "Get latest golangci-lint release" step lacks
fail-on-error handling, so network/HTTP errors or rate limits can produce empty
or invalid output; update the run block that defines latest_tag to call curl
with the --fail (or -f) flag and/or retry/backoff and validate that the result
is non-empty and not "null" (check the latest_tag variable) before using it, and
on failure log a clear error and fall back to steps.current.outputs.version
(echoing the chosen version to GITHUB_OUTPUT as before).

Comment on lines +56 to +67
- name: Update code and commit changes
if: steps.current.outputs.version != steps.latest.outputs.version
id: commit-change
run: |
sed -i -e "s/GOLANGCI_LINT_VERSION := ${CURRENT:1}/GOLANGCI_LINT_VERSION := ${LATEST:1}/g" Makefile
commit_msg="Bump golangci-lint from ${{ steps.current.outputs.version }} to ${{ steps.latest.outputs.version }} in branch ${{ matrix.branch }}"
echo "msg=$commit_msg" >> "$GITHUB_OUTPUT"
git add Makefile
git commit -m "$commit_msg"
env:
CURRENT: ${{ steps.current.outputs.version }}
LATEST: ${{ steps.latest.outputs.version }}
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Validate version format before string slicing.

The sed command assumes both CURRENT and LATEST versions start with 'v' (using ${CURRENT:1} and ${LATEST:1} to strip it). If this assumption is violated—for example, if the fallback is used or the API format changes—the string slicing will remove the first character of the actual version number, corrupting the Makefile.

🛡️ Proposed fix to add validation
       - name: Update code and commit changes
         if: steps.current.outputs.version != steps.latest.outputs.version
         id: commit-change
         run: |
+          if [[ ! "$CURRENT" =~ ^v.+ ]] || [[ ! "$LATEST" =~ ^v.+ ]]; then
+            echo "Error: Version format must start with 'v'. Got CURRENT=$CURRENT, LATEST=$LATEST"
+            exit 1
+          fi
           sed -i -e "s/GOLANGCI_LINT_VERSION := ${CURRENT:1}/GOLANGCI_LINT_VERSION := ${LATEST:1}/g" Makefile
           commit_msg="Bump golangci-lint from ${{ steps.current.outputs.version }} to ${{ steps.latest.outputs.version }} in branch ${{ matrix.branch }}"
           echo "msg=$commit_msg" >> "$GITHUB_OUTPUT"
           git add Makefile
           git commit -m "$commit_msg"
         env:
           CURRENT: ${{ steps.current.outputs.version }}
           LATEST: ${{ steps.latest.outputs.version }}
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Update code and commit changes
if: steps.current.outputs.version != steps.latest.outputs.version
id: commit-change
run: |
sed -i -e "s/GOLANGCI_LINT_VERSION := ${CURRENT:1}/GOLANGCI_LINT_VERSION := ${LATEST:1}/g" Makefile
commit_msg="Bump golangci-lint from ${{ steps.current.outputs.version }} to ${{ steps.latest.outputs.version }} in branch ${{ matrix.branch }}"
echo "msg=$commit_msg" >> "$GITHUB_OUTPUT"
git add Makefile
git commit -m "$commit_msg"
env:
CURRENT: ${{ steps.current.outputs.version }}
LATEST: ${{ steps.latest.outputs.version }}
- name: Update code and commit changes
if: steps.current.outputs.version != steps.latest.outputs.version
id: commit-change
run: |
if [[ ! "$CURRENT" =~ ^v.+ ]] || [[ ! "$LATEST" =~ ^v.+ ]]; then
echo "Error: Version format must start with 'v'. Got CURRENT=$CURRENT, LATEST=$LATEST"
exit 1
fi
sed -i -e "s/GOLANGCI_LINT_VERSION := ${CURRENT:1}/GOLANGCI_LINT_VERSION := ${LATEST:1}/g" Makefile
commit_msg="Bump golangci-lint from ${{ steps.current.outputs.version }} to ${{ steps.latest.outputs.version }} in branch ${{ matrix.branch }}"
echo "msg=$commit_msg" >> "$GITHUB_OUTPUT"
git add Makefile
git commit -m "$commit_msg"
env:
CURRENT: ${{ steps.current.outputs.version }}
LATEST: ${{ steps.latest.outputs.version }}
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/golangci-update.yml around lines 56 - 67, The sed line in
the commit-change step blindly strips the first character from CURRENT and
LATEST using ${CURRENT:1}/${LATEST:1}, which corrupts versions if they don't
start with 'v'; update the run script in the commit-change step (the block that
includes the sed command and commit_msg) to validate and normalize the variables
first (e.g., if a variable starts with 'v' strip it, otherwise leave it intact),
assign normalized values (e.g., curr and latest) and use those in the sed
invocation and commit message so the Makefile update and commit_msg use correct
versions; ensure you reference the existing CURRENT and LATEST env variables and
replace the direct ${CURRENT:1}/${LATEST:1} usage with the validated normalized
variables.

Comment on lines +69 to +86
- name: Create pull request
if: steps.current.outputs.version != steps.latest.outputs.version
uses: peter-evans/create-pull-request@v8
with:
title: ${{ steps.commit-change.outputs.msg }}
body: |
If you do not see:

✅ Tests completed successfully

Check the PR results [here](https://github.com/IBM-Cloud/cloud-provider-ibm/actions/workflows/dispatch-pr-create.yml)
commit-message: ${{ steps.commit-change.outputs.msg }}
branch: golangci-${{ steps.latest.outputs.version }}-${{ matrix.branch }}
base: ${{ matrix.branch }}
labels: |
golangci-update
${{ matrix.branch }}
delete-branch: true
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical | ⚡ Quick win

Fix hardcoded repository URL in PR body.

The URL on line 79 points to IBM-Cloud/cloud-provider-ibm but this workflow is being merged into openshift/cloud-provider-powervs. Users clicking the link to check PR results will be directed to the wrong repository, breaking the workflow's transparency and making debugging impossible.

🐛 Proposed fix to use correct repository
       - name: Create pull request
         if: steps.current.outputs.version != steps.latest.outputs.version
         uses: peter-evans/create-pull-request@v8
         with:
           title: ${{ steps.commit-change.outputs.msg }}
           body: |
             If you do not see:

               ✅ Tests completed successfully

-            Check the PR results [here](https://github.com/IBM-Cloud/cloud-provider-ibm/actions/workflows/dispatch-pr-create.yml)
+            Check the PR results [here](https://github.com/${{ github.repository }}/actions/workflows/dispatch-pr-create.yml)
           commit-message: ${{ steps.commit-change.outputs.msg }}
           branch: golangci-${{ steps.latest.outputs.version }}-${{ matrix.branch }}
           base: ${{ matrix.branch }}
           labels: |
             golangci-update
             ${{ matrix.branch }}
           delete-branch: true
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- name: Create pull request
if: steps.current.outputs.version != steps.latest.outputs.version
uses: peter-evans/create-pull-request@v8
with:
title: ${{ steps.commit-change.outputs.msg }}
body: |
If you do not see:
✅ Tests completed successfully
Check the PR results [here](https://github.com/IBM-Cloud/cloud-provider-ibm/actions/workflows/dispatch-pr-create.yml)
commit-message: ${{ steps.commit-change.outputs.msg }}
branch: golangci-${{ steps.latest.outputs.version }}-${{ matrix.branch }}
base: ${{ matrix.branch }}
labels: |
golangci-update
${{ matrix.branch }}
delete-branch: true
- name: Create pull request
if: steps.current.outputs.version != steps.latest.outputs.version
uses: peter-evans/create-pull-request@v8
with:
title: ${{ steps.commit-change.outputs.msg }}
body: |
If you do not see:
✅ Tests completed successfully
Check the PR results [here](https://github.com/${{ github.repository }}/actions/workflows/dispatch-pr-create.yml)
commit-message: ${{ steps.commit-change.outputs.msg }}
branch: golangci-${{ steps.latest.outputs.version }}-${{ matrix.branch }}
base: ${{ matrix.branch }}
labels: |
golangci-update
${{ matrix.branch }}
delete-branch: true
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/workflows/golangci-update.yml around lines 69 - 86, The PR body in
the "Create pull request" step contains a hardcoded link to
IBM-Cloud/cloud-provider-ibm; update the body string under the with: body field
for the peter-evans/create-pull-request action to build the correct repo URL
dynamically (use the GitHub Actions context variables such as ${{
github.server_url }}/${{ github.repository
}}/actions/workflows/dispatch-pr-create.yml or ${{ github.server_url } }/${{
github.repository }} as appropriate) so the "Check the PR results" link points
to the current repository instead of the hardcoded IBM-Cloud repo.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

needs-ok-to-test Indicates a PR that requires an org member to verify it is safe to test.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

5 participants