GitHub Overview
Simple Object Designer can push generated AL source code to GitHub repositories. This page introduces GitHub integration and its benefits.
What GitHub Integration Does
When enabled, SOD:
- Generates AL source code from your customizations
- Commits the code to a Git repository
- Pushes to GitHub
- Maintains version history
Why Use GitHub Integration
Version Control
Track changes over time:
- See what changed between versions
- Revert to previous versions
- Understand who changed what
Collaboration
Work with developers:
- Share code with development team
- Enable code review
- Facilitate handoff
CI/CD Pipelines
Enable automation:
- AL-Go for GitHub actions
- Automated testing
- Automated deployment
Backup
Additional protection:
- Code stored in multiple locations
- Recovery from GitHub if needed
What Gets Pushed
Generated AL Files
SOD creates AL source files:
- Table extensions (.al)
- Page extensions (.al)
- Report extensions (.al)
- New tables, pages, queries
- API pages
- Codeunit extensions
App Manifest
The app.json file with:
- Extension identity
- Dependencies
- Version information
Project Structure
Standard AL project structure:
- Source files
- App manifest
- Launch configurations (optional)
GitHub vs Direct Publish
| Aspect | Direct Publish | GitHub |
|---|---|---|
| Deployment | Immediate | Requires additional steps |
| Version control | Limited | Full Git history |
| Collaboration | Difficult | Native |
| CI/CD | Not available | Supported |
| Code access | SOD only | Full source |
Prerequisites
GitHub Account
You need:
- GitHub account
- Repository access
- Personal access token
Repository
Set up a repository:
- Can be new or existing
- Public or private
- You need push access
Personal Access Token
Create a PAT with:
reposcope for full access- Appropriate expiration
- Secure storage
Integration Workflow
Initial Setup
- Create GitHub repository
- Generate personal access token
- Configure SOD settings
- Test connection
Ongoing Usage
- Make changes in SOD
- Click "Publish to GitHub"
- Code is committed and pushed
- Changes visible in GitHub
Developer Handoff
- Developers clone repository
- Open in VS Code
- Continue development
- SOD no longer needed
Use Cases
Code Backup
Keep copies of generated code:
- Push regularly
- History of all versions
- Recovery option
Development Transition
Graduate from SOD to VS Code:
- Generate initial code with SOD
- Push to GitHub
- Developers continue in VS Code
AL-Go Integration
Automate builds:
- Push triggers workflow
- Automated compilation
- Test execution
- Deployment pipelines
Multi-Developer Teams
Collaborate effectively:
- Shared repository
- Pull requests for review
- Merge controlled changes
Limitations
One-Way Sync
GitHub integration is one-way:
- SOD pushes to GitHub
- Changes in GitHub don't sync back to SOD
- Manual merge if both modified
Repository Structure
SOD creates specific structure:
- May not match existing projects
- Consider dedicated repository
- Or specific folder