Support --pull-changes-to-fork option for upstream sync #31
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🎯 Summary
This PR implements the
--pull-changes-to-fork
option requested in issue #16, allowing users to synchronize their forks with the original (upstream) repositories.📋 Issue Reference
Fixes #16
✨ What's New
New CLI Option:
--pull-changes-to-fork
upstream
remote to point to the parent repository🔧 Implementation Details
Core Changes
getOrganizationRepos()
andgetUserRepos()
functions to include fork metadata (fork
,parent
properties)syncForkWithUpstream()
andsyncWithUpstreamBranch()
for upstream synchronizationCLI Integration
--pull-changes-to-fork
boolean option with proper validationExample Usage
🧪 Testing
test-pull-changes-to-fork-cli.mjs
test-all.mjs
)🛡️ Safety Features
main
andmaster
as default branches🎨 User Experience
The new option integrates seamlessly with the existing status display system:
🔄 Workflow Integration
This feature works alongside existing options:
--ssh
for SSH URL usage--threads
for concurrent processing--live-updates
for real-time status--pull-from-default
and--switch-to-default
This implementation provides a complete solution for fork synchronization while maintaining the tool's existing patterns and safety standards.