Skip to main content
The behavior of AL-Go for GitHub is controlled by settings and secrets. This section covers all aspects of settings configuration.

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:
1

Organization Settings

ALGoOrgSettings GitHub variable - applies to all repositories in the organization
2

Template Repository Settings

.github/AL-Go-TemplateRepoSettings.doNotEdit.json - from custom template repository
3

Repository Settings

.github/AL-Go-settings.json - repository-level settings for all projects
4

Repository Variable

ALGoRepoSettings GitHub variable - repository-level settings via variables
5

Template Project Settings

.github/AL-Go-TemplateProjectSettings.doNotEdit.json - from custom template
6

Project Settings

.AL-Go/settings.json - project-specific settings
7

Workflow Settings (Repository)

.github/<workflow>.settings.json - workflow-specific for all projects
8

Workflow Settings (Project)

.AL-Go/<workflow>.settings.json - workflow-specific for one project
9

User Settings

.AL-Go/<username>.settings.json - user-specific settings (rarely used)
Settings 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-Go folder 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-Go subfolder
  • Projects are built, deployed, and tested separately
  • Comparable to having multiple repositories
Use the projects setting in .github/AL-Go-settings.json to explicitly specify which folders contain projects. Otherwise, AL-Go automatically discovers projects by looking for folders containing .AL-Go/settings.json files.

BcContainerHelper Settings

The repository settings file (.github/AL-Go-settings.json) can also contain BcContainerHelper settings. These settings control low-level container behavior:
baseUrl
string
default:"https://businesscentral.dynamics.com"
Base URL for the online Business Central Web Client (change for embed apps)
apiBaseUrl
string
default:"https://api.businesscentral.dynamics.com"
Base URL for the online Business Central API endpoint (change for embed apps)
PartnerTelemetryConnectionString
string
Telemetry connection string for partner DevOps telemetry
SendExtendedTelemetryToMicrosoft
boolean
default:false
Set to true to emit extended DevOps telemetry to Microsoft
ObjectIdForInternalUse
number
default:88123
Object ID for BcContainerHelper internal use (change if default is in use)
TreatWarningsAsErrors
array
List of AL warning codes to treat as errors
DefaultNewContainerParameters
object
Parameters added to all container creations in this repository

Next Steps

Explore the different categories of settings:

Build docs developers (and LLMs) love