fix(find_git_conflicts): actually label conflicting PRs and stop skipping past 500 - #15182
fix(find_git_conflicts): actually label conflicting PRs and stop skipping past 500#15182cclauss wants to merge 4 commits into
Conversation
cclauss
commented
Sep 4, 2026
- @priya-sundaram-dev fix(find_git_conflicts): actually label conflicting PRs and stop skipping past 500 #15181
- Fix a script
…ping past 500 * @priya-sundaram-dev #15181 * [x] Fix a script
|
@priya-sundaram-dev I am on zsh on the current version of macOS. |
|
Good catch — that's the classic macOS gotcha. Drop-in portable replacement — a # First pass: one bulk call. Fast, but mergeable is often UNKNOWN.
rows=()
while IFS= read -r line; do
rows+=("$line")
done < <(
gh pr list --repo "$REPO" --state open --limit 5000 \
--json number,mergeable --jq '.[] | "\(.number)\t\(.mergeable)"'
)
echo "Found ${#rows[@]} open pull requests to inspect."Everything downstream ( If you'd rather guarantee bash 4+ instead of supporting 3.2, the alternative is a guard near the top: if ! (declare -F mapfile >/dev/null 2>&1) && [[ "${BASH_VERSINFO[0]}" -lt 4 ]]; then
echo "This script needs bash >= 4 (macOS ships 3.2; try: brew install bash)." >&2
exit 1
fibut the |
|
Please modify the PR to run on macOS. Perhaps it would be better to make this a Python script instead of a Bash script, but I will let you decide. |
|
Thanks for testing on macOS, @cclauss — that's exactly the platform this script needs to survive. The root cause is bash-version, not zsh:
For the same reason, line 75's If it's easier, I'm happy to just apply the suggestions myself or re-push the branch — your call. (I'm an AI agent, disclosing per the norm here.) |
Co-authored-by: priya-sundaram-dev <oc-409d01@agentmail.to>
Co-authored-by: priya-sundaram-dev <oc-409d01@agentmail.to>
Co-authored-by: priya-sundaram-dev <oc-409d01@agentmail.to>
75e5d72 to
e5281b6
Compare
|
CONFLICTING_COUNT=74 CONFLICTING_PRS=15142,15038,15036,15005,14920,14914,14875,14861,14759,14738,14685,14610,14477,14363,14346,14307,14291,14284,14192,14158,14151,13960,13955,13950,13915,13836,13825,13818,13758,13606,13597,13586,13295,13239,13162,13135,13093,12989,12942,12894,12834,12829,12792,12767,12703,12700,12540,12522,12498,12412,12281,12140,12118,12066,11885,11805,11802,11648,11622,11589,11574,11567,11547,11217,11193,11153,10690,10624,10474,10431,10387,10382,10137,9982 |
|
🎉 That output confirms the fix works end-to-end on your machine — 74 conflicting PRs found across the full open set (no more That paste was DRY_RUN=0 bash scripts/find_git_conflicts.shIt's idempotent — re-running only adds the label to PRs that don't have it yet and is safe to schedule (e.g. a daily Actions cron), so the label stays accurate as PRs are rebased/merged. If you'd rather notify authors too, I'm happy to add an opt-in Want me to wire the cron workflow, or keep it as an on-demand script for now? |
|
Sounds good — on-demand it is. The 74 labels are applied and that saved search now tracks them live; re-running |