| name | autonomous-github-sync |
| description | Autonomous GitHub commit and push operations using Google Drive as an intermediary. Use when you need to commit and push code changes to the user's GitHub repository without manual intervention. Works by syncing files through Google Drive to the user's local machine, then committing and pushing automatically. |
| license | Complete terms in LICENSE.txt |
Autonomous GitHub Sync
Enable Manus to commit and push changes to GitHub repositories without requiring manual user intervention.
When to Use This Skill
Use this skill when:
- You've made changes to files in a repository and need to push them to GitHub
- The user requests autonomous git operations
- You want to avoid the manual "download patch → apply → push" workflow
- The user has Google Drive integration enabled
How It Works
The sync workflow uses Google Drive as a bridge between the Manus sandbox and the user's local machine:
- Manus uploads changed files to Google Drive
- User's local machine (via script) downloads files from Google Drive
- Script copies files to the local repository
- Script commits and pushes to GitHub automatically
Prerequisites
- User must have Google Drive integration enabled in Manus
- User must have the sync script running on their local machine
- User's local repository must be configured with GitHub authentication
Usage Pattern
Step 1: Upload Files to Google Drive
After making changes to repository files in the sandbox, upload them to a Google Drive folder:
mkdir -p /tmp/repo-sync
cp /path/to/changed/file1.js /tmp/repo-sync/
cp /path/to/changed/file2.html /tmp/repo-sync/
rclone copy /tmp/repo-sync manus_google_drive:repo-sync-$(date +%s) --config /home/ubuntu/.gdrive-rclone.ini
rclone lsd manus_google_drive: --config /home/ubuntu/.gdrive-rclone.ini | grep repo-sync
Step 2: Notify User to Run Sync Script
Tell the user to run the sync script on their local machine:
python3 ~/gdrive_to_repo_sync.py <gdrive_folder_name> <local_repo_path> "<commit_message>"
Example:
python3 ~/gdrive_to_repo_sync.py repo-sync-1707543210 /Users/username/my-repo "feat: add demographic data collection"
Step 3: Verify Push
Check GitHub or ask the user to confirm the push was successful.
Alternative: Direct Patch Method
If Google Drive sync isn't set up, fall back to the patch method:
cd /path/to/sandbox/repo
git format-patch origin/main --stdout > /tmp/changes.patch
rclone copy /tmp/changes.patch manus_google_drive: --config /home/ubuntu/.gdrive-rclone.ini
rclone link manus_google_drive:changes.patch --config /home/ubuntu/.gdrive-rclone.ini
Then instruct the user:
cd /path/to/local/repo
git am < ~/Downloads/changes.patch
git push origin main
Setup Instructions for User
To enable autonomous sync, the user needs to:
-
Copy the sync script to their home directory:
cp /home/ubuntu/skills/autonomous-github-sync/scripts/gdrive_to_repo_sync.py ~/
-
Install rclone on their local machine (if not already installed):
brew install rclone
sudo apt install rclone
-
Configure rclone with the same Google Drive account:
rclone config
-
Test the sync:
python3 ~/gdrive_to_repo_sync.py test-folder /path/to/repo "test commit"
Troubleshooting
"Repository not found" when pushing:
- User's local machine needs GitHub authentication configured
- Check:
git remote -v in the local repository
- Fix:
gh auth login or configure SSH keys
"rclone not found":
- User needs to install rclone on their local machine
- See setup instructions above
Files not syncing:
- Verify Google Drive folder name is correct
- Check rclone config on user's machine matches Manus config
- Ensure user has permission to access the Google Drive folder
Best Practices
- Use descriptive commit messages - Include what changed and why
- Group related changes - Don't sync every single file change individually
- Verify before pushing - Check that files copied correctly
- Clean up Google Drive - Remove old sync folders after successful push
- Test with small changes first - Verify the workflow before large updates
Limitations
- Requires user to run script manually (can't be fully autonomous without local agent)
- Depends on Google Drive as intermediary (adds latency)
- User must have rclone configured on local machine
- Works best for single-user workflows (not team collaboration)
Future Improvements
- Webhook-based automatic sync when files appear in Google Drive
- Direct GitHub API integration (requires GitHub App or PAT)
- Support for multiple repositories
- Automatic conflict resolution