Conversation
|
Note Reviews pausedIt 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 Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughAdded a new GitHub Actions composite action Changes
Sequence Diagram(s)sequenceDiagram
autonumber
participant PR as "Pull Request"
participant GH as "GitHub Actions Runner"
participant Guard as "ci-guard action"
participant Jobs as "Downstream Jobs"
PR->>GH: Event (push / pull_request)
GH->>Guard: Run guard job/step (with GH_TOKEN)
Guard->>GH: gh pr view -> fetch PR title
alt PR title contains "skip-ci" (case-insensitive)
Guard->>GH: gh run cancel (cancel workflow)
GH->>Jobs: Cancel or skip downstream jobs
else PR is draft
Guard-->>GH: exit (job-level if may prevent execution)
GH->>Jobs: Skip jobs due to job-level condition
else allowed
Guard-->>GH: exit successfully
GH->>Jobs: Start jobs that `need` guard
end
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Poem
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 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: 1
🤖 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/smoke-checks.yml:
- Around line 29-37: The guard job currently runs gh run cancel but doesn't
declare the required permission; update the guard job definition (job name
"guard") to include a permissions block granting actions: write so the gh run
cancel command can succeed (add permissions: actions: write under the guard
job). Ensure the permissions stanza is set at the job level not just workflow
level so repositories with restrictive GITHUB_TOKEN defaults allow the
cancellation step to run.
🪄 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: defaults
Review profile: CHILL
Plan: Pro
Run ID: 8be6893c-3d13-48ac-bc34-74853dedb50d
📒 Files selected for processing (1)
.github/workflows/smoke-checks.yml
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 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/sdk-size-metrics.yml:
- Line 23: The workflow skips draft PRs that are later marked ready because the
pull_request trigger only uses default types; update the workflow's pull_request
trigger to explicitly include ready_for_review (e.g., add "ready_for_review" to
the types list alongside opened, synchronize, reopened) so the condition if:
github.event_name != 'pull_request' ||
(!contains(github.event.pull_request.title, 'skip-ci') &&
github.event.pull_request.draft == false) will evaluate for PRs that transition
from draft to ready and metrics will be collected; locate the pull_request
trigger block and add ready_for_review to the types array.
🪄 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: defaults
Review profile: CHILL
Plan: Pro
Run ID: af288a7f-9e92-40e3-ad31-aa6f51b4b188
📒 Files selected for processing (3)
.github/workflows/sdk-performance-metrics.yml.github/workflows/sdk-size-metrics.yml.github/workflows/smoke-checks.yml
✅ Files skipped from review due to trivial changes (1)
- .github/workflows/smoke-checks.yml
There was a problem hiding this comment.
🧹 Nitpick comments (2)
.github/workflows/smoke-checks.yml (2)
43-44: Optional: Simplify PR title access using context variable.The PR title is available directly via
${{ github.event.pull_request.title }}, which would eliminate the API call and the need forpull-requests: readpermission:- PR_TITLE=$(gh api "repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}" --jq .title) - if printf '%s' "$PR_TITLE" | grep -Fqi 'skip-ci'; then + if printf '%s' "${{ github.event.pull_request.title }}" | grep -Fqi 'skip-ci'; thenHowever, the current approach fetches the current title, which handles the case where the title is edited after the workflow starts. If that behavior is intentional, ignore this suggestion.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/workflows/smoke-checks.yml around lines 43 - 44, The workflow unnecessarily calls the GitHub API to populate PR_TITLE when the pull request title is already available via the context; replace the command that sets PR_TITLE using gh api with a direct assignment from the workflow context (use `${{ github.event.pull_request.title }}`) so you can remove the `pull-requests: read` permission, unless you intentionally need the live-updated title after workflow start — in that case keep the `gh api` invocation and retain the permission.
29-46: Consider adding draft PR handling for consistency with other workflows.Other workflows (e.g.,
sdk-size-metrics.yml,sdk-performance-metrics.yml) also skip execution for draft PRs using the condition:if: github.event_name != 'pull_request' || (!contains(github.event.pull_request.title, 'skip-ci') && github.event.pull_request.draft == false)If draft PRs should also skip CI in this workflow, the check could be extended:
Suggested enhancement
- name: Check run: | if [ "${{ github.event_name }}" != "pull_request" ]; then exit 0 fi + if [ "${{ github.event.pull_request.draft }}" = "true" ]; then + gh run cancel "${{ github.run_id }}" --repo "${{ github.repository }}" + exit 0 + fi PR_TITLE=$(gh api "repos/${{ github.repository }}/pulls/${{ github.event.pull_request.number }}" --jq .title) if printf '%s' "$PR_TITLE" | grep -Fqi 'skip-ci'; then gh run cancel "${{ github.run_id }}" --repo "${{ github.repository }}" fi🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In @.github/workflows/smoke-checks.yml around lines 29 - 46, The Check step currently only inspects PR_TITLE and 'skip-ci' but doesn't handle draft PRs; update the guard logic in the "Check" step (the shell block that defines PR_TITLE) to also fetch and inspect the pull request's draft status (github.event.pull_request.draft) or use gh api to retrieve the PR JSON and check the "draft" field, and exit/cancel the run when the PR is a draft (similar to the pattern used in other workflows) so that the Check step skips/cancels the run for draft PRs as well as those containing 'skip-ci'.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Nitpick comments:
In @.github/workflows/smoke-checks.yml:
- Around line 43-44: The workflow unnecessarily calls the GitHub API to populate
PR_TITLE when the pull request title is already available via the context;
replace the command that sets PR_TITLE using gh api with a direct assignment
from the workflow context (use `${{ github.event.pull_request.title }}`) so you
can remove the `pull-requests: read` permission, unless you intentionally need
the live-updated title after workflow start — in that case keep the `gh api`
invocation and retain the permission.
- Around line 29-46: The Check step currently only inspects PR_TITLE and
'skip-ci' but doesn't handle draft PRs; update the guard logic in the "Check"
step (the shell block that defines PR_TITLE) to also fetch and inspect the pull
request's draft status (github.event.pull_request.draft) or use gh api to
retrieve the PR JSON and check the "draft" field, and exit/cancel the run when
the PR is a draft (similar to the pattern used in other workflows) so that the
Check step skips/cancels the run for draft PRs as well as those containing
'skip-ci'.
ℹ️ Review info
⚙️ Run configuration
Configuration used: defaults
Review profile: CHILL
Plan: Pro
Run ID: 9681b516-c785-4667-9335-6d330fe2d988
📒 Files selected for processing (1)
.github/workflows/smoke-checks.yml
There was a problem hiding this comment.
Actionable comments posted: 1
🤖 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/smoke-checks.yml:
- Around line 35-38: The workflow fails because the job invokes the local
composite action ./.github/actions/ci-guard before the repository is checked
out; add a step that runs actions/checkout (e.g., uses: actions/checkout@v4)
immediately before the step that uses ./.github/actions/ci-guard so the local
action's action.yml and files are available to the runner.
🪄 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: defaults
Review profile: CHILL
Plan: Pro
Run ID: 1c61fe6d-0e8a-4b35-8859-6e22e7f03184
📒 Files selected for processing (4)
.github/actions/ci-guard/action.yml.github/workflows/sdk-performance-metrics.yml.github/workflows/sdk-size-metrics.yml.github/workflows/smoke-checks.yml
🚧 Files skipped from review as they are similar to previous changes (2)
- .github/workflows/sdk-size-metrics.yml
- .github/workflows/sdk-performance-metrics.yml
SDK Size
|
Public Interface🚀 No changes affecting the public interface. |
|



🔗 Issue Links
Resolve https://linear.app/stream/issue/IOS-1555
🎯 Goal
Skip all CI checks if the PR title contains
skip-ci📜 Summary
Everything works as before. Only if a PR contains
skip-ciin title, the checks will be skipped. If you deleteskip-cifrom title and restart cancelled jobs, they will run.Summary by CodeRabbit