.github/AL-Go-settings.json and apply to all projects in the repository. These settings control repository-wide behavior like project type, GitHub runners, and deployment environments.
Repository Type
Specifies the type of repository.Allowed values:
PTE- Per-Tenant ExtensionAppSource App- AppSource application
Project Configuration
Specifies the list of projects in this repository (names of folders containing AL-Go projects).If not specified, AL-Go will enumerate folders in the two levels under the repository root for folders containing a
.AL-Go folder with a settings.json file.Example:Determines whether projects are built using multi-stage or single-stage build workflows.When set to true:
- Workflows will have multiple build jobs depending on project dependencies
- Number of build jobs is determined by dependency depth
- You need to run “Update AL-Go System Files” for changes to take effect
Power Platform Integration
Contains the name of the folder containing a Power Platform Solution (only one supported).Example:
Template Configuration
Defines the URL of the template repository used to create this repository.Used for checking and downloading updates to AL-Go System files.Example:
GitHub Runners
Specifies which GitHub runner is used for all non-build/test jobs in all workflows (except “Update AL-Go System Files”).After changing this setting, run “Update AL-Go System Files” for it to take effect.Example:
Setting to
ubuntu-latest runs non-build/test jobs on Linux. Build jobs still run on windows-latest (or your githubRunner setting).Specifies which GitHub runner is used for build/test jobs in workflows.This is the most time-consuming task. Takes precedence over See also: Self-Hosted GitHub Runners
runs-on so you can use different runners for build jobs and housekeeping jobs.Example:Specifies which shell is used as the default in all jobs.
powershell- PowerShell 5.1 (default on Windows)pwsh- PowerShell 7 (default on Ubuntu)
runs-on is set to ubuntu-latest, pwsh is used automatically.Example:Specifies which shell is used for build jobs in workflows.Defaults to the same as
shell. If shell isn’t defined, powershell is the default.Example:Environment and Deployment Settings
Array of logical environment names for deployment.Environments can be specified in GitHub environments or in the repo settings file. If specified in settings, create AUTHCONTEXT secret using
<environmentname>_AUTHCONTEXT.Additional environment information can be specified in DeployTo<environmentname> settings.Example:Structure with additional properties for the specified environment.
<environmentName> refers to the GitHub environment name.Properties:- EnvironmentType - Type of environment (default: SaaS)
- EnvironmentName - “Real” name if different from GitHub environment
- Branches - Array of branch patterns allowed to deploy
- Projects - Comma-separated list of project patterns (default: *)
- DependencyInstallMode - install/ignore/upgrade/forceUpgrade (default: install)
- includeTestAppsInSandboxEnvironment - Deploy test apps if environment is sandbox (default: false)
- excludeAppIds - Array of app IDs to exclude from deployment (default: [])
- Scope - Dev or PTE deployment scope
- SyncMode - Add/ForceSync/Development/Clean (default: Add)
- BuildMode - Specifies which buildMode to use for deployment
- ContinuousDeployment - Enable continuous deployment (default: false)
- runs-on - GitHub runner for deployment (default: from general settings)
- shell - Shell for deployment (default: from general settings)
Structure with additional properties for the delivery target specified.Properties:
- Branches - Array of branch patterns allowed to deliver (default: main)
- CreateContainerIfNotExist - [Storage only] Create blob container if it doesn’t exist (default: false)
Workflow Triggers
Array of branches that trigger a CI/CD workflow on commit.Run “Update AL-Go System Files” for changes to take effect.Supported release branch formats:
releases/26,releases/26.x,releases/26x,releases/v26,releases/v26.x,releases/v26x- matches major version 26releases/26.3- matches major.minor version 26.3- Also works with singular
release/prefix
Array of branch patterns that trigger Pull Request Build when a PR targets them.Run “Update AL-Go System Files” for changes to take effect.Example:
Specifies the trigger AL-Go uses for Pull Request Builds.
pull_request- Default, secrets not available for fork PRspull_request_target- Secrets available but has security implications
Build Configuration
List of build modes to use when building AL-Go projects. Every project is built using each build mode.Special build modes:
- Default - Apps compiled as they are in source code
- Clean - For Clean Mode (use conditional settings to specify preprocessorSymbols)
- Translated -
TranslationFilecompiler feature is enabled
List of important files and folders. Changes to these trigger a full Pull Request build (all projects built).Examples:
[ "Build/*" ]- Changes to Build folder trigger full build[ "*" ]- Any changes trigger full build (equivalent toalwaysBuildAllProjects: true)
Structure defining incremental build configuration. AL-Go looks for the latest successful CI/CD build newer than Example:
retentionDays and only rebuilds changed projects/apps.Properties:- onPush - Enable for CI/CD triggered by merge/push (default: false)
- onPull_Request - Enable for Pull Requests (default: true)
- onSchedule - Enable for scheduled CI/CD (default: false)
- retentionDays - Days a successful build is valid (default: 30)
- mode -
modifiedProjectsormodifiedApps
When using incremental builds, it’s recommended to also set
workflowConcurrency for the CI/CD workflow.Git Submodules
Set to
"true" or "recursive" to use Git Submodules during build workflows.If submodules reside in private repositories, define a gitSubmodulesToken secret.Example:Commit and Pull Request Options
Controls how AL-Go creates pull requests or commits changes to the repository.Properties:
- messageSuffix - String appended to commits/PRs (useful for Azure Boards integration)
- createPullRequest - Boolean: create PR or push directly to branch
- pullRequestAutoMerge - Boolean: auto-complete PRs when checks pass
- pullRequestMergeMethod - “merge” or “squash” (default: squash)
- pullRequestLabels - Array of labels to add to PR (must exist in repo)
Reference Documentation
Structure for ALDoc reference documentation generation.Properties:
- continuousDeployment - Deploy reference docs continuously in CI/CD (default: false)
- deployToGitHubPages - Deploy to GitHub Pages (default: true)
- maxReleases - Maximum releases to include (default: 3)
- groupByProject - Use projects as folders in multi-project repos
- includeProjects - Array of projects to include (default: all)
- excludeProjects - Array of projects to exclude (default: none)
- header - Header for documentation site
- footer - Footer for documentation site
- defaultIndexMD - Markdown for landing page
- defaultReleaseMD - Markdown for release sites
Artifact Retention
Number of days to keep short-lived build artifacts (e.g., from pull request builds, next minor/major builds).Set to 0 to use GitHub default.Example:
Environment Exclusions
Array of GitHub Environments to exclude from deployment consideration.
github-pages is automatically added and cannot be used for deployment.Example:Update AL-Go System Files
Name of the environment holding the
GhTokenWorkflow secret.Allows guarding “Update AL-Go System Files” with an approval workflow.Run “Update AL-Go System Files” (with GhTokenWorkflow in place globally) for this setting to take effect.Example: