Skip to main content

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:
  1. Go to GitHub Settings → Developer settings → Personal access tokens
  2. Click “Generate new token (classic)”
  3. Name it “Synapse Deployment”
  4. Select scopes:
    • repo (Full control of private repositories)
    • workflow (Update GitHub Action workflows)
  5. Click “Generate token”
  6. Copy the token (you won’t see it again!)
2

Add Token to Synapse

Configure in your dashboard:
  1. Go to Settings → Integrations
  2. Find GitHub section
  3. Paste your Personal Access Token
  4. Click “Connect GitHub”
  5. 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:
  1. Create any extension
  2. Check GitHub repository
  3. Verify commit appears
  4. Confirm deployment triggers

Repository Structure

Your generated repository:

GitHub Actions Workflow

Automatic deployment workflow:

Branch Strategy

Default: Each generation gets its own branch
Benefits:
  • Isolated testing
  • Easy comparison
  • Independent deployment
  • Clean rollback
Usage:

Commit Messages

Synapse uses conventional commit format:

Managing Your Repository

Work on your extensions locally:
Make custom changes:
Revert to previous version:
See what changed:

GitHub Secrets

Required secrets (automatically configured by Synapse): To update secrets manually:

Advanced Configuration

Add your own GitHub Actions:

Troubleshooting

Error: remote: Permission to user-xxx/synapse-extensions.git deniedCauses:
  • GitHub token expired
  • Insufficient permissions
  • Repository doesn’t exist
Solutions:
  • Regenerate GitHub token
  • Verify repo and workflow scopes
  • Check repository exists
  • Re-add token in Synapse settings
Error: GitHub Actions workflow doesn’t triggerCauses:
  • Workflow disabled
  • Branch not matching pattern
  • Secrets missing
Solutions:
  • Check Actions tab in GitHub
  • Enable workflow if disabled
  • Verify branch name matches ** pattern
  • Confirm secrets are set
Error: Cannot merge generation branchesCauses:
  • Multiple generations modify same file
  • Manual edits conflict with generations
Solutions:

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

Next Steps

Fly.io Setup

Configure Fly.io deployment

Deployment Pipeline

Understand the full pipeline

Best Practices

Optimize your workflow

Troubleshooting

Debug deployment issues