Public/func_Add-GitHubApplicationEnv.ps1
|
Function Add-GitHubApplicationEnv { <# .SYNOPSIS Add or update GitHub Domain Repository environment settings. .DESCRIPTION Configures GitHub domain repository with environment secrets and variables. .PARAMETER Repository The GitHub Repository <account/org>/<Repository name> .PARAMETER PlatformEnv Name of the platfornm environment configuration. .PARAMETER PlatformId Name of the platform instance .PARAMETER PlatformInstanceId Specific id of the appliction instance .PARAMETER ApplicationEnv Name of the application environment configuration. .PARAMETER ApplicationInstanceId Specific id of the application instance .INPUTS None. You cannot pipe objects. .OUTPUTS None. .EXAMPLE PS> Add-CdfGitHubDomainEnv ` -Repository "Epical-Integration/apim-domain-sales" ` -PlatformEnv "dev" -PlatformId "capim" -PlatformInstanceId "01" ` -ApplicationEnv "dev" ` -ApplicationInstanceId "01" .EXAMPLE PS> Add-CdfGitHubDomainEnv ` -Repository "Epical-Integration/apim-domain-ops" ` -PlatformEnv "dev" -PlatformId "capim" ` -PlatformInstanceId "01" ` -ApplicationEnv "dev" ` -ApplicationInstanceId "01" .LINK Deploy-CdfTemplatePlatform Deploy-CdfTemplateApplication Deploy-CdfTemplateDomain #> [CmdletBinding()] Param( [Parameter(Mandatory = $true)] [string] $Repository, [Parameter(Mandatory = $true)] [string] $PlatformEnv, [Parameter(Mandatory = $true)] [string] $PlatformId, [Parameter(Mandatory = $true)] [string] $PlatformInstanceId, [Parameter(Mandatory = $true)] [string] $ApplicationEnv, [Parameter(Mandatory = $true)] [string] $ApplicationInstanceId ) # Fetch application definitions $sourcePath = "src/$PlatformId/$PlatformInstanceId" $envFile = "$sourcePath/application/environments.json" Write-Host "Load environment from '$envFile'" $appEnvs = Get-Content -Raw "$envFile" | ConvertFrom-Json -AsHashtable # Setup environment $appEnv = $appEnvs[$ApplicationEnv] gh api --method PUT -H "Accept: application/vnd.github+json" repos/$Repository/environments/$ApplicationEnv gh variable set APPLICATION_ENV_ID --repo $Repository --env $ApplicationEnv --body $appEnv.nameId gh variable set APPLICATION_ENV_NAME --repo $Repository --env $ApplicationEnv --body $appEnv.name gh variable set APPLICATION_ENV_PURPOSE --repo $Repository --env $ApplicationEnv --body $appEnv.purpose gh variable set APPLICATION_ENV_QUALITY --repo $Repository --env $ApplicationEnv --body $appEnv.quality gh variable set APPLICATION_TENANT_ID --repo $Repository --env $ApplicationEnv --body $appEnv.tenantId # gh variable set APPLICATION_SUBSCRIPTION_ID --repo $Repository --env $ApplicationEnv --body $appEnv.subscriptionId gh variable set APPLICATION_DEPLOY_TENANT_ID --repo $Repository --env $ApplicationEnv --body $appEnv.deployAppTenantId gh variable set APPLICATION_DEPLOY_CLIENT_ID --repo $Repository --env $ApplicationEnv --body $appEnv.deployAppClientId } |