Repository navigation
fix(dev-lead): grant statuses:read + centralise concurrency - #231
Conversation
1. statuses:read — required by the reusable workflow since #435; without it the @main-pinned caller fails with startup_failure. 2. Remove the per-repo concurrency block — the repo-wide 'dev-lead' group was cancelling issue pickups (7/7 issues-event runs cancelled). Concurrency is now centralised in dev-lead-reusable.yml with per-issue/per-PR lanes. Refs combsmith/.github#402 Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Warning Review limit reached
More reviews will be available in 27 minutes and 22 seconds. Learn how PR review limits work. Your organization has run out of usage credits. Purchase more in the billing tab. ⌛ How to resolve this issue?After more reviews become available, a review can be triggered using the 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 include higher PR review limits than trial, open-source, and free plans. In all cases, reviews become available again over time. During sustained high-volume PR review activity, CodeRabbit may temporarily slow when the next review becomes available. Please see our Fair Usage Limits Policy for further information. ℹ️ Review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
✨ 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 |
|
Note Gemini is unable to generate a review for this pull request due to the file types involved not being currently supported. |
|
Dev-Lead — review-changes (no-changes)No changes were needed for this PR. |
There was a problem hiding this comment.
Pull request overview
This PR updates the dev-lead workflow stub to align with the reusable workflow’s current permission requirements and to avoid repository-wide concurrency behavior that was cancelling issues-event pickups. The intent is to keep concurrency logic centralized in dev-lead-reusable.yml while ensuring the caller grants the permissions the reusable workflow now needs.
Changes:
- Removed the repo-local
concurrency:block from.github/workflows/dev-lead.ymlso concurrency is controlled centrally by the reusable workflow. - Added
statuses: readto the calling job’s permissions to satisfy the reusable workflow’s requirements (per PR description / referenced change since #435). - Added an inline comment explaining the concurrency centralization rationale and reference.
donpetry-bot
left a comment
There was a problem hiding this comment.
Automated review — APPROVED ✓
Risk: LOW
Reviewed commit: 357d96c7c1b3bf2071163cac3127050e2a7911aa
Review mode: triage-approved (single reviewer)
Summary
This is a small, contained CI/CD alignment fix to .github/workflows/dev-lead.yml (+4 / -9, single file):
- Grants
statuses: readto the caller — the read-only permission the reusabledev-lead-reusable.ymlhas required since #435; without it the@main-pinned caller fails withstartup_failure. - Removes the repo-local
concurrency:block, since concurrency is now centralised in the reusable workflow with per-issue / per-PR lanes (soissues-event pickups are no longer cancelled by the repo-wide'dev-lead'group).
The replacement is a clear inline comment pointing to petry-projects/.github#402 and the reusable workflow.
Linked issue analysis
No issue is auto-closed by this PR. The description references petry-projects/.github#402 (the umbrella concurrency/permission alignment work) and PR #230 (the stuck PR to be re-triggered after merge). The stated motivation — 7/7 issues-event runs cancelled by the repo-wide concurrency group + reusable workflow requiring statuses: read since #435 — is internally consistent with the diff.
Findings
Security
statuses: readis a minimum read-only scope; no expansion of write permissions. The job-levelpermissions:block remains tightly scoped (contents: read,pull-requests: write,issues: write,actions: read,checks: read,statuses: read). The top-levelpermissions: {}default-deny is preserved.- No new
run:blocks, no script-injection-prone${{ github.event.* }}interpolations introduced. The deleted concurrency expression usedgithub.event.check_run.head_sha, which only flowed into agroup:name (not a shell), and the expression is gone entirely. - No secrets, env, or workflow_call inputs changed.
Correctness
- Centralising concurrency in the reusable workflow is the right fix for the cancellation pattern described (a single
'dev-lead'group across event types will cascade-cancel). Removing the caller-side block prevents the caller from re-introducing the same drift. - The
statuses: readaddition matches the stated reusable-workflow requirement and aligns with peer callers per the PR description.
Maintainability
- The replacement comment clearly states why the caller no longer owns concurrency and links to the tracking issue — good for the next person debugging a queued/cancelled run.
- Trailing inline comment on
statuses: readdocuments the cross-repo coupling to #435.
No blocking issues.
CI status
All required checks green: CI / Lint, CI / Format, CI / Secret scan (gitleaks), CodeQL / Analyze (actions), SonarCloud (Quality Gate passed, 0 new issues), AgentShield, dev-lead / dispatch, pr-auto-review / check-and-dispatch, dependency-audit / Detect ecosystems. Skipped checks are language-specific audits not applicable to a YAML-only change. No failing checks. CodeRabbit was rate-limited (not a failure); Gemini doesn't review this file type; Copilot left an informational overview only.
Reviewed automatically by the PR-review agent (claude-opus-4-7). Reply if you need a human review.
CI Failure: SonarCloud Code AnalysisStep: SonarCloud Quality Gate SonarCloud failed to complete analysis on this PR, which only modifies Suggested fix: Re-run the SonarCloud analysis job via |



Two fixes:
statuses: read— required by the reusable workflow since [Fleet Monitor] petry-projects/ContentTwin — .github/workflows/dev-lead.yml #435; without it the@main-pinned caller fails withstartup_failure.'dev-lead'group cancelled issue pickups (7/7issues-event runs cancelled). Concurrency is now centralised indev-lead-reusable.ymlwith per-issue/per-PR lanes (fix(dev-lead): per-issue/per-PR concurrency lanes so issue pickups aren't cancelled .github-private#450).Stuck PR to re-trigger after merge: #230. Refs combsmith/.github#402.
🤖 Generated with Claude Code