What are Settings?
Settings in AL-Go for GitHub are configuration values that control how your workflows behave. They determine everything from which Business Central version to build against, to how apps are versioned, tested, and deployed. Settings are stored in JSON files and can be applied at different levels:- Organization level - via GitHub variables
- Repository level - in
.github/AL-Go-settings.json - Project level - in
.AL-Go/settings.json - Workflow level - in workflow-specific settings files
- User level - in user-specific settings files
Settings Categories
Settings are organized into several categories:Basic Project Settings
Core settings for AL-Go projects including country, version, and folder structure
Basic Repository Settings
Repository-level settings like project type, runners, and environments
Advanced Settings
Expert-level settings for artifacts, versioning, dependencies, and code analysis
Conditional Settings
Apply different settings based on branches, workflows, or build modes
Settings Hierarchy
When running a workflow or local script, settings are applied by reading from multiple locations. The order matters - last applied settings win:Organization Settings
ALGoOrgSettings GitHub variable - applies to all repositories in the organizationTemplate Repository Settings
.github/AL-Go-TemplateRepoSettings.doNotEdit.json - from custom template repositoryTemplate Project Settings
.github/AL-Go-TemplateProjectSettings.doNotEdit.json - from custom templateWorkflow Settings (Repository)
.github/<workflow>.settings.json - workflow-specific for all projectsSettings from later sources override settings from earlier sources. However, complex types like arrays and objects are merged by default. You can change this behavior using the
overwriteSettings property.Multi-Project vs Single-Project
An AL-Go repository can be structured in two ways:Single Project
- One project with multiple apps
.AL-Gofolder in the repository root- All apps built, published, and tested together
Multiple Projects
- Multiple projects, each with multiple apps
- Each project in its own folder with a
.AL-Gosubfolder - Projects are built, deployed, and tested separately
- Comparable to having multiple repositories
BcContainerHelper Settings
The repository settings file (.github/AL-Go-settings.json) can also contain BcContainerHelper settings. These settings control low-level container behavior:
Base URL for the online Business Central Web Client (change for embed apps)
Base URL for the online Business Central API endpoint (change for embed apps)
Telemetry connection string for partner DevOps telemetry
Set to true to emit extended DevOps telemetry to Microsoft
Object ID for BcContainerHelper internal use (change if default is in use)
List of AL warning codes to treat as errors
Parameters added to all container creations in this repository
Next Steps
Explore the different categories of settings:- Basic Project Settings - Start here for project configuration
- Basic Repository Settings - Configure repository-wide behavior
- Advanced Settings - Fine-tune build and deployment
- Conditional Settings - Apply settings conditionally
- Secrets Overview - Learn about secrets in AL-Go