New-MtMaesterApp
SYNOPSIS
Section titled “SYNOPSIS”Creates a new Maester application in Entra ID with required permissions.
SYNTAX
Section titled “SYNTAX”New-MtMaesterApp [[-Name] <String>] [-SendMail] [-SendTeamsMessage] [-Privileged] [[-Scopes] <String[]>] [[-GitHubOrganization] <String>] [[-GitHubRepository] <String>] [-GitHubActions] [-SetGitHubSecrets] [-ProgressAction <ActionPreference>] [<CommonParameters>]DESCRIPTION
Section titled “DESCRIPTION”Creates a new application registration in Entra ID specifically configured for running Maester tests in a DevOps pipeline. The application will be granted the necessary Graph API permissions based on the specified parameters and tagged for easy identification.
The user running this command must have a permissions to create applications and consent to Graph Permissions. This requires a minimum of being a Privileged Role Administrator (and Cloud Application Administrator if needed) or Global Administrator.
EXAMPLES
Section titled “EXAMPLES”EXAMPLE 1
Section titled “EXAMPLE 1”New-MtMaesterAppCreates a new Maester app with default permissions and name ‘Maester DevOps Account’.
EXAMPLE 2
Section titled “EXAMPLE 2”New-MtMaesterApp -Name "My Maester Pipeline App" -SendMailCreates a new Maester app with mail sending capabilities.
EXAMPLE 3
Section titled “EXAMPLE 3”New-MtMaesterApp -Privileged -Scopes @("User.Read.All", "Group.Read.All")Creates a new Maester app with privileged scopes and additional custom scopes.
EXAMPLE 4
Section titled “EXAMPLE 4”New-MtMaesterApp -GitHubActions -SetGitHubSecretsFull zero-config GitHub Actions setup. Auto-detects the target repository from the current git remote, creates the app, grants permissions, adds the federated credential, and pushes the AZURE_CLIENT_ID / AZURE_TENANT_ID secrets via gh CLI.
PARAMETERS
Section titled “PARAMETERS”The display name for the application. If not specified, defaults to ‘Maester DevOps Account’.
Type: StringParameter Sets: (All)Aliases:
Required: FalsePosition: 1Default value: NoneAccept pipeline input: FalseAccept wildcard characters: False-SendMail
Section titled “-SendMail”If specified, includes the Mail.Send permission scope.
Type: SwitchParameterParameter Sets: (All)Aliases:
Required: FalsePosition: NamedDefault value: FalseAccept pipeline input: FalseAccept wildcard characters: False-SendTeamsMessage
Section titled “-SendTeamsMessage”If specified, includes the ChannelMessage.Send permission scope.
Type: SwitchParameterParameter Sets: (All)Aliases:
Required: FalsePosition: NamedDefault value: FalseAccept pipeline input: FalseAccept wildcard characters: False-Privileged
Section titled “-Privileged”If specified, includes privileged permission scopes for read-write operations.
Type: SwitchParameterParameter Sets: (All)Aliases:
Required: FalsePosition: NamedDefault value: FalseAccept pipeline input: FalseAccept wildcard characters: False-Scopes
Section titled “-Scopes”Additional custom permission scopes to include beyond the default Maester scopes.
Type: String[]Parameter Sets: (All)Aliases:
Required: FalsePosition: 2Default value: @()Accept pipeline input: FalseAccept wildcard characters: False-GitHubOrganization
Section titled “-GitHubOrganization”Your GitHub organization name or GitHub username (e.g. ‘jasonf’). When supplied together with -GitHubRepository the cmdlet will also create a federated identity credential for GitHub Actions OIDC.
Type: StringParameter Sets: (All)Aliases:
Required: FalsePosition: 3Default value: NoneAccept pipeline input: FalseAccept wildcard characters: False-GitHubRepository
Section titled “-GitHubRepository”Your GitHub repository name where the workflow lives (e.g. ‘maester-tests’).
Type: StringParameter Sets: (All)Aliases:
Required: FalsePosition: 4Default value: NoneAccept pipeline input: FalseAccept wildcard characters: False-GitHubActions
Section titled “-GitHubActions”Enable end-to-end GitHub Actions setup. Creates a federated identity credential after granting permissions, and auto-detects the GitHub organization/repository from the local git remote (‘origin’) when -GitHubOrganization/-GitHubRepository are not explicitly supplied. This is the recommended entry point for the GitHub flow.
Type: SwitchParameterParameter Sets: (All)Aliases:
Required: FalsePosition: NamedDefault value: FalseAccept pipeline input: FalseAccept wildcard characters: False-SetGitHubSecrets
Section titled “-SetGitHubSecrets”Pushes AZURE_CLIENT_ID and AZURE_TENANT_ID to the target repository’s Actions secrets via the GitHub CLI (‘gh’). Falls back to printing manual instructions when ‘gh’ is unavailable or not authenticated. Passing -SetGitHubSecrets on its own implicitly enables the GitHub Actions flow, so -GitHubActions does not need to be specified alongside it.
Type: SwitchParameterParameter Sets: (All)Aliases:
Required: FalsePosition: NamedDefault value: FalseAccept pipeline input: FalseAccept wildcard characters: False-ProgressAction
Section titled “-ProgressAction”Determines how PowerShell responds to progress updates generated by a script, cmdlet, or provider, such as the progress bars generated by Write-Progress.
Type: ActionPreferenceParameter Sets: (All)Aliases: proga
Required: FalsePosition: NamedDefault value: NoneAccept pipeline input: FalseAccept wildcard characters: FalseCommonParameters
Section titled “CommonParameters”This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutVariable, -OutBuffer, -PipelineVariable, -Verbose, -WarningAction, and -WarningVariable. For more information, see about_CommonParameters.