ci: auto-label conflicting PRs with cc:rebase on main push (#2587)
## Summary
- Adds a new GitHub Actions workflow that runs on every push to `main`
- Checks all open, non-draft PRs by `wwwillchen` and `wwwillchen-bot`
for merge conflicts
- Automatically adds the `cc:rebase` label to conflicting PRs, which
triggers the existing `claude-rebase` workflow to auto-rebase them
## Test plan
- [ ] Push to main and verify the workflow runs
- [ ] Confirm PRs with merge conflicts get the `cc:rebase` label added
- [ ] Confirm PRs that are already mergeable are skipped
- [ ] Confirm PRs with existing `cc:rebase` or `cc:rebasing` labels are
not re-labeled
🤖 Generated with [Claude Code](https://claude.com/claude-code)
<!-- devin-review-badge-begin -->
---
<a href="https://app.devin.ai/review/dyad-sh/dyad/pull/2587"
target="_blank">
<picture>
<source media="(prefers-color-scheme: dark)"
srcset="https://static.devin.ai/assets/gh-open-in-devin-review-dark.svg?v=1">
<img
src="https://static.devin.ai/assets/gh-open-in-devin-review-light.svg?v=1"
alt="Open with Devin">
</picture>
</a>
<!-- devin-review-badge-end -->
<!-- CURSOR_SUMMARY -->
---
> [!NOTE]
> **Low Risk**
> CI-only change that adds an automated labeling workflow; main risk is
unintended label churn or extra API usage, not production code impact.
>
> **Overview**
> Adds a new GitHub Actions workflow (`label-rebase-prs.yml`) that runs
on every push to `main` and iterates through open PRs from
`wwwillchen`/`wwwillchen-bot`, skipping drafts.
>
> For PRs whose `mergeable_state` is `dirty`, it auto-applies the
`cc:rebase` label (with retries when mergeability is initially `null`)
while avoiding PRs already labeled `cc:rebase`, `cc:rebasing`, or
`cc:rebase-failed`, enabling the existing `cc:rebase`-triggered rebase
automation to kick in.
>
> <sup>Written by [Cursor
Bugbot](https://cursor.com/dashboard?tab=bugbot) for commit
6bb04a1103190000f1aa4e9d71c4bea7def321c6. This will update automatically
on new commits. Configure
[here](https://cursor.com/dashboard?tab=bugbot).</sup>
<!-- /CURSOR_SUMMARY -->
<!-- This is an auto-generated description by cubic. -->
---
## Summary by cubic
Adds a workflow that runs on every push to main and auto-labels
conflicting PRs with cc:rebase to trigger the existing auto-rebase job.
Reduces manual rebase work and keeps bot/author PRs up to date.
- **New Features**
- Runs on push to main; scans open, non-draft PRs by wwwillchen and
wwwillchen-bot.
- Detects conflicts via mergeable_state: 'dirty' and adds cc:rebase;
skips PRs already labeled cc:rebase, cc:rebasing, or cc:rebase-failed.
- Retries mergeability up to 3 times with exponential backoff; uses a
concurrency group and per-PR try/catch to avoid duplicate runs and job
aborts.
<sup>Written for commit 6bb04a1103190000f1aa4e9d71c4bea7def321c6.
Summary will update on new commits.</sup>
<!-- End of auto-generated description by cubic. -->
---------
Co-authored-by:
Claude Opus 4.6 <noreply@anthropic.com>
正在显示
请
注册
或者
登录
后发表评论