Overview
Synapse uses GitHub as the source of truth for your generated extensions. Every generation creates a commit to your personal repository, triggering automatic deployment via Fly.io.Benefits
Version Control
Complete history of all generations
- Git commit per generation
- Easy rollback
- Compare versions
- Branch management
Collaboration
Work with teams
- Share repositories
- Code reviews
- Pull requests
- CI/CD integration
Automatic Deploy
Push triggers deployment
- No manual steps
- Fly.io integration
- Instant updates
- Build logs
Backup & Recovery
Code is safe
- Remote backup
- Disaster recovery
- Clone anywhere
- Multi-environment
Setup Process
1
Generate GitHub Token
Create a Personal Access Token:
- Go to GitHub Settings → Developer settings → Personal access tokens
- Click “Generate new token (classic)”
- Name it “Synapse Deployment”
- Select scopes:
- ✅
repo(Full control of private repositories) - ✅
workflow(Update GitHub Action workflows)
- ✅
- Click “Generate token”
- Copy the token (you won’t see it again!)
2
Add Token to Synapse
Configure in your dashboard:
- Go to Settings → Integrations
- Find GitHub section
- Paste your Personal Access Token
- Click “Connect GitHub”
- Verify connection succeeds
3
Repository Created
Synapse automatically creates:
- Repository:
user-{userId}/synapse-extensions - Initial commit with config files
- GitHub Actions workflow
- Branch protection (optional)
4
Test Generation
Generate an extension to verify:
- Create any extension
- Check GitHub repository
- Verify commit appears
- Confirm deployment triggers
Repository Structure
Your generated repository:GitHub Actions Workflow
Automatic deployment workflow:Branch Strategy
- Per-Generation Branches
- Main Branch
- Feature Branches
Default: Each generation gets its own branchBenefits:
- Isolated testing
- Easy comparison
- Independent deployment
- Clean rollback
Commit Messages
Synapse uses conventional commit format:Managing Your Repository
Clone Repository
Clone Repository
Work on your extensions locally:
Manual Edits
Manual Edits
Make custom changes:
Rollback
Rollback
Revert to previous version:
Compare Versions
Compare Versions
See what changed:
GitHub Secrets
Required secrets (automatically configured by Synapse):| Secret | Purpose | Example |
|---|---|---|
FLY_API_TOKEN | Fly.io API authentication | rwy_xxx... |
FLY_APP_NAME | Target Fly.io service | srv_xxx... |
SHOPIFY_CLI_PARTNERS_TOKEN | Shopify Partners API | shppa_xxx... |
SHOPIFY_CLIENT_ID | App client ID | abc123... |
SHOPIFY_CLIENT_SECRET | App client secret | xyz789... |
Advanced Configuration
- Custom Workflows
- Branch Protection
- Multiple Environments
Add your own GitHub Actions:
Troubleshooting
Push Failed
Push Failed
Error:
remote: Permission to user-xxx/synapse-extensions.git deniedCauses:- GitHub token expired
- Insufficient permissions
- Repository doesn’t exist
- Regenerate GitHub token
- Verify
repoandworkflowscopes - Check repository exists
- Re-add token in Synapse settings
Workflow Not Running
Workflow Not Running
Error: GitHub Actions workflow doesn’t triggerCauses:
- Workflow disabled
- Branch not matching pattern
- Secrets missing
- Check Actions tab in GitHub
- Enable workflow if disabled
- Verify branch name matches
**pattern - Confirm secrets are set
Merge Conflicts
Merge Conflicts
Error: Cannot merge generation branchesCauses:
- Multiple generations modify same file
- Manual edits conflict with generations
Security Best Practices
Token Security
Keep tokens safe:
- Never commit tokens to code
- Use GitHub Secrets
- Rotate regularly (every 90 days)
- Minimal required scopes
Repository Privacy
Protect your code:
- Use private repositories
- Limit collaborator access
- Enable 2FA on GitHub
- Review access logs
Branch Protection
Prevent accidents:
- Protect main branch
- Require reviews
- Enforce status checks
- Restrict force push
Audit Trail
Track changes:
- Review commit history
- Monitor Actions runs
- Check deployment logs
- Enable notifications