ALGoCtl 2026.825.1
dotnet tool install --global ALGoCtl --version 2026.825.1
dotnet new tool-manifest
dotnet tool install --local ALGoCtl --version 2026.825.1
#tool dotnet:?package=ALGoCtl&version=2026.825.1
nuke :add-package ALGoCtl --version 2026.825.1
ALGoCtl
Command-line client for controlling AL-Go for GitHub repositories. It automates creating new repositories from a template and keeping an existing repository's AL-Go system files up to date, then triggers the relevant workflow for you.
algoctl is distributed as a .NET tool and works against both github.com and GitHub Enterprise Server hosts.
Future
This CLI will be used for additional AL-Go for GitHub tools in the future, to make working with AL-Go easier.
Getting started
Install the .NET SDK (.NET 10 is the preferred runtime; a .NET 8 build is also provided).
Install the CLI from NuGet:
dotnet tool install --global ALGoCtlMake sure the prerequisites below are available on your
PATH.
To update to the latest version:
dotnet tool update --global ALGoCtl
Prerequisites
algoctl shells out to two external tools, which must be installed and
reasonably recent:
- git — used to clone template/target repositories and push changes.
- GitHub CLI (
gh) — used to authenticate, create repositories, and trigger workflows.
Authentication
algoctl reuses the GitHub CLI's authentication. Sign in once with:
gh auth login
By default the active account on the relevant host is used. When you are signed in to multiple accounts (or GitHub Enterprise hosts), target a specific one with --ghuser <user> (and --templateghuser <user> for reading the template repository).
Usage
algoctl <command> [--key "value" ...]
| Option | Description |
|---|---|
--version, -v |
Show the algoctl version |
Repository arguments accept either the short owner/repo form (which defaults to github.com) or a full URL (which may target a GitHub Enterprise host).
Commands
createrepo
Creates a new GitHub repository and seeds it with the contents of a template repository.
| Option | Required | Description |
|---|---|---|
--repo <owner/repo\|url> |
Yes | The repository to create. Short form defaults to github.com. |
--templaterepo <owner/repo\|url> |
No | Template repository to copy content from. Default: https://github.com/Freddy-DK/AL-Go-PTE. |
--ghuser <user> |
No | GitHub CLI account used to create the repository. Default: active account on the target host. |
--templateghuser <user> |
No | GitHub CLI account used to read the template repository. Default: active account on the template host, or unauthenticated. |
--visibility <private\|internal\|public> |
No | Visibility of the new repository. Default: private. |
--confirm |
No | Skip the interactive confirmation prompt. |
algoctl createrepo --repo myorg/my-al-app --ghuser myuser --visibility internal
updaterepo
Copies the AL-Go system-file update workflow (.github/workflows/UpdateGitHubGoSystemFiles.yaml) from a template repository into an existing repository and triggers that workflow. Only the workflow file is copied; no other template content is touched.
| Option | Required | Description |
|---|---|---|
--repo <owner/repo\|url> |
Yes | The repository to update. Short form defaults to github.com. |
--templaterepo <owner/repo\|url> |
No | Template repository to copy the workflow from. Default: https://github.com/Freddy-DK/AL-Go-PTE. |
--ghuser <user> |
No | GitHub CLI account used to update the repository. Default: active account on the target host. |
--templateghuser <user> |
No | GitHub CLI account used to read the template repository. Default: active account on the template host, or unauthenticated. |
--branches <list> |
No | Comma-separated list of branches to update (passed to the workflow's includeBranches input). Wildcards supported. Default: main. |
--confirm |
No | Skip the interactive confirmation prompt. |
algoctl updaterepo --repo myorg/my-al-app --ghuser myuser --branches "main,release/*"
createrelease
Runs the AL-Go CreateRelease.yaml workflow in an existing repository to promote a build to a GitHub release. The workflow is triggered on the branch selected with --branch (the repository's default branch when omitted).
| Option | Required | Description |
|---|---|---|
--repo <owner/repo\|url> |
Yes | The repository to create the release in. Short form defaults to github.com. |
--ghuser <user> |
No | GitHub CLI account used to run the workflow. Default: active account on the target host. |
--branch <branch> |
No | Branch (ref) to run the workflow on. Default: the repository's default branch. |
--name <name> |
Yes | Name of this release. |
--tag <tag> |
Yes | Tag of this release; must be a semantic version string (e.g. 1.0.0). A pattern ending in * (e.g. 1.0.*) resolves to the latest matching tag with its patch incremented, or the first one (e.g. 1.0.0) when none exist. |
--buildversion <version> |
No | Build version to promote to release. Default: latest. |
--releasetype <Release\|Prerelease\|Draft> |
No | Release, prerelease or draft? Default: Release. |
--createreleasebranch |
No | Create a release branch. Default: false. |
--releasebranchprefix <prefix> |
No | Prefix for the release branch. Used only if --createreleasebranch is set. Default: release/. |
--updateversionnumber <version> |
No | New version number in the main branch. Use Major.Minor (optionally add .Build for versioning strategy 3) for an absolute change, or +1, +0.1 (or +0.0.1 for versioning strategy 3) for an incremental change. Default: none. |
--skipupdatingdependencies |
No | Skip updating dependency version numbers in all apps. Default: false. |
--directcommit |
No | Direct commit? Default: false. |
--useghtokenworkflow |
No | Use GhTokenWorkflow for PR/commit? Default: false. |
--confirm |
No | Skip the interactive confirmation prompt. |
algoctl createrelease --repo myorg/my-al-app --ghuser myuser --name "Version 1.0.0" --tag 1.0.0
License
Licensed under the MIT License.
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net8.0 is compatible. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 is compatible. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
This package has no dependencies.
| Version | Downloads | Last Updated |
|---|---|---|
| 2026.825.1 | 7 | 8/25/2026 |
| 2026.729.1-prerelease | 75 | 7/29/2026 |
| 2026.707.3-prerelease | 71 | 7/7/2026 |
| 2026.707.2-prerelease | 66 | 7/7/2026 |
| 2026.707.1-prerelease | 60 | 7/7/2026 |
| 2026.706.1-prerelease | 71 | 7/6/2026 |