NO-JIRA: sync with upstream 2026-07-17 - #398
Conversation
…#1292) The NetObserv eval tasks from containers#1159 lacked the `project` label and `project-name`/`project-url` annotations, so generateValidatedProjects skipped them and NetObserv was absent from the "Validated Kubernetes Ecosystem Projects" table in README.md. Add the metadata to the four tasks and regenerate the table. Fixes containers#1290 Signed-off-by: Marc Nuri <marc@marcnuri.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…ners#1298) Pass FilteringProvider through to each tool sub-package and add per-tool TargetCompatibilityFilters that check for kubevirt.io/v1 VirtualMachine. This hides kubevirt tools when no target cluster has KubeVirt installed, following the pattern established for OpenShift projects_list filtering. Per-tool wiring is used so future tools can independently check for HCO, AAQ, or other kubevirt ecosystem GVKs. Assisted-By: Claude <noreply@anthropic.com> Signed-off-by: Lee Yarwood <lyarwood@redhat.com>
…rs#1297) * netobserv followup hardening Signed-off-by: Julien Pinsonneau <jpinsonn@redhat.com> * test(netobserv): cover OpenShift HTTPS detection and CA pinning Add tests for the two security behaviors this change delivers: - A provider that reports the OpenShift Project GVK synthesizes an https:// plugin URL. This is also the fail-open direction, since AnyTargetHasGVKs returns true on a discovery error, so the bearer token is never sent in cleartext. - A configured certificate_authority is the sole trust anchor: a server cert not signed by the pinned CA is rejected. Also clarify the additionalProperties:false schema comment. It is a client-facing hint, not a server-side guard: the go-sdk raw AddTool path does not validate tool arguments against the schema, so unknown fields are not rejected server-side. Signed-off-by: Marc Nuri <marc@marcnuri.com> Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> --------- Signed-off-by: Marc Nuri <marc@marcnuri.com> Co-authored-by: Marc Nuri <marc@marcnuri.com> Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
…iners#1304) Bumps the github-actions group with 1 update: [actions/setup-go](https://github.com/actions/setup-go). Updates `actions/setup-go` from 6 to 7 - [Release notes](https://github.com/actions/setup-go/releases) - [Commits](actions/setup-go@v6...v7) --- updated-dependencies: - dependency-name: actions/setup-go dependency-version: '7' dependency-type: direct:production update-type: version-update:semver-major dependency-group: github-actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…un (containers#1300) Signed-off-by: Calum Murray <cmurray@redhat.com>
|
@openshift-ci-robot: This pull request explicitly references no jira issue. DetailsIn response to this:
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 openshift-eng/jira-lifecycle-plugin repository. |
|
Important Review skippedIgnore keyword(s) in the title. ⛔ Ignored keywords (1)
Please check the settings in the CodeRabbit UI or the ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Enterprise Run ID: You can disable this status message by setting the Use the checkbox below for a quick retry:
📝 WalkthroughWalkthroughChangesWorkflow execution
KubeVirt compatibility filtering
NetObserv integration updates
Estimated code review effort: 4 (Complex) | ~60 minutes Sequence Diagram(s)sequenceDiagram
participant Reviewer
participant TriggerWorkflow
participant EvaluationWorkflow
participant NetObservEvaluation
Reviewer->>TriggerWorkflow: Submit review with /run-mcpchecker netobserv
TriggerWorkflow->>EvaluationWorkflow: Complete trigger workflow
EvaluationWorkflow->>EvaluationWorkflow: Verify review and pin commit_id
EvaluationWorkflow->>NetObservEvaluation: Run selected suite at pinned SHA
Suggested reviewers: 🚥 Pre-merge checks | ✅ 3 | ❌ 2❌ Failed checks (1 warning, 1 inconclusive)
✅ Passed checks (3 passed)
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 3
🧹 Nitpick comments (2)
pkg/kubevirt/gvr_test.go (1)
28-48: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueUse
testify/requirefor assertions.While this test correctly uses standard
t.Run()for a simple self-contained test, the project relies heavily on thetestifylibrary. Consider refactoring these manual checks to userequire.Len,require.Equal,require.True, andrequire.Falsefor better readability and clearer failure messages.♻️ Proposed refactor
- if len(p.queriedGVKs) != 1 { - t.Fatalf("expected 1 GVK query, got %d", len(p.queriedGVKs)) - } - if p.queriedGVKs[0] != VirtualMachineGVK { - t.Errorf("expected query for %v, got %v", VirtualMachineGVK, p.queriedGVKs[0]) - } + require.Len(t, p.queriedGVKs, 1, "expected 1 GVK query") + require.Equal(t, VirtualMachineGVK, p.queriedGVKs[0], "expected query for VirtualMachineGVK") }) t.Run("returns true when provider has VirtualMachine GVK", func(t *testing.T) { filter := HasVirtualMachine(&fakeFilteringProvider{hasGVKs: true}) - if !filter() { - t.Error("expected HasVirtualMachine to return true") - } + require.True(t, filter(), "expected HasVirtualMachine to return true") }) t.Run("returns false when provider does not have VirtualMachine GVK", func(t *testing.T) { filter := HasVirtualMachine(&fakeFilteringProvider{hasGVKs: false}) - if filter() { - t.Error("expected HasVirtualMachine to return false") - } + require.False(t, filter(), "expected HasVirtualMachine to return false")Note: Make sure to include
"github.com/stretchr/testify/require"in your imports.🤖 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 `@pkg/kubevirt/gvr_test.go` around lines 28 - 48, Refactor the assertions in the HasVirtualMachine tests to use testify/require, adding the require import and replacing manual length, equality, true, and false checks with require.Len, require.Equal, require.True, and require.False. Keep the existing test cases and expectations unchanged.pkg/mcp/toolsets_test.go (1)
134-134: 📐 Maintainability & Code Quality | 🔵 Trivial | 💤 Low valueUse the kubevirt toolset's
GetName()here. Keep the slice narrowed for this test, but derive the toolset name from(&kubevirt.Toolset{}).GetName()instead of a string literal.🤖 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 `@pkg/mcp/toolsets_test.go` at line 134, Update the toolset assignment in the test to retain a single kubevirt entry while deriving its value from (&kubevirt.Toolset{}).GetName() instead of using the "kubevirt" string literal.Source: Coding guidelines
🤖 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/mcpchecker.yaml:
- Around line 122-137: The mcpchecker workflow must bind execution to the exact
review that triggered it rather than selecting a historical matching body. In
.github/workflows/mcpchecker-trigger.yaml lines 31-38, pass the submitted
review’s immutable ID through the workflow dispatch or routing payload; in
.github/workflows/mcpchecker.yaml lines 122-137, consume that ID when evaluating
reviews and select only the review whose ID matches, preserving the existing
non-dismissed and command validation.
- Around line 47-49: Update the workflow concurrency group expression and the
associated PR lookup to use the workflow run’s repository-qualified PR identity
rather than head_branch alone; include the commit SHA as a fallback when no
associated PR identity is available, ensuring runs from forks remain distinct
and the lookup targets the correct open PR.
In @.github/workflows/release.yaml:
- Around line 29-31: Update the actions/setup-go@v7 configuration in the release
job to explicitly disable caching by setting its cache option to false, while
preserving the existing go-version-file configuration.
---
Nitpick comments:
In `@pkg/kubevirt/gvr_test.go`:
- Around line 28-48: Refactor the assertions in the HasVirtualMachine tests to
use testify/require, adding the require import and replacing manual length,
equality, true, and false checks with require.Len, require.Equal, require.True,
and require.False. Keep the existing test cases and expectations unchanged.
In `@pkg/mcp/toolsets_test.go`:
- Line 134: Update the toolset assignment in the test to retain a single
kubevirt entry while deriving its value from (&kubevirt.Toolset{}).GetName()
instead of using the "kubevirt" string literal.
🪄 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: Path: .coderabbit.yaml
Review profile: CHILL
Plan: Enterprise
Run ID: 0d79e427-fd22-4863-9a62-4d8934aad775
📒 Files selected for processing (36)
.github/workflows/build.yaml.github/workflows/e2e.yaml.github/workflows/mcpchecker-report.yaml.github/workflows/mcpchecker-trigger.yaml.github/workflows/mcpchecker.yaml.github/workflows/release.yamlREADME.mddocs/NETOBSERV.mdevals/tasks/netobserv/README.mdevals/tasks/netobserv/export-flows/export-flows.yamlevals/tasks/netobserv/get-flow-metrics/get-flow-metrics.yamlevals/tasks/netobserv/list-flows/list-flows.yamlevals/tasks/netobserv/tls-breakdown/tls-breakdown.yamlpkg/api/toolsets.gopkg/kubevirt/gvr.gopkg/kubevirt/gvr_test.gopkg/mcp/tools_gosdk.gopkg/mcp/toolsets_test.gopkg/netobserv/config.gopkg/netobserv/config_test.gopkg/netobserv/netobserv.gopkg/netobserv/netobserv_test.gopkg/netobserv/openshift.gopkg/netobserv/openshift_test.gopkg/netobserv/query.gopkg/toolsets/kubevirt/toolset.gopkg/toolsets/kubevirt/vm/clone/tool.gopkg/toolsets/kubevirt/vm/create/tool.gopkg/toolsets/kubevirt/vm/guestagent/tool.gopkg/toolsets/kubevirt/vm/guestagent/tool_test.gopkg/toolsets/kubevirt/vm/lifecycle/tool.gopkg/toolsets/netobserv/tools/defaults.gopkg/toolsets/netobserv/tools/export_flows.gopkg/toolsets/netobserv/tools/get_flow_metrics.gopkg/toolsets/netobserv/tools/list_flows.gopkg/toolsets/netobserv/tools/schema.go
💤 Files with no reviewable changes (1)
- pkg/toolsets/netobserv/tools/defaults.go
| # For workflow_run events, use head_branch to group by PR branch so different | ||
| # PRs don't cancel each other. | ||
| group: ${{ github.workflow }}-${{ github.event_name == 'workflow_run' && format('branch-{0}', github.event.workflow_run.head_branch) || github.ref }} |
There was a problem hiding this comment.
🎯 Functional Correctness | 🟠 Major | 🏗️ Heavy lift
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== workflow file =="
nl -ba .github/workflows/mcpchecker.yaml | sed -n '1,220p'
echo
echo "== references to pulls.list / head_branch / concurrency =="
rg -n "pulls\.list|head_branch|concurrency|workflow_run|head\.ref|head_repo|head.repository|head\.sha|pull_request" .github/workflows . -g '*.yml' -g '*.yaml' -g '*.js' -g '*.ts' -g '*.sh' -g '*.py'Repository: openshift/openshift-mcp-server
Length of output: 228
🏁 Script executed:
#!/bin/bash
set -euo pipefail
nl -ba .github/workflows/mcpchecker.yaml | sed -n '1,220p'Repository: openshift/openshift-mcp-server
Length of output: 208
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "== workflow file =="
sed -n '1,220p' .github/workflows/mcpchecker.yaml | cat -n
echo
echo "== candidate PR lookup / concurrency references =="
rg -n "pulls\.list|head_branch|concurrency|workflow_run|head\.ref|head_repo|head\.repository|head\.sha|pull_request" .github/workflows . -g '*.yml' -g '*.yaml' -g '*.js' -g '*.ts' -g '*.sh' -g '*.py'Repository: openshift/openshift-mcp-server
Length of output: 17953
🏁 Script executed:
#!/bin/bash
set -euo pipefail
sed -n '220,320p' .github/workflows/mcpchecker.yaml | cat -nRepository: openshift/openshift-mcp-server
Length of output: 5165
Use repository-qualified PR identity here.
Branch names collide across forks, so head_branch can cancel unrelated runs and can pick the wrong open PR in the lookup below. Use the workflow run’s associated PR/repository identity, with a commit-SHA fallback when needed. This also applies to the PR lookup path below.
🤖 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/mcpchecker.yaml around lines 47 - 49, Update the workflow
concurrency group expression and the associated PR lookup to use the workflow
run’s repository-qualified PR identity rather than head_branch alone; include
the commit SHA as a fallback when no associated PR identity is available,
ensuring runs from forks remain distinct and the lookup targets the correct open
PR.
| // Fetch all reviews and find the most recent non-dismissed review | ||
| // containing /run-mcpchecker. | ||
| const reviews = await github.paginate( | ||
| github.rest.pulls.listReviews, | ||
| { owner, repo, pull_number: prNum, per_page: 100 }, | ||
| ); | ||
|
|
||
| let seenComment = false; | ||
| let lastCommitSha = null; | ||
| for (const event of timeline) { | ||
| if (event.event === 'committed') { | ||
| if (!seenComment) { | ||
| lastCommitSha = event.sha; | ||
| } else { | ||
| core.setOutput('should-run', 'false'); | ||
| core.setOutput('is-pr', 'true'); | ||
| core.setOutput('pr-number', String(prNum)); | ||
| core.setOutput('pr-sha', ''); | ||
| core.info('TOCTOU: PR was updated after the /run-mcpchecker comment'); | ||
| await github.rest.issues.createComment({ | ||
| owner, repo, issue_number: prNum, | ||
| body: '**Evaluation not started:** the PR was updated after this ' + | ||
| '`/run-mcpchecker` comment was posted. Please re-review and ' + | ||
| 'comment `/run-mcpchecker` again.', | ||
| }); | ||
| return; | ||
| } | ||
| } else if (event.event === 'head_ref_force_pushed') { | ||
| if (seenComment) { | ||
| core.setOutput('should-run', 'false'); | ||
| core.setOutput('is-pr', 'true'); | ||
| core.setOutput('pr-number', String(prNum)); | ||
| core.setOutput('pr-sha', ''); | ||
| core.info('TOCTOU: PR was force-pushed after the /run-mcpchecker comment'); | ||
| await github.rest.issues.createComment({ | ||
| owner, repo, issue_number: prNum, | ||
| body: '**Evaluation not started:** the PR was force-pushed after this ' + | ||
| '`/run-mcpchecker` comment was posted. Please re-review and ' + | ||
| 'comment `/run-mcpchecker` again.', | ||
| }); | ||
| return; | ||
| } | ||
| // After a force-push the old commit SHAs are invalid; reset | ||
| // and let subsequent committed events repopulate. | ||
| lastCommitSha = null; | ||
| } else if (event.event === 'commented' && event.id === commentId) { | ||
| seenComment = true; | ||
| let triggerReview = null; | ||
| for (let i = reviews.length - 1; i >= 0; i--) { | ||
| const r = reviews[i]; | ||
| if (r.state === 'DISMISSED') continue; | ||
| if (r.body && r.body.includes('/run-mcpchecker')) { | ||
| triggerReview = r; | ||
| break; | ||
| } | ||
| } |
There was a problem hiding this comment.
🔒 Security & Privacy | 🟠 Major | 🏗️ Heavy lift
🧩 Analysis chain
🏁 Script executed:
sed -n '1,220p' .github/workflows/mcpchecker.yaml && printf '\n---\n' && sed -n '1,180p' .github/workflows/mcpchecker-trigger.yaml && printf '\n---\n' && rg -n "review_id|node_id|pull_request_review|listReviews|/run-mcpchecker|mcpchecker-trigger" .github/workflows -SRepository: openshift/openshift-mcp-server
Length of output: 11970
Bind the run to the triggering review ID.
.github/workflows/mcpchecker.yaml#L122-L137 scans all reviews and picks the latest non-dismissed /run-mcpchecker body, so a later review can satisfy an earlier run. The trigger workflow only passes a routing signal, so it should carry the submitted review’s immutable ID through the chain and match that exact review instead of searching historical reviews by body text.
.github/workflows/mcpchecker.yaml#L122-L137.github/workflows/mcpchecker-trigger.yaml#L31-L38
📍 Affects 2 files
.github/workflows/mcpchecker.yaml#L122-L137(this comment).github/workflows/mcpchecker-trigger.yaml#L31-L38
🤖 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/mcpchecker.yaml around lines 122 - 137, The mcpchecker
workflow must bind execution to the exact review that triggered it rather than
selecting a historical matching body. In
.github/workflows/mcpchecker-trigger.yaml lines 31-38, pass the submitted
review’s immutable ID through the workflow dispatch or routing payload; in
.github/workflows/mcpchecker.yaml lines 122-137, consume that ID when evaluating
reviews and select only the review whose ID matches, preserving the existing
non-dismissed and command validation.
| - uses: actions/setup-go@v7 | ||
| with: | ||
| go-version-file: go.mod |
There was a problem hiding this comment.
🔒 Security & Privacy | 🟡 Minor | ⚡ Quick win
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "=== .github/workflows/release.yaml ==="
nl -ba .github/workflows/release.yaml | sed -n '1,220p'
echo
echo "=== Search for setup-go and cache settings ==="
rg -n --hidden --glob '.github/workflows/*.yaml' 'actions/setup-go|cache:' .github/workflowsRepository: openshift/openshift-mcp-server
Length of output: 247
🏁 Script executed:
#!/bin/bash
set -euo pipefail
echo "=== .github/workflows/release.yaml ==="
sed -n '1,220p' .github/workflows/release.yaml | cat -n
echo
echo "=== Search for setup-go and cache settings ==="
rg -n --hidden --glob '.github/workflows/*.yaml' 'actions/setup-go|cache:' .github/workflows || trueRepository: openshift/openshift-mcp-server
Length of output: 2884
🌐 Web query:
actions/setup-go v7 cache default go-version-file cache input default false documentation
💡 Result:
In actions/setup-go, the caching feature is enabled by default [1][2][3]. The cache input is an optional parameter that defaults to true, meaning you do not need to explicitly set it to true to enable caching [1][4]. If you wish to disable caching, you must explicitly set the cache input to false (e.g., cache: false) [1][3]. Regarding dependency tracking, as of recent updates (introduced in early 2026), the action defaults to using go.mod as the dependency file for calculating the cache key [5]. The action automatically searches for this file in the repository root [1][3]. If you have specific requirements, such as using go.sum or pointing to a dependency file in a different directory, you can configure this using the cache-dependency-path input [1][5][3]. For clarity, the cache input and the cache-dependency-path input serve different purposes: - cache: A boolean input that toggles the caching feature on or off (defaults to true) [1][4]. - cache-dependency-path: A string input used to specify the path to your dependency file (e.g., go.mod or go.sum) when the default behavior needs to be overridden [1][5][3].
Citations:
- 1: https://github.com/actions/setup-go/blob/main/README.md
- 2: https://github.com/actions/setup-go
- 3: https://github.com/actions/setup-go/tree/v6.3.0
- 4: https://github.com/actions/setup-go/blob/main/action.yml
- 5: Update default Go module caching to use go.mod actions/setup-go#705
Disable setup-go caching in the release job.
actions/setup-go@v7 enables caching by default, so this release workflow is still using a shared mutable cache while building published artifacts. Set cache: false here to keep the release build isolated.
🧰 Tools
🪛 zizmor (1.26.1)
[error] 29-29: runtime artifacts potentially vulnerable to a cache poisoning attack (cache-poisoning): enables caching by default
(cache-poisoning)
🤖 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/release.yaml around lines 29 - 31, Update the
actions/setup-go@v7 configuration in the release job to explicitly disable
caching by setting its cache option to false, while preserving the existing
go-version-file configuration.
Source: Linters/SAST tools
…ontainers#1270) Add support for configuring TLS minimum version and cipher suites via environment variables, enabling operator-level control over TLS settings. Changes: - Add pkg/tlsutil package with TLS configuration utilities - Add TLS_MIN_VERSION env var (values: "1.0", "1.1", "1.2", "1.3") - Add TLS_CIPHER_SUITES env var (comma-separated cipher suite names) - Add tls_min_version and tls_cipher_suites config file options - Wire TLS config into HTTP server (inbound) and outbound clients (Kiali, OAuth, token exchange, well-known metadata) - Add comprehensive tests for TLS configuration parsing Environment variables take precedence over config file values. Config file options only affect the HTTP server; env vars affect both server and all outbound client connections. Closes: containers#1266 Signed-off-by: cyril-ui-developer <cyril.ajieh@gmail.com> Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> Co-authored-by: Cursor <cursoragent@cursor.com>
Signed-off-by: Calum Murray <cmurray@redhat.com>
Signed-off-by: josunect <jcordoba@redhat.com>
Signed-off-by: arkadeepsen <arsen@redhat.com>
44ad0d3 to
6980b61
Compare
…pport (containers#1256) * feat(kiali): update tool schemas for Gateway API and Inference API support Update manage_istio_config tool descriptions to support gateway.networking.k8s.io and inference.networking.k8s.io resources, with corrected version guidance and partial-create merge semantics. Co-authored-by: Cursor <cursoragent@cursor.com> Signed-off-by: Hayk Hovsepyan <hhovsepy@redhat.com> * test(kiali): add Gateway API and Inference API mcpchecker evals Add three Configuration Management eval tasks for manage_istio_config_read and manage_istio_config: list HTTPRoutes, create HTTPRoute, and list InferencePools. Install Gateway API CRDs during setup-kiali; Inference API CRDs are installed per-task. Companion to kiali/kiali#9988. Signed-off-by: Hayk Hovsepyan <hhovsepy@redhat.com> Co-authored-by: Cursor <cursoragent@cursor.com> Signed-off-by: Hayk Hovsepyan <hhovsepy@redhat.com> --------- Signed-off-by: Hayk Hovsepyan <hhovsepy@redhat.com> Co-authored-by: Cursor <cursoragent@cursor.com>
…iners#1319) Bumps the github-actions group with 1 update: [actions/checkout](https://github.com/actions/checkout). Updates `actions/checkout` from 7.0.0 to 7.0.1 - [Release notes](https://github.com/actions/checkout/releases) - [Commits](actions/checkout@v7...v7.0.1) --- updated-dependencies: - dependency-name: actions/checkout dependency-version: 7.0.1 dependency-type: direct:production update-type: version-update:semver-patch dependency-group: github-actions ... Signed-off-by: dependabot[bot] <support@github.com> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
…ners#1317) Bumps [github.com/go-logr/logr](https://github.com/go-logr/logr) from 1.4.3 to 1.4.4. - [Release notes](https://github.com/go-logr/logr/releases) - [Changelog](https://github.com/go-logr/logr/blob/master/CHANGELOG.md) - [Commits](go-logr/logr@v1.4.3...v1.4.4) --- updated-dependencies: - dependency-name: github.com/go-logr/logr dependency-version: 1.4.4 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>
7d2f0db to
acf7793
Compare
…tainers#1303) * test: verify that the mcp server works with kuadrant mcp gateway Signed-off-by: Calum Murray <cmurray@redhat.com> * chore: address review comments Signed-off-by: Calum Murray <cmurray@redhat.com> --------- Signed-off-by: Calum Murray <cmurray@redhat.com>
Signed-off-by: josunect <jcordoba@redhat.com>
* feat(tekton): add PipelineRun troubleshooting tools Add PipelineRun cancel and log helpers, read-only Pipeline-as-Code Repository and TektonConfig tools, and a PipelineRun troubleshooting prompt. Update Tekton docs, eval tasks, snapshots, and MCP coverage for the new tools. Signed-off-by: Vibhav Bobade <vibhav.bobde@gmail.com> * fix(tekton): address PipelineRun review feedback Signed-off-by: Vibhav Bobade <vibhav.bobde@gmail.com> --------- Signed-off-by: Vibhav Bobade <vibhav.bobde@gmail.com>
Signed-off-by: Calum Murray <cmurray@redhat.com>
…tainers#1224) * feat(kiali): add meshCluster parameter for multi-cluster support Expose an optional meshCluster parameter on eight Kiali tools to target a specific Istio mesh cluster. The value is remapped to clusterName when calling the Kiali API. Add kiali_list_mesh_clusters so models can discover mesh cluster names before calling other tools. Mark all Kiali tools as not cluster-aware so the MCP server does not inject context on them; mesh scope is selected only via meshCluster. Related: kiali/kiali#9927, kiali/kiali#9981 Co-authored-by: Cursor <cursoragent@cursor.com> Signed-off-by: Hayk Hovsepyan <hhovsepy@redhat.com> * fix(kiali): use ToolsetName and mark prompts not cluster-aware Build meshCluster descriptions with ToolsetName() for downstream overrides, and disable context injection on Kiali prompts as well as tools. Co-authored-by: Cursor <cursoragent@cursor.com> Signed-off-by: Hayk Hovsepyan <hhovsepy@redhat.com> --------- Signed-off-by: Hayk Hovsepyan <hhovsepy@redhat.com> Co-authored-by: Cursor <cursoragent@cursor.com>
b628b6c to
6971d04
Compare
Signed-off-by: Calum Murray <cmurray@redhat.com>
|
/test images |
|
/retest-required |
|
[APPROVALNOTIFIER] This PR is APPROVED This pull-request has been approved by: Cali0707, openshift-ci-robot The full list of commands accepted by this bot can be found here. The pull request process is described here DetailsNeeds approval from an approver in each of these files:
Approvers can indicate their approval by writing |
|
@openshift-ci-robot: all tests passed! Full PR test history. Your PR dashboard. DetailsInstructions 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. I understand the commands that are listed here. |
🔄 Upstream Sync
Update: Wed Jul 22 08:02:31 UTC 2026
New changes detected from upstream: