Skip to content

ci(cliproxyapi-plusplus): add golangci-lint configuration#1004

Open
KooshaPari wants to merge 7 commits intomainfrom
ci/add-golangci-lint
Open

ci(cliproxyapi-plusplus): add golangci-lint configuration#1004
KooshaPari wants to merge 7 commits intomainfrom
ci/add-golangci-lint

Conversation

@KooshaPari
Copy link
Copy Markdown
Owner

@KooshaPari KooshaPari commented May 7, 2026

User description

Adds golangci-lint workflow and configuration for Go code quality enforcement.


Note

Medium Risk
Medium risk because it changes when and how CI/security/release workflows run (new push/PR triggers, concurrency, and deeper checkouts), which can increase load or accidentally block merges; there is also an apparent syntax error in coderabbit-rate-limit-retry.yml that could break that workflow.

Overview
Expands GitHub Actions coverage across branches and events. Most workflows now run on push and pull_request for main/master/develop, and several workflows add concurrency to cancel superseded runs.

Tightens CI/quality/security automation. pr-test-build.yml adds/standardizes Go quality gates (including golangci-lint, staticcheck, Task-based checks, smoke tests, and artifacts), SAST workflows are updated to run more frequently and upload SARIF for CodeQL/Trivy/Semgrep/secret scans, and release/docs/docker/SDK generation workflows are adjusted with more explicit with: blocks and deeper checkouts.

Also sets packageManager: "npm@10" in package.json, and introduces a likely broken string in coderabbit-rate-limit-retry.yml (output.title) that may prevent that workflow from running.

Reviewed by Cursor Bugbot for commit 9f684c9. Bugbot is set up for automated code reviews on this repo. Configure here.


CodeAnt-AI Description

Fix broken CI workflows and expand them to run on common branches

What Changed

  • Fixed workflow formatting issues that could stop CI, security scans, docs, and release jobs from running correctly
  • Added push and pull request triggers to several workflows so checks now run automatically on main, master, and develop
  • Added concurrency rules to cancel older in-progress runs when a new change is pushed
  • Added Go linting checks and tightened security scanning with additional repository and secret scans
  • Updated docs and build workflows so pages, images, SDK generation, and release automation run with the new triggers

Impact

✅ Fewer broken CI runs
✅ Earlier feedback on pull requests
✅ Clearer security scan coverage

🔄 Retrigger CodeAnt AI Review

Details

💡 Usage Guide

Checking Your Pull Request

Every time you make a pull request, our system automatically looks through it. We check for security issues, mistakes in how you're setting up your infrastructure, and common code problems. We do this to make sure your changes are solid and won't cause any trouble later.

Talking to CodeAnt AI

Got a question or need a hand with something in your pull request? You can easily get in touch with CodeAnt AI right here. Just type the following in a comment on your pull request, and replace "Your question here" with whatever you want to ask:

@codeant-ai ask: Your question here

This lets you have a chat with CodeAnt AI about your pull request, making it easier to understand and improve your code.

Example

@codeant-ai ask: Can you suggest a safer alternative to storing this secret?

Preserve Org Learnings with CodeAnt

You can record team preferences so CodeAnt AI applies them in future reviews. Reply directly to the specific CodeAnt AI suggestion (in the same thread) and replace "Your feedback here" with your input:

@codeant-ai: Your feedback here

This helps CodeAnt AI learn and adapt to your team's coding style and standards.

Example

@codeant-ai: Do not flag unused imports.

Retrigger review

Ask CodeAnt AI to review the PR again, by typing:

@codeant-ai: review

Check Your Repository Health

To analyze the health of your code repository, visit our dashboard at https://app.codeant.ai. This tool helps you identify potential issues and areas for improvement in your codebase, ensuring your repository maintains high standards of code health.

KooshaPari and others added 6 commits May 5, 2026 20:45
…p-go

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
…` lines

Gitleaks identified multiple broken YAML patterns where `with:` keywords
were concatenated to the end of `uses:` comment lines (e.g. `# v5with:`).
Also fix step-level structure issues where `run:` / `env:` were misaligned.

Affected workflows: ci, codeql, coderabbit-rate-limit-retry, docker-image,
generate-sdks, pr-path-guard, pr-test-build, release-drafter, sast-quick,
security-guard-hook-audit, alert-sync-issues, auto-merge, ci-rerun-flaky.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Copilot AI review requested due to automatic review settings May 7, 2026 02:54
@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 7, 2026

CodeAnt AI is reviewing your PR.


Thanks for using CodeAnt! 🎉

We're free for open-source projects. if you're enjoying it, help us grow by sharing.

Share on X ·
Reddit ·
LinkedIn

@gemini-code-assist
Copy link
Copy Markdown

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request enhances the project's CI/CD pipeline by integrating golangci-lint for automated code quality checks. Additionally, it updates the package configuration to pin the package manager version, ensuring a more predictable and reproducible development environment for all contributors.

Highlights

  • Code Quality Enforcement: Introduced golangci-lint configuration to standardize and improve Go code quality across the project.
  • Environment Consistency: Explicitly defined the package manager as npm@10 in package.json to ensure consistent dependency management.
Ignored Files
  • Ignored by pattern: .github/workflows/** (27)
    • .github/workflows/alert-sync-issues.yml
    • .github/workflows/auto-merge.yml
    • .github/workflows/ci-rerun-flaky.yml
    • .github/workflows/ci.yml
    • .github/workflows/codeql.yml
    • .github/workflows/coderabbit-rate-limit-retry.yml
    • .github/workflows/docker-image.yml
    • .github/workflows/docs.yml
    • .github/workflows/generate-sdks.yaml
    • .github/workflows/journey-gate.yml
    • .github/workflows/lint-test.yml
    • .github/workflows/pages-deploy.yml
    • .github/workflows/policy-gate.yml
    • .github/workflows/pr-path-guard.yml
    • .github/workflows/pr-test-build.yml
    • .github/workflows/quality-gate.yml
    • .github/workflows/release-batch.yaml
    • .github/workflows/release-drafter.yml
    • .github/workflows/release.yaml
    • .github/workflows/required-check-names-guard.yml
    • .github/workflows/sast-full.yml
    • .github/workflows/sast-quick.yml
    • .github/workflows/scorecard.yml
    • .github/workflows/security-guard-hook-audit.yml
    • .github/workflows/self-merge-gate.yml
    • .github/workflows/tag-automation.yml
    • .github/workflows/trufflehog.yml
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize the Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counterproductive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 7, 2026

Warning

Rate limit exceeded

@KooshaPari has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 20 minutes and 15 seconds before requesting another review.

To continue reviewing without waiting, purchase usage credits in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: d890e118-6fe1-4a38-b301-5a201f2a07c5

📥 Commits

Reviewing files that changed from the base of the PR and between b4f95c7 and 9f684c9.

📒 Files selected for processing (28)
  • .github/workflows/alert-sync-issues.yml
  • .github/workflows/auto-merge.yml
  • .github/workflows/ci-rerun-flaky.yml
  • .github/workflows/ci.yml
  • .github/workflows/codeql.yml
  • .github/workflows/coderabbit-rate-limit-retry.yml
  • .github/workflows/docker-image.yml
  • .github/workflows/docs.yml
  • .github/workflows/generate-sdks.yaml
  • .github/workflows/journey-gate.yml
  • .github/workflows/lint-test.yml
  • .github/workflows/pages-deploy.yml
  • .github/workflows/policy-gate.yml
  • .github/workflows/pr-path-guard.yml
  • .github/workflows/pr-test-build.yml
  • .github/workflows/quality-gate.yml
  • .github/workflows/release-batch.yaml
  • .github/workflows/release-drafter.yml
  • .github/workflows/release.yaml
  • .github/workflows/required-check-names-guard.yml
  • .github/workflows/sast-full.yml
  • .github/workflows/sast-quick.yml
  • .github/workflows/scorecard.yml
  • .github/workflows/security-guard-hook-audit.yml
  • .github/workflows/self-merge-gate.yml
  • .github/workflows/tag-automation.yml
  • .github/workflows/trufflehog.yml
  • package.json

Note

.coderabbit.yaml has unrecognized properties

CodeRabbit is using all valid settings from your configuration. Unrecognized properties (listed below) have been ignored and may indicate typos or deprecated fields that can be removed.

⚠️ Parsing warnings (1)
Validation error: Unrecognized key(s) in object: 'pre_merge_checks'
⚙️ Configuration instructions
  • Please see the configuration documentation for more information.
  • You can also validate your configuration using the online YAML validator.
  • If your editor has YAML language server enabled, you can add the path at the top of this file to enable auto-completion and validation: # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/add-golangci-lint

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.

❤️ Share

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

@codeant-ai codeant-ai Bot added the size:L This PR changes 100-499 lines, ignoring generated files label May 7, 2026
Comment on lines +18 to 29
- with:
fetch-depth: 0
- name: Detect pkg/llmproxy/translator changes
id: changed-files
uses: tj-actions/changed-files@48d8f15b2aaa3d255ca5af3eba4870f807ce6b3c # v45with:
uses: tj-actions/changed-files@48d8f15b2aaa3d255ca5af3eba4870f807ce6b3c # v45
with:
files: |
pkg/llmproxy/translator/**
- name: Fail when restricted paths change
if: steps.changed-files.outputs.any_changed == 'true' && !(startsWith(github.head_ref, 'feature/koosh-migrate') || startsWith(github.head_ref, 'feature/migrate-') || startsWith(github.head_ref, 'migrated/') || startsWith(github.head_ref, 'ci/fix-feature-koosh-migrate') || startsWith(github.head_ref, 'ci/fix-feature-migrate-') || startsWith(github.head_ref, 'ci/fix-migrated/') || startsWith(github.head_ref, 'ci/fix-feat-'))
run: |
- run: |
# Filter out whitelisted translator files (formatting-only and hotfix paths)
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔴 Architect Review — CRITICAL

The translator path guard job has structurally invalid steps: with: is an orphan step without a uses/run, and the "Fail when restricted paths change" step has only an if condition while the enforcement shell script has been moved into a separate, unnamed run step. This breaks the intended conditional execution and can cause workflow syntax errors or apply the guard unconditionally without the branch-based exemptions.

Suggestion: Attach with: to the checkout step and move the run: | shell script back under the named "Fail when restricted paths change" step together with its if: condition, then trigger a PR that touches pkg/llmproxy/translator/** to confirm the guard fails only on non-whitelisted branches and files.

Fix in Cursor | Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is an **Architect / Logical Review** comment left during a code review. These reviews are first-class, important findings — not optional suggestions. Do NOT dismiss this as a 'big architectural change' just because the title says architect review; most of these can be resolved with a small, localized fix once the intent is understood.

**Path:** .github/workflows/pr-path-guard.yml
**Line:** 18:29
**Comment:**
	*CRITICAL: The translator path guard job has structurally invalid steps: `with:` is an orphan step without a `uses`/`run`, and the "Fail when restricted paths change" step has only an `if` condition while the enforcement shell script has been moved into a separate, unnamed `run` step. This breaks the intended conditional execution and can cause workflow syntax errors or apply the guard unconditionally without the branch-based exemptions.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
If a suggested approach is provided above, use it as the authoritative instruction. If no explicit code suggestion is given, you MUST still draft and apply your own minimal, localized fix — do not punt back with 'no suggestion provided, review manually'. Keep the change as small as possible: add a guard clause, gate on a loading state, reorder an await, wrap in a conditional, etc. Do not refactor surrounding code or expand scope beyond the finding.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix

Comment on lines +89 to 92
uses: arduino/setup-task@{"message":"Not Found","documentation_url":"https://docs.github.com/rest/git/refs#get-a-reference","status":"404"} # v2
with:
version: 3.x
repo-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.

🔴 Architect Review — CRITICAL

The workflow uses an invalid action reference arduino/setup-task@{"message":"Not Found",...} for installing Task; this string is an API error payload, not a valid git ref, so every Task-based gate (quality-ci, quality-staged-check, fmt-check, test-smoke, etc.) will fail when the runner tries to resolve the action, preventing those quality checks from running.

Suggestion: Replace the placeholder with a valid pinned ref for arduino/setup-task (for example a stable tag or commit SHA) and add a quick task --version step so any future resolution failures surface clearly in CI.

Fix in Cursor | Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is an **Architect / Logical Review** comment left during a code review. These reviews are first-class, important findings — not optional suggestions. Do NOT dismiss this as a 'big architectural change' just because the title says architect review; most of these can be resolved with a small, localized fix once the intent is understood.

**Path:** .github/workflows/pr-test-build.yml
**Line:** 89:92
**Comment:**
	*CRITICAL: The workflow uses an invalid action reference `arduino/setup-task@{"message":"Not Found",...}` for installing Task; this string is an API error payload, not a valid git ref, so every Task-based gate (`quality-ci`, `quality-staged-check`, `fmt-check`, `test-smoke`, etc.) will fail when the runner tries to resolve the action, preventing those quality checks from running.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
If a suggested approach is provided above, use it as the authoritative instruction. If no explicit code suggestion is given, you MUST still draft and apply your own minimal, localized fix — do not punt back with 'no suggestion provided, review manually'. Keep the change as small as possible: add a guard clause, gate on a loading state, reorder an await, wrap in a conditional, etc. Do not refactor surrounding code or expand scope beyond the finding.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix

Comment on lines +173 to 174
title: "pass ? "CodeRabbit gate passed" : "CodeRabbit gate blocked","
summary,
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔴 Architect Review — CRITICAL

Inside the GitHub Script step, output.title is set to a malformed JavaScript string literal ("pass ? "CodeRabbit gate passed" : "CodeRabbit gate blocked","), which has unbalanced quotes and is syntactically invalid. This causes the github.rest.checks.create call to throw at runtime so the CodeRabbit gate check cannot be published.

Suggestion: Restore a valid expression for output.title (for example title: pass ? "CodeRabbit gate passed" : "CodeRabbit gate blocked",) and optionally assert that checks.create succeeds (e.g., by catching and failing on errors) to ensure the gate status is reliably reported.

Fix in Cursor | Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is an **Architect / Logical Review** comment left during a code review. These reviews are first-class, important findings — not optional suggestions. Do NOT dismiss this as a 'big architectural change' just because the title says architect review; most of these can be resolved with a small, localized fix once the intent is understood.

**Path:** .github/workflows/coderabbit-rate-limit-retry.yml
**Line:** 173:174
**Comment:**
	*CRITICAL: Inside the GitHub Script step, `output.title` is set to a malformed JavaScript string literal (`"pass ? "CodeRabbit gate passed" : "CodeRabbit gate blocked","`), which has unbalanced quotes and is syntactically invalid. This causes the `github.rest.checks.create` call to throw at runtime so the CodeRabbit gate check cannot be published.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
If a suggested approach is provided above, use it as the authoritative instruction. If no explicit code suggestion is given, you MUST still draft and apply your own minimal, localized fix — do not punt back with 'no suggestion provided, review manually'. Keep the change as small as possible: add a guard clause, gate on a loading state, reorder an await, wrap in a conditional, etc. Do not refactor surrounding code or expand scope beyond the finding.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix

- name: Checkout
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5@11bd71901bbe5b1630ceea73d27597364c9af683 # v4- name: Initialize CodeQL
uses: github/codeql-action/init@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4with:
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🔴 Architect Review — CRITICAL

The CodeQL workflow's analyze job has multiple step/job definitions merged into a single mapping: the "Checkout" and "Initialize CodeQL" actions are combined into one step with duplicate uses keys, and the skip-branch job configuration is partially inlined after the "Perform CodeQL Analysis" step. This breaks the intended job-level if logic and step structure, so the Go CodeQL analysis behavior for PRs/pushes is misconfigured.

Suggestion: Split checkout, CodeQL init, analysis, and the skip-branch variant into separate, well-formed jobs/steps (one uses per step, one if per job) and validate with act or a workflow linter that CodeQL runs for normal branches and is skipped only for the intended compatibility branch.

Fix in Cursor | Fix in VSCode Claude

(Use Cmd/Ctrl + Click for best experience)

Prompt for AI Agent 🤖
This is an **Architect / Logical Review** comment left during a code review. These reviews are first-class, important findings — not optional suggestions. Do NOT dismiss this as a 'big architectural change' just because the title says architect review; most of these can be resolved with a small, localized fix once the intent is understood.

**Path:** .github/workflows/codeql.yml
**Line:** 25:39
**Comment:**
	*CRITICAL: The CodeQL workflow's `analyze` job has multiple step/job definitions merged into a single mapping: the "Checkout" and "Initialize CodeQL" actions are combined into one step with duplicate `uses` keys, and the skip-branch job configuration is partially inlined after the "Perform CodeQL Analysis" step. This breaks the intended job-level `if` logic and step structure, so the Go CodeQL analysis behavior for PRs/pushes is misconfigured.

Validate the correctness of the flagged issue. If correct, How can I resolve this? If you propose a fix, implement it and please make it concise.
If a suggested approach is provided above, use it as the authoritative instruction. If no explicit code suggestion is given, you MUST still draft and apply your own minimal, localized fix — do not punt back with 'no suggestion provided, review manually'. Keep the change as small as possible: add a guard clause, gate on a loading state, reorder an await, wrap in a conditional, etc. Do not refactor surrounding code or expand scope beyond the finding.
Once fix is implemented, also check other comments on the same PR, and ask user if the user wants to fix the rest of the comments as well. if said yes, then fetch all the comments validate the correctness and implement a minimal fix

@codeant-ai
Copy link
Copy Markdown

codeant-ai Bot commented May 7, 2026

CodeAnt AI finished reviewing your PR.

Copy link
Copy Markdown

@gemini-code-assist gemini-code-assist Bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request adds the packageManager field to package.json. Feedback includes a recommendation to use a concrete version for npm to ensure Corepack compatibility, a note regarding a discrepancy between the PR description and the actual changes, and a reminder to synchronize the package-lock.json file.

Comment thread package.json
"oxlint-tsgolint": "^0.16.0"
}
},
"packageManager": "npm@10"
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

The packageManager field should specify a concrete version (e.g., npm@10.9.2) rather than just a major version (npm@10). Corepack, which is the primary consumer of this field, requires a specific version to ensure reproducibility and may fail to resolve the package manager if a range or major version is provided.

Suggested change
"packageManager": "npm@10"
"packageManager": "npm@10.9.2"

Comment thread package.json
"oxlint-tsgolint": "^0.16.0"
}
},
"packageManager": "npm@10"
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

medium

There is a discrepancy between the pull request title/description and the actual changes. The PR claims to add golangci-lint configuration and workflows, but the diff only shows the addition of the packageManager field to package.json. Please verify if the intended configuration files (such as .golangci.yml or GitHub Action workflows) were omitted from this commit.

Comment thread package.json
"oxlint-tsgolint": "^0.16.0"
}
},
"packageManager": "npm@10"
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

low

The package-lock.json file is currently out of sync as it does not include the packageManager field added here. Running npm install will update the lockfile to reflect this change and ensure environment consistency.

conclusion: pass ? "success" : "failure",
output: {
title: pass ? "CodeRabbit gate passed" : "CodeRabbit gate blocked",
title: "pass ? "CodeRabbit gate passed" : "CodeRabbit gate blocked","
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

JavaScript ternary expression corrupted into broken string literal

High Severity

The title field was changed from a valid JavaScript ternary expression pass ? "CodeRabbit gate passed" : "CodeRabbit gate blocked" into a malformed string "pass ? "CodeRabbit gate passed" : "CodeRabbit gate blocked",". The outer double quotes cause the inner double quotes to prematurely terminate the string, resulting in a JavaScript syntax error that will crash the publishGate function every time it runs.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit b00b205. Configure here.

uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5@11bd71901bbe5b1630ceea73d27597364c9af683 # v4
name: Initialize CodeQL
uses: github/codeql-action/init@95e58e9a2cdfd71adc6e0353d5c52f41a045d225 # v4
with:
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Checkout and CodeQL init merged into single step

High Severity

The Checkout step and Initialize CodeQL step have been merged into a single YAML mapping with duplicate name: and uses: keys. YAML uses the last value for duplicate keys, so only github/codeql-action/init runs — the actions/checkout step is silently dropped. CodeQL analysis will fail because no code is checked out.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit b00b205. Configure here.

Comment thread .github/workflows/docs.yml Outdated
fetch-depth: 0
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5with:
- uses: actions/setup-python@a26af69be951a213d495a4c3e4e4022e16d87065 # v5
- with:
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Action with: parameters split into separate empty steps

High Severity

Multiple with: blocks were converted into separate steps (prefixed with - ) instead of being properties of their parent action steps. For example, actions/checkout and actions/setup-python in the semgrep job each lose their with: config (like fetch-depth: 0 and python-version). The same issue affects the secrets job's checkout. These orphaned - with: steps will cause YAML parse errors.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit b00b205. Configure here.

steps:
- name: Checkout
uses: actions/checkout@34e114876b0b11c390a56381ad16ebd13914f8d5@11bd71901bbe5b1630ceea73d27597364c9af683 # v4- name: Set up Go
uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5with:
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Stop proxy run: separated from if: always() guard

Medium Severity

The "Stop proxy" step's run: block was split into a separate step (with - run:). The original step had name:, if: always(), and run: together — now the name: and if: always() are in an empty step, and the run: is in an unnamed step that won't inherit the if: always() condition. The proxy cleanup will be skipped when earlier steps fail, potentially leaking background processes. Same issue occurs in both provider-smoke-matrix and provider-smoke-matrix-cheapest jobs.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit b00b205. Configure here.

- name: Fail when restricted paths change
if: steps.changed-files.outputs.any_changed == 'true' && !(startsWith(github.head_ref, 'feature/koosh-migrate') || startsWith(github.head_ref, 'feature/migrate-') || startsWith(github.head_ref, 'migrated/') || startsWith(github.head_ref, 'ci/fix-feature-koosh-migrate') || startsWith(github.head_ref, 'ci/fix-feature-migrate-') || startsWith(github.head_ref, 'ci/fix-migrated/') || startsWith(github.head_ref, 'ci/fix-feat-'))
run: |
- run: |
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Path guard run: detached from conditional if: expression

High Severity

Two breakages in this workflow: (1) with: fetch-depth: 0 is split into its own step (- with:) separate from actions/checkout, so the checkout won't do a full fetch. (2) The run: block that checks for disallowed translator file changes is split from the step containing the if: condition, so the translator path guard script runs unconditionally on every push/PR, potentially failing CI even when no restricted files were changed.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit b00b205. Configure here.

- name: Build docs
working-directory: docs
run: |
- run: |
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Docs-build run: detached from working-directory setting

Medium Severity

The "Build docs" step's run: block was split into a separate step (- run:), detaching it from the working-directory: docs setting. The npm install and npm run docs:build commands will now execute in the repository root instead of the docs/ directory, causing them to fail because the docs package.json is not in the root.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit b00b205. Configure here.

branches: [main, master, develop]
schedule:
- cron: "0 2 * * *"
- cron: '17 * * * *'
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

SAST schedule changed from daily to hourly

Medium Severity

The SAST Full Analysis schedule cron was changed from "0 2 * * *" (daily at 2 AM) to '17 * * * *' (every hour at minute 17). This causes the full security analysis suite — including CodeQL, Trivy, Semgrep, and TruffleHog — to run 24 times more frequently than intended, wasting CI resources significantly.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit b00b205. Configure here.

Comment thread .github/workflows/docs.yml Outdated
branches: [main, master, develop]
pull_request:
branches: [main, master, develop]
branch_protection_rule:
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

OpenSSF Scorecard weekly schedule trigger silently removed

Medium Severity

The schedule trigger with its weekly cron ('17 3 * * 6') was removed entirely from the OpenSSF Scorecard workflow. The Scorecard is designed to run periodically to track security posture over time. Without scheduled runs, the scorecard score won't be updated during periods of inactivity, which could cause the project's OpenSSF badge to go stale or be lost.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit b00b205. Configure here.

Copy link
Copy Markdown

Copilot AI left a comment

Choose a reason for hiding this comment

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

Copilot encountered an error and was unable to review this pull request. You can try again by re-requesting a review.

…` lines (batch 2)

Fix broken YAML syntax where `with:` keywords were concatenated to `uses:`
comment lines (e.g. `# v4with:`). Also fix step structure issues where
`run:` / `env:` / `name:` prefixes were misaligned or missing.

Affected workflows: auto-merge, ci-rerun-flaky, docs, journey-gate,
pages-deploy, release-batch, release, sast-full, scorecard.

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
fi
- name: Install Task
uses: arduino/setup-task@{"message":"Not Found","documentation_url":"https://docs.github.com/rest/git/refs#get-a-reference","status":"404"} # v2with:
uses: arduino/setup-task@{"message":"Not Found","documentation_url":"https://docs.github.com/rest/git/refs#get-a-reference","status":"404"} # v2
fi
- name: Install Task
uses: arduino/setup-task@{"message":"Not Found","documentation_url":"https://docs.github.com/rest/git/refs#get-a-reference","status":"404"} # v2with:
uses: arduino/setup-task@{"message":"Not Found","documentation_url":"https://docs.github.com/rest/git/refs#get-a-reference","status":"404"} # v2
cache: true
- name: Install Task
uses: arduino/setup-task@{"message":"Not Found","documentation_url":"https://docs.github.com/rest/git/refs#get-a-reference","status":"404"} # v2with:
uses: arduino/setup-task@{"message":"Not Found","documentation_url":"https://docs.github.com/rest/git/refs#get-a-reference","status":"404"} # v2
cache: true
- name: Install Task
uses: arduino/setup-task@{"message":"Not Found","documentation_url":"https://docs.github.com/rest/git/refs#get-a-reference","status":"404"} # v2with:
uses: arduino/setup-task@{"message":"Not Found","documentation_url":"https://docs.github.com/rest/git/refs#get-a-reference","status":"404"} # v2
cache: true
- name: Install Task
uses: arduino/setup-task@{"message":"Not Found","documentation_url":"https://docs.github.com/rest/git/refs#get-a-reference","status":"404"} # v2with:
uses: arduino/setup-task@{"message":"Not Found","documentation_url":"https://docs.github.com/rest/git/refs#get-a-reference","status":"404"} # v2
@sonarqubecloud
Copy link
Copy Markdown

sonarqubecloud Bot commented May 7, 2026

Quality Gate Failed Quality Gate failed

Failed conditions
7 Security Hotspots
C Security Rating on New Code (required ≥ A)

See analysis details on SonarQube Cloud

Catch issues before they fail your Quality Gate with our IDE extension SonarQube for IDE

Copy link
Copy Markdown

@cursor cursor Bot left a comment

Choose a reason for hiding this comment

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

Cursor Bugbot has reviewed your changes and found 2 potential issues.

There are 12 total unresolved issues (including 10 from previous reviews).

Fix All in Cursor

Bugbot Autofix is ON, but it could not run because on-demand usage is turned off. To enable Bugbot Autofix, turn on on-demand usage and set a spend limit in the Cursor dashboard.

Reviewed by Cursor Bugbot for commit 9f684c9. Configure here.

- name: Discover manifests
id: discover
run: |
- run: |
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Discover step outputs lost due to step split

High Severity

The - run: | on line 108 creates a new step, separating the run: block from the id: discover on line 107. The discover step now has id but no run, while the manifest-finding logic runs in a nameless step whose outputs are invisible. Downstream steps referencing steps.discover.outputs.MANIFEST_LIST will get an empty value, breaking the entire journey gate pipeline. The same pattern on line 194 separates env:/run: from the if: condition on the Live verification step.

Additional Locations (1)
Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 9f684c9. Configure here.

- uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5with:
go-version: ">=1.26.0"
cache: true
- uses: actions/setup-go@40f1582b2485089dde7abd97c1529aa768e1baff # v5
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Release batch lost checkout depth and Go config

Medium Severity

The checkout step lost its with: fetch-depth: 0 and the setup-go step lost its with: block containing go-version: ">=1.26.0" and cache: true. The release batch tool now runs with a shallow clone (potentially missing tags needed for versioning) and uses whatever Go version happens to be on the runner instead of the required >=1.26.0.

Fix in Cursor Fix in Web

Reviewed by Cursor Bugbot for commit 9f684c9. Configure here.

@@ -166,7 +170,7 @@ jobs:
status: "completed",
conclusion: pass ? "success" : "failure",
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

CRITICAL: JavaScript syntax error - mismatched quotes in title string

The line has invalid JavaScript due to quote mismatch. It should be:

Suggested change
conclusion: pass ? "success" : "failure",
title: pass ? "CodeRabbit gate passed" : "CodeRabbit gate blocked",

@@ -166,7 +170,7 @@ jobs:
status: "completed",
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

CRITICAL: JavaScript syntax error - ternary expression incorrectly wrapped in quotes

The entire ternary expression has been wrapped in quotes, making it a string literal instead of executable code. This will cause a JavaScript syntax error.

Suggested change
status: "completed",
title: pass ? "CodeRabbit gate passed" : "CodeRabbit gate blocked",

@kilo-code-bot
Copy link
Copy Markdown

kilo-code-bot Bot commented May 7, 2026

Code Review Summary

Status: 2 Issues Found | Recommendation: Address before merge

Overview

Severity Count
CRITICAL 2
WARNING 0
SUGGESTION 0
Issue Details (click to expand)

CRITICAL

File Line Issue
.github/workflows/coderabbit-rate-limit-retry.yml 170 JavaScript syntax error - ternary expression incorrectly wrapped in quotes
.github/workflows/coderabbit-rate-limit-retry.yml 171 JavaScript syntax error - mismatched quotes in title string
Files Reviewed (9 files)
  • .github/workflows/auto-merge.yml
  • .github/workflows/ci-rerun-flaky.yml
  • .github/workflows/docs.yml
  • .github/workflows/journey-gate.yml
  • .github/workflows/pages-deploy.yml
  • .github/workflows/release-batch.yaml
  • .github/workflows/release.yaml
  • .github/workflows/sast-full.yml
  • .github/workflows/scorecard.yml

Reviewed by nemotron-3-super-120b-a12b-20230311:free · 497,691 tokens

conclusion: pass ? "success" : "failure",
output: {
title: pass ? "CodeRabbit gate passed" : "CodeRabbit gate blocked",
title: "pass ? "CodeRabbit gate passed" : "CodeRabbit gate blocked","
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

CRITICAL: JavaScript syntax error - ternary expression incorrectly wrapped in quotes

The entire ternary expression has been wrapped in quotes, making it a string literal instead of executable code. This will cause a JavaScript syntax error.

Suggested change
title: "pass ? "CodeRabbit gate passed" : "CodeRabbit gate blocked","
title: pass ? "CodeRabbit gate passed" : "CodeRabbit gate blocked",

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

Labels

size:L This PR changes 100-499 lines, ignoring generated files

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants