This migration process leaves your existing Azure DevOps repository untouched. You can continue working in Azure DevOps if needed while testing AL-Go for GitHub.
Overview
This migration method uses GitHub’s repository import feature to transfer your complete git history from Azure DevOps, then replaces the Azure DevOps CI/CD configuration with AL-Go workflows.Prerequisites
Before starting the migration, ensure you have:- Access to your Azure DevOps repository
- A GitHub account with repository creation permissions
- VS Code installed on your PC
- Git credentials for Azure DevOps
Migration Process
Generate Azure DevOps Git Credentials
Navigate to your Azure DevOps repository and click the Clone button, then click Generate Git Credentials.
Copy the generated Password to your clipboard. You’ll need this in the next step for authentication.
Import Repository to GitHub
Navigate to GitHub, log in, and click the + menu in the top right corner. Select Import repository.
Enter the following information:
- Your old repository’s clone URL - The Git URL from Azure DevOps
- Owner - Choose the organization or user account
- Repository name - Name for your new GitHub repository
- Privacy - Select Public or Private
Authenticate with Azure DevOps
If your repository requires authentication, GitHub will prompt you to provide credentials.
Paste the password you copied earlier from Azure DevOps.
Wait for Import to Complete
GitHub will import your repository including all branches, commits, and history. This may take several minutes depending on repository size.Once complete, click the link to navigate to your new repository.
You may see messages about branches and pull requests because GitHub has imported everything from Azure DevOps. This is expected behavior.
Clone the Imported GitHub Repository
In your new GitHub repository, click the Code button (shown as
In VS Code:
<>) and copy the git URL to your clipboard.- Press
Ctrl+Shift+P - Select Git Clone
- Paste your git URL
- Select a location, clone, and open the repository in VS Code
Download AL-Go Template Files
Download the appropriate AL-Go template for your project:Unpack the downloaded .zip file and open the extracted folder in File Explorer.
PTE Template
Download for Per-Tenant Extensions
AppSource Template
Download for AppSource applications
Copy AL-Go Template Files
From the unpacked template folder, drag the following folders to your VS Code window:
.AL-Gofolder (required).githubfolder (required)- Any other template files you need
Configure AL-Go Settings
Modify the necessary settings for your application. Common settings to configure:For AppSource Apps:
Repository Settings
Typical settings you may need to modify:- appFolders - Specify folders containing your apps (documentation)
- testFolders - Specify folders containing test apps (documentation)
- runNumberOffset - Adjust build numbering to continue from Azure DevOps (documentation)
Use
runNumberOffset to maintain build number continuity from Azure DevOps. Set it to your last Azure DevOps build number.Code Analysis Settings
- enableAppSourceCop - Enable AppSource validation (documentation)
- enablePerTenantExtensionCop - Enable PTE validation (documentation)
- enableCodeCop - Enable code analysis (documentation)
- enableUICop - Enable UI validation (documentation)
- rulesetFile - Specify custom ruleset (documentation)
- enableExternalRulesets - Allow external rulesets (documentation)
AppSource-Specific Settings
- appSourceMandatoryAffixes - Define required affixes (documentation)
Required Secrets
Secrets must be created in your GitHub repository settings under Settings > Secrets and variables > Actions.
LicenseFileUrl- Secure direct download URL to your license file
CodeSignCertificateUrl- Secure direct download URL to your PFX certificateCodeSignCertificatePassword- Password for the PFX certificate
Commit and Push Your Changes
In VS Code’s Source Control area:
- Click the + icon to Add all changed files to staging
- Enter a descriptive commit message (e.g., “Add AL-Go for GitHub workflows”)
- Click Commit
- Click Sync Changes to push to GitHub
Enable GitHub Actions
Navigate back to your repository on GitHub. Verify your files have been uploaded.
Go to Settings > Actions > General:
- Select Allow all actions and reusable workflows
- Click Save
Run the CI/CD Workflow
Click Actions, select the CI/CD workflow, and click Run workflow to manually trigger the first build.
The initial run must be manual because the workflow was just added. Subsequent commits will automatically trigger the CI/CD workflow.
Monitor the Workflow Execution
Open the running workflow to view status and summary. Wait for the build to complete.
Scroll down to review:
- Artifacts - Built app files
- Test Results - Automated test execution results
Benefits of Preserving History
Migrating with history provides several advantages:Complete Audit Trail
Maintain full accountability with every change tracked
Blame Information
Use git blame to identify when and why code was changed
Historical Context
Understand the evolution of your codebase over time
Regulatory Compliance
Meet compliance requirements for change documentation
Next Steps
After successfully migrating your repository:Configure Environments
Set up deployment environments for your applications
Set Up Continuous Deployment
Configure automatic deployments to your environments
Migrate Azure Pipelines Variables
Transfer any pipeline variables to GitHub secrets or settings
Update Documentation
Update any references from Azure DevOps to GitHub
When to Use This Method
This migration approach is ideal when:- You need to preserve complete commit history
- Regulatory compliance requires full audit trails
- You want to maintain git blame functionality
- You’re migrating a mature, long-running project
- Historical context is important for your team
Troubleshooting
Import Fails with Authentication Error
If the import fails:- Verify you copied the correct password from Azure DevOps
- Ensure your Azure DevOps credentials haven’t expired
- Check that you have read access to the Azure DevOps repository
- Try regenerating the Git credentials in Azure DevOps
Workflow Doesn’t Appear
If the CI/CD workflow doesn’t appear in Actions:- Verify the
.github/workflowsfolder was copied correctly - Check that workflow YAML files are present
- Ensure GitHub Actions are enabled in repository settings
- Refresh the Actions page
Build Fails on First Run
If the initial build fails:- Verify
appFoldersandtestFolderssettings are correct - Check that all required secrets are configured
- Review workflow logs for specific error messages
- Ensure app.json files are valid
- Verify dependencies are correctly specified
Missing Branches or Tags
If branches or tags are missing:- Verify they existed in Azure DevOps before import
- Check that the import completed successfully
- Try importing again if necessary
- Contact GitHub support if issues persist
Comparison with Migration Without History
| Aspect | With History | Without History |
|---|---|---|
| Complexity | Moderate | Simple |
| Time Required | Longer (depends on repo size) | Quick |
| Commit History | Fully preserved | Only new commits |
| Git Blame | Works for all files | Only for new changes |
| Repository Size | Larger (includes history) | Smaller (fresh start) |
| Best For | Production apps, compliance needs | New projects, fresh starts |