Feature: Global continuousDeployment setting to disable automatic CD across all environments
Nobody has claimed this yet.
- Dominant language
- PowerShell
- Stars
- 506
- Forks
- 203
- Avg merge
- 4d 22h
- Merged PRs (30d)
- 6
Description
Problem
There is currently no way to disable continuous deployment globally. The only option is to set ContinuousDeployment: false inside each DeployTo<environmentname> block — one entry per environment per repository.
This is a significant gap for anyone who:
- Uses GitHub environments (created manually or by AL-Go) but wants deployments to be purely manual (via Publish To Environment)
- Manages many repositories from organization-level settings (
ALGoOrgSettings) - Wants to set a safe org-wide default and selectively opt specific environments back in
Without this, the only workarounds are:
- Enumerate every environment name across every repo in
ALGoOrgSettingswith per-envcontinuousDeployment: false— fragile, verbose, breaks with new environments - Change
CICDPushBranchesto a dummy value — disables the entire CICD workflow, not just deployment - Use GitHub environment branch protection policies — also affects the Publish To Environment workflow
Proposed Solution
Add a top-level continuousDeployment setting that acts as a global default for all environments.
Priority order (lowest to highest):
- Name-based convention (
(PROD)/(FAT)suffix → false, otherwise → true) — existing default - Global
continuousDeploymentsetting ← new - Per-environment
DeployTo<name>.ContinuousDeployment← existing, still wins
Example usage in ALGoOrgSettings:
{
"continuousDeployment": false
}
This disables automatic CD for all environments in all repos in the org. Individual environments can still opt in:
{
"continuousDeployment": false,
"DeployToProduction": { "continuousDeployment": true }
}
The Publish To Environment workflow is unaffected — it uses type: 'Publish' which ignores continuousDeployment entirely.
Implementation
The change is minimal — 4 lines in DetermineDeploymentEnvironments.ps1 after per-environment settings are resolved:
if ($null -eq $deploymentSettings.continuousDeployment -and $null -ne $settings.continuousDeployment) {
$deploymentSettings.continuousDeployment = $settings.continuousDeployment
}
Plus adding the setting to defaults and schema. Full implementation in the linked PRs.
Contributor guide
No contributing guide indexed for this repository
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Start with DetermineDeploymentEnvironments.ps1 and trace how per-environment settings and the existing name-based default are resolved. Then inspect the settings defaults and schema referenced in the issue; the work is done when a global continuousDeployment value supplies the default, per-environment values take precedence, and Publish To Environment remains unaffected.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- github-actions, powershell
- Domain
- ci-cd, devops
- Issue type
- Feature
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Stale
- Clarity
- Clearly specified
- Newbie friendliness
- 52/100