ALGoCtl 2026.825.1

dotnet tool install --global ALGoCtl --version 2026.825.1
                    
This package contains a .NET tool you can call from the shell/command line.
dotnet new tool-manifest
                    
if you are setting up this repo
dotnet tool install --local ALGoCtl --version 2026.825.1
                    
This package contains a .NET tool you can call from the shell/command line.
#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

  1. Install the .NET SDK (.NET 10 is the preferred runtime; a .NET 8 build is also provided).

  2. Install the CLI from NuGet:

    dotnet tool install --global ALGoCtl
    
  3. Make 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 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. 
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.

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