• Will Chen's avatar
    ci: auto-label conflicting PRs with cc:rebase on main push (#2587) · 0f8ee17d
    Will Chen 提交于
    ## 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: 's avatarClaude Opus 4.6 <noreply@anthropic.com>
    0f8ee17d
名称
最后提交
最后更新
.claude 正在载入提交数据...
.cursor/rules 正在载入提交数据...
.devcontainer 正在载入提交数据...
.github 正在载入提交数据...
.husky 正在载入提交数据...
.storybook 正在载入提交数据...
assets 正在载入提交数据...
docs 正在载入提交数据...
drizzle 正在载入提交数据...
e2e-tests 正在载入提交数据...
makers 正在载入提交数据...
packages/@dyad-sh 正在载入提交数据...
rules 正在载入提交数据...
scaffold 正在载入提交数据...
scripts 正在载入提交数据...
shared 正在载入提交数据...
src 正在载入提交数据...
testing 正在载入提交数据...
tools 正在载入提交数据...
worker 正在载入提交数据...
workers/tsc 正在载入提交数据...
.cursorignore 正在载入提交数据...
.env.example 正在载入提交数据...
.eslintrc.json 正在载入提交数据...
.gitattributes 正在载入提交数据...
.gitignore 正在载入提交数据...
.oxfmtrc.json 正在载入提交数据...
.oxlintrc.json 正在载入提交数据...
.prettierignore 正在载入提交数据...
.prettierrc 正在载入提交数据...
AGENTS.md 正在载入提交数据...
CLA.md 正在载入提交数据...
CLAUDE.md 正在载入提交数据...
CONTRIBUTING.md 正在载入提交数据...
LICENSE 正在载入提交数据...
README.md 正在载入提交数据...
SECURITY.md 正在载入提交数据...
biome.json 正在载入提交数据...
components.json 正在载入提交数据...
drizzle.config.ts 正在载入提交数据...
forge.config.ts 正在载入提交数据...
forge.env.d.ts 正在载入提交数据...
index.html 正在载入提交数据...
lint-staged.config.js 正在载入提交数据...
merge.config.ts 正在载入提交数据...
package-lock.json 正在载入提交数据...
package.json 正在载入提交数据...
playwright.config.ts 正在载入提交数据...
tsconfig.app.json 正在载入提交数据...
tsconfig.json 正在载入提交数据...
tsconfig.node.json 正在载入提交数据...
vite.main.config.mts 正在载入提交数据...
vite.preload.config.mts 正在载入提交数据...
vite.renderer.config.mts 正在载入提交数据...
vite.worker.config.mts 正在载入提交数据...
vitest.config.ts 正在载入提交数据...
windowsSign.ts 正在载入提交数据...