Atlassian.Bitbucket.Pipeline.Variable.psm1
using module .\Atlassian.Bitbucket.Authentication.psm1 function Get-BitbucketRepositoryVariable { [CmdletBinding()] param( [Parameter( ValueFromPipelineByPropertyName=$true, HelpMessage='Name of the team in Bitbucket. Defaults to selected team if not provided.')] [string]$Team = (Get-BitbucketSelectedTeam), [Parameter( Mandatory=$true, Position=0, ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true, HelpMessage='The repository slug.')] [Alias('Slug')] [string]$RepoSlug ) Process { $endpoint = "repositories/$Team/$RepoSlug/pipelines_config/variables/" return (Invoke-BitbucketAPI -Path $endpoint).values } } function New-BitbucketRepositoryVariable { [CmdletBinding(SupportsShouldProcess=$true, ConfirmImpact='Low')] param( [Parameter( ValueFromPipelineByPropertyName=$true, HelpMessage='Name of the team in Bitbucket. Defaults to selected team if not provided.')] [string]$Team = (Get-BitbucketSelectedTeam), [Parameter( Mandatory=$true, Position=0, ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true, HelpMessage='The repository slug.')] [Alias('Slug')] [string]$RepoSlug, [Parameter( Mandatory=$true, Position=1, ValueFromPipelineByPropertyName=$true, HelpMessage='Name of the environment.')] [string]$Key, [Parameter( Mandatory=$true, ValueFromPipelineByPropertyName=$true, HelpMessage='Variable value')] [string]$Value, [Parameter( ValueFromPipelineByPropertyName=$true, HelpMessage='Obscure the variable value')] [switch]$Secured ) Process { $body = [ordered]@{ key = $Key secured = $Secured.IsPresent value = $Value } | ConvertTo-Json -Depth 1 -Compress $endpoint = "repositories/$Team/$RepoSlug/pipelines_config/variables/" if ($pscmdlet.ShouldProcess("$Key in the repo $RepoSlug", 'create')){ return Invoke-BitbucketAPI -Path $endpoint -Method Post -Body $body } } } function Remove-BitbucketRepositoryVariable { [CmdletBinding(SupportsShouldProcess=$true, ConfirmImpact='Low')] param( [Parameter( ValueFromPipelineByPropertyName=$true, HelpMessage='Name of the team in Bitbucket. Defaults to selected team if not provided.')] [string]$Team = (Get-BitbucketSelectedTeam), [Parameter( Mandatory=$true, Position=0, ValueFromPipeline=$true, ValueFromPipelineByPropertyName=$true, HelpMessage='The repository slug.')] [Alias('Slug')] [string]$RepoSlug, [Parameter( Mandatory=$true, ValueFromPipelineByPropertyName=$true, HelpMessage='Variable key')] [string]$Key ) Process { $_uuidVar = (Get-BitbucketRepositoryVariable -Team $Team -RepoSlug $RepoSlug | Where-Object {$_.key -eq $Key}).uuid if($_uuidVar){ $endpoint = "repositories/$Team/$RepoSlug/pipelines_config/variables/$_uuidVar" if ($pscmdlet.ShouldProcess("$Key in the repo $RepoSlug", 'delete')){ return Invoke-BitbucketAPI -Path $endpoint -Method Delete } } } } |