diff --git a/AzDevOps/AzDevOps.psd1 b/AzDevOps/AzDevOps.psd1 index 1c2b00b..e9a78d3 100644 --- a/AzDevOps/AzDevOps.psd1 +++ b/AzDevOps/AzDevOps.psd1 @@ -12,7 +12,7 @@ RootModule = 'AzDevOps.psm1' # Version number of this module. - ModuleVersion = '2.1.0' + ModuleVersion = '3.0.0' # Supported PSEditions # CompatiblePSEditions = @() diff --git a/AzDevOps/azdevops/public/InvokeEndpoint.ps1 b/AzDevOps/azdevops/public/InvokeEndpoint.ps1 index cb002e2..6cb38f7 100644 --- a/AzDevOps/azdevops/public/InvokeEndpoint.ps1 +++ b/AzDevOps/azdevops/public/InvokeEndpoint.ps1 @@ -19,7 +19,7 @@ function Invoke-Endpoint ) begin { - Write-Verbose "InvokeRestMethod : Begin Processing"; + Write-Verbose "InvokeEndpoint : Begin Processing"; Write-Verbose " Uri : $($Uri.AbsoluteUri)"; Write-Verbose " Method : $($Method)"; Write-Verbose " Headers : $($Headers)"; diff --git a/AzDevOps/build/build.psd1 b/AzDevOps/build/build.psd1 index 7940dd0..4a90cf8 100644 --- a/AzDevOps/build/build.psd1 +++ b/AzDevOps/build/build.psd1 @@ -12,7 +12,7 @@ RootModule = 'build.psm1' # Version number of this module. - ModuleVersion = '2.0.0' + ModuleVersion = '3.0.0' # Supported PSEditions # CompatiblePSEditions = @() diff --git a/AzDevOps/build/builds/public/GetBuild.ps1 b/AzDevOps/build/builds/public/GetBuild.ps1 index 6936d34..eb55d9b 100644 --- a/AzDevOps/build/builds/public/GetBuild.ps1 +++ b/AzDevOps/build/builds/public/GetBuild.ps1 @@ -2,61 +2,94 @@ function Get-Build { [CmdletBinding( HelpURI = 'https://github.com/Azure-Devops-PowerShell-Module/build/blob/master/docs/Get-AdoBuild.md#get-adobuild', - PositionalBinding = $true)] + PositionalBinding = $true + )] [OutputType([Object])] param ( [Parameter(ValueFromPipeline, Mandatory = $false, ParameterSetName = 'Project')] [object]$Project, + [Parameter(Mandatory = $false, ParameterSetName = 'ProjectId')] [Guid]$ProjectId, + [Parameter(Mandatory = $false, ParameterSetName = 'Project')] [Parameter(Mandatory = $false, ParameterSetName = 'ProjectId')] [int]$BuildId, + [Parameter(Mandatory = $false)] - [ValidateSet('5.1', '7.1-preview.7')] - [string]$ApiVersion = '7.1-preview.7' + [ValidateSet('5.1', '7.1-preview.7', '7.2-preview.7')] + [string]$ApiVersion = '7.2-preview.7' ) + begin { - Write-Verbose "GetBuild : Begin Processing"; + Write-Verbose "Get-AdoBuild: Begin Processing" if ($PSCmdlet.ParameterSetName -eq 'Project') { - Write-Verbose " ProjectId : $($Project.Id)"; + Write-Verbose "ProjectId: $($Project.id)" } else { - Write-Verbose " ProjectId : $($ProjectId)"; + Write-Verbose "ProjectId: $($ProjectId)" } - Write-Verbose " BuildId : $($BuildId)"; - Write-Verbose " ApiVersion : $($ApiVersion)"; + Write-Verbose "BuildId: $($BuildId)" + Write-Verbose "ApiVersion: $($ApiVersion)" + } + + process + { try { - $ErrorActionPreference = 'Stop'; - $Error.Clear(); - # - # Are we connected - # - if ($Global:azDevOpsConnected) + $ErrorActionPreference = 'Stop' + $Error.Clear() + + if (-not $Global:azDevOpsConnected) + { + throw "Not connected to Azure DevOps. Please connect using Connect-AzDevOps." + } + + $BaseUri = if ($PSCmdlet.ParameterSetName -eq 'Project') + { + "$($Global:azDevOpsOrg)$($Project.Id)/_apis/build/builds" + } + else + { + "$($Global:azDevOpsOrg)$($ProjectId)/_apis/build/builds" + } + + Write-Verbose "BaseUri: $BaseUri" + + $Uri = if ($BuildId) { - if ($PSCmdlet.ParameterSetName -eq 'ProjectId') - { - $Project = Get-AdoProject -ProjectId $ProjectId -Verbose:$VerbosePreference; - } - $Uri = $Global:azDevOpsOrg + "$($Project.Id)/_apis/build/builds?api-version=$($ApiVersion)"; - if ($BuildId) - { - $Uri = $Global:azDevOpsOrg + "$($Project.Id)/_apis/build/builds/$($BuildId)?api-version=$($ApiVersion)"; - return (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference); - } - else - { - return (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference).Value; - } + "$($BaseUri)/$($BuildId)?api-version=$($ApiVersion)" + } + else + { + "$($BaseUri)?api-version=$($ApiVersion)" + } + + Write-Verbose "Uri: $($Uri)" + + $Response = Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference + + if ($BuildId) + { + return $Response + } + else + { + return $Response.Value } } catch { - throw $_; + Write-Error "Error retrieving build(s): $_" + throw $_ } } + + end + { + Write-Verbose "Get-AdoBuild: End Processing" + } } \ No newline at end of file diff --git a/AzDevOps/build/builds/public/GetBuildLog.ps1 b/AzDevOps/build/builds/public/GetBuildLog.ps1 index 80f7f70..06a7a25 100644 --- a/AzDevOps/build/builds/public/GetBuildLog.ps1 +++ b/AzDevOps/build/builds/public/GetBuildLog.ps1 @@ -2,68 +2,108 @@ function Get-BuildLog { [CmdletBinding( HelpURI = 'https://github.com/Azure-Devops-PowerShell-Module/build/blob/master/docs/Get-AdoBuildLog.md#get-adobuildlog', - PositionalBinding = $true)] + PositionalBinding = $true + )] [OutputType([Object])] param ( [Parameter(ValueFromPipeline, Mandatory = $true, ParameterSetName = 'Project')] [object]$Project, + [Parameter(ValueFromPipeline, Mandatory = $true, ParameterSetName = 'Project')] [object]$Build, + [Parameter(Mandatory = $true, ParameterSetName = 'ProjectId')] [Guid]$ProjectId, + [Parameter(Mandatory = $true, ParameterSetName = 'ProjectId')] [int]$BuildId, + [Parameter(Mandatory = $false, ParameterSetName = 'Project')] [Parameter(Mandatory = $false, ParameterSetName = 'ProjectId')] [int]$LogId, + [Parameter(Mandatory = $false)] - [ValidateSet('5.1', '7.1-preview.2')] - [string]$ApiVersion = '7.1-preview.2' + [ValidateSet('5.1', '7.1-preview.2','7.2-preview.2')] + [string]$ApiVersion = '7.2-preview.2' ) - process + + begin { - Write-Verbose "GetBuildLog : Process Record"; + Write-Verbose "Get-BuildLog: Begin Processing" if ($PSCmdlet.ParameterSetName -eq 'Project') { - Write-Verbose " ProjectID : $($Project.Id)"; - Write-Verbose " BuildId : $($Build.Id)"; + Write-Verbose "Project URL: $($Project.url)" + Write-Verbose "Build ID: $($Build.Id)" } else { - Write-Verbose " ProjectID : $($ProjectId)"; - Write-Verbose " BuildId : $($BuildId)"; + Write-Verbose "ProjectId: $($ProjectId)" + Write-Verbose "BuildId: $($BuildId)" } - Write-Verbose " LogId : $($LogId)"; - Write-Verbose " ApiVersion : $($ApiVersion)"; + Write-Verbose "LogId: $($LogId)" + Write-Verbose "ApiVersion: $($ApiVersion)" + } + + process + { try { - $ErrorActionPreference = 'Stop'; - $Error.Clear(); - # - # Are we connected - # - if ($Global:azDevOpsConnected) + $ErrorActionPreference = 'Stop' + $Error.Clear() + + if (-not $Global:azDevOpsConnected) { - if ($PSCmdlet.ParameterSetName -eq 'ProjectId') + throw "Not connected to Azure DevOps. Please connect using Connect-AzDevOps." + } + + if ($PSCmdlet.ParameterSetName -eq 'Project') + { + $BaseUri = "$($Global:azDevOpsOrg)$($Project.Id)/_apis/build/builds/$($Build.Id)/logs" + if ($LogId) + { + $Uri = "$($BaseUri)/$($LogId)?api-version=$($ApiVersion)" + } + else { - $Project = Get-AdoProject -ProjectId $ProjectId -Verbose:$VerbosePreference; - $Build = Get-AdoBuild -ProjectId $Project.id -BuildId $BuildId -Verbose:$VerbosePreference; + $Uri = "$($BaseUri)?api-version=$($ApiVersion)" } - $Uri = $Global:azDevOpsOrg + "$($Project.Id)/_apis/build/builds/$($Build.Id)/logs?api-version=$($ApiVersion)"; + } + else + { + $BaseUri = "$($Global:azDevOpsOrg)$($ProjectId)/_apis/build/builds/$($BuildId)/logs" if ($LogId) { - $Uri = $Global:azDevOpsOrg + "$($Project.Id)/_apis/build/builds/$($Build.Id)/logs/$($LogId)?api-version=$($ApiVersion)"; - return (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference); + $Uri = "$($BaseUri)/$($LogId)?api-version=$($ApiVersion)" } else { - return (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference).Value; + $Uri = "$($BaseUri)?api-version=$($ApiVersion)" } } + + Write-Verbose "BaseUri: $($BaseUri)" + Write-Verbose "Uri: $($Uri)" + + $Response = Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference + + if ($LogId) + { + return $Response + } + else + { + return $Response.Value + } } catch { - throw $_; + Write-Error "Error retrieving build log(s): $_" + throw $_ } } + + end + { + Write-Verbose "Get-BuildLog: End Processing" + } } \ No newline at end of file diff --git a/AzDevOps/build/builds/public/RemoveBuild.ps1 b/AzDevOps/build/builds/public/RemoveBuild.ps1 index ede0893..fef6b31 100644 --- a/AzDevOps/build/builds/public/RemoveBuild.ps1 +++ b/AzDevOps/build/builds/public/RemoveBuild.ps1 @@ -7,64 +7,79 @@ function Remove-Build param ( [Parameter(ValueFromPipeline, Mandatory = $false, ParameterSetName = 'Project')] [object]$Project, + [Parameter(Mandatory = $false, ParameterSetName = 'ProjectId')] [Guid]$ProjectId, + [Parameter(Mandatory = $true, ParameterSetName = 'Project')] [Parameter(Mandatory = $true, ParameterSetName = 'ProjectId')] [int]$BuildId, + [Parameter(Mandatory = $false)] - [ValidateSet('5.1', '7.1-preview.7')] - [string]$ApiVersion = '7.1-preview.7' + [ValidateSet('5.1', '7.1-preview.7','7.2-preview.2')] + [string]$ApiVersion = '7.2-preview.2' ) + process { - Write-Verbose "RemoveBuild : Process Record"; + Write-Verbose "Remove-Build: Process Record" if ($PSCmdlet.ParameterSetName -eq 'Project') { - Write-Verbose " ProjectID : $($Project.Id)"; - Write-Verbose " BuildId : $($Build.Id)"; + Write-Verbose "Project URL: $($Project.url)" + Write-Verbose "Build ID: $($BuildId)" } else { - Write-Verbose " ProjectID : $($ProjectId)"; - Write-Verbose " BuildId : $($BuildId)"; + Write-Verbose "ProjectId: $($ProjectId)" + Write-Verbose "BuildId: $($BuildId)" } - Write-Verbose " ApiVersion : $($ApiVersion)"; + Write-Verbose "ApiVersion: $($ApiVersion)" + try { - $ErrorActionPreference = 'Stop'; - $Error.Clear(); - # - # Are we connected - # - if ($Global:azDevOpsConnected) + $ErrorActionPreference = 'Stop' + $Error.Clear() + + if (-not $Global:azDevOpsConnected) { - if ($PSCmdlet.ParameterSetName -eq 'ProjectId') - { - $Project = Get-AdoProject -ProjectId $ProjectId -Verbose:$VerbosePreference; - $Build = Get-AdoBuild -ProjectId $Project.Id -BuildId $BuildId -Verbose:$VerbosePreference; - } - if (!($Build.deleted)) + throw "Not connected to Azure DevOps. Please connect using Connect-AzDevOps." + } + + $BaseUri = if ($PSCmdlet.ParameterSetName -eq 'Project') + { + "$($Global:azDevOpsOrg)$($Project.Id)/_apis/build/builds/$($BuildId)" + } + else + { + "$($Global:azDevOpsOrg)$($ProjectId)/_apis/build/builds/$($BuildId)" + } + + $Uri = "$($BaseUri)?api-version=$($ApiVersion)" + + Write-Verbose "BaseUri: $($BaseUri)" + Write-Verbose "Uri: $($Uri)" + + if ($PSCmdlet.ShouldProcess("Delete", "Remove Build $($BuildId) from Azure DevOps Project")) + { + $Result = Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Delete -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference + + if (-not $Result) { - $Uri = $Global:azDevOpsOrg + "$($Project.Id)/_apis/build/builds/$($Build.Id)?api-version=$($ApiVersion)"; - if ($PSCmdlet.ShouldProcess("Delete", "Remove Build $($Build.Id) from $($Project.name) Azure Devops Projects")) + if ($PSCmdlet.ParameterSetName -eq 'Project') { - $Result = (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Delete -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference); + return "Build: $($BuildId) removed from Project: $($Project.name)" } - if (!($Result)) + else { - return "Build : $($Build.id) removed from Project : $($Project.name)" + return "Build: $($BuildId) removed from Project ID: $($ProjectId)" } } - else - { - return "Build : $($Build.id) was deleted on $(Get-Date ($Build.deletedDate)) by $($Build.deletedBy.displayName)" - } } } catch { - throw $_; + Write-Error "Error removing build: $_" + throw $_ } } -} \ No newline at end of file +} diff --git a/AzDevOps/build/builds/public/StartBuild.ps1 b/AzDevOps/build/builds/public/StartBuild.ps1 index 929120d..13e7154 100644 --- a/AzDevOps/build/builds/public/StartBuild.ps1 +++ b/AzDevOps/build/builds/public/StartBuild.ps1 @@ -7,92 +7,126 @@ function Start-Build param ( [Parameter(ValueFromPipeline, Mandatory = $true, ParameterSetName = 'Project')] [object]$Project, + [Parameter(ValueFromPipeline, Mandatory = $true, ParameterSetName = 'Project')] [object]$Definition, + [Parameter(Mandatory = $true, ParameterSetName = 'ProjectId')] [Guid]$ProjectId, + [Parameter(Mandatory = $true, ParameterSetName = 'ProjectId')] [int]$DefinitionId, + [Parameter(Mandatory = $false, ParameterSetName = 'ProjectId')] [Parameter(Mandatory = $false, ParameterSetName = 'Project')] [hashtable[]]$Variables, + [Parameter(Mandatory = $false, ParameterSetName = 'ProjectId')] [Parameter(Mandatory = $false, ParameterSetName = 'Project')] [switch]$Wait, + [Parameter(Mandatory = $false)] - [ValidateSet('5.1', '7.1-preview.7')] - [string]$ApiVersion = '7.1-preview.7' + [ValidateSet('5.1', '7.1-preview.7','7.2-preview.2')] + [string]$ApiVersion = '7.2-preview.2' ) + process { - Write-Verbose "StartBuild : Process Record"; + Write-Verbose "StartBuild: Process Record" if ($PSCmdlet.ParameterSetName -eq 'Project') { - Write-Verbose " ProjectID : $($Project.Id)"; - Write-Verbose " DefinitionId : $($Definition.Id)"; + Write-Verbose "Project URL: $($Project.url)" + Write-Verbose "Definition ID: $($Definition.Id)" } else { - Write-Verbose " ProjectID : $($ProjectId)"; - Write-Verbose " DefinitionId : $($DefinitionId)"; + Write-Verbose "ProjectId: $($ProjectId)" + Write-Verbose "DefinitionId: $($DefinitionId)" } - Write-Verbose " Variables : $([string]::Join(',',$Variables.Keys))"; - Write-Verbose " Wait : $($Wait)"; - Write-Verbose " ApiVersion : $($ApiVersion)"; + if ($Variables) + { + Write-Verbose "Variables: $([string]::Join(',', $Variables.Keys))" + } + Write-Verbose "Wait: $($Wait)" + Write-Verbose "ApiVersion: $($ApiVersion)" + try { - $ErrorActionPreference = 'Stop'; - $Error.Clear(); - # - # Are we connected - # - if ($Global:azDevOpsConnected) + $ErrorActionPreference = 'Stop' + $Error.Clear() + + if (-not $Global:azDevOpsConnected) { - if ($PSCmdlet.ParameterSetName -eq 'ProjectId') - { - $Project = Get-AdoProject -ProjectId $ProjectId -Verbose:$VerbosePreference; - $Definition = Get-AdoBuildDefinition -ProjectId $Project.Id -DefinitionId $DefinitionId -Verbose:$VerbosePreference; - } - $Uri = $Global:azDevOpsOrg + "$($Project.Id)/_apis/build/builds?api-version=$($ApiVersion)"; - # - # Check that variables exist in defintion - # + throw "Not connected to Azure DevOps. Please connect using Connect-AzDevOps." + } + + $BaseUri = if ($PSCmdlet.ParameterSetName -eq 'Project') + { + "$($Global:azDevOpsOrg)$($Project.Id)/_apis/build/builds" + } + else + { + "$($Global:azDevOpsOrg)$($ProjectId)/_apis/build/builds" + } + + $Uri = "$($BaseUri)?api-version=$($ApiVersion)" + + Write-Verbose "BaseUri: $($BaseUri)" + Write-Verbose "Uri: $($Uri)" + + if ($Variables) + { + # Check that variables exist in definition foreach ($key in $Variables.keys) { if (!($Definition.variables | Get-Member -MemberType NoteProperty | Select-Object -ExpandProperty Name).Contains($key)) { $PSCmdlet.ThrowTerminatingError( [System.Management.Automation.ErrorRecord]::new( - ([System.Management.Automation.ItemNotFoundException]"One or more variables not found in Build Definition"), + ([System.Management.Automation.ItemNotFoundException] "One or more variables not found in Build Definition"), 'Projects.Functions', [System.Management.Automation.ErrorCategory]::OpenError, - $MyObject + $MyInvocation ) - ); + ) } } - $Body = New-Object -TypeName psobject; - Add-Member -InputObject $Body -MemberType NoteProperty -Name definition -Value $Definition; - $Parameters = New-Object -TypeName psobject; - foreach ($item in $Variables) { Add-Member -InputObject $parameters -MemberType NoteProperty -Name $item.Keys -Value $item[$item.Keys][0] }; - Add-Member -InputObject $Body -MemberType NoteProperty -Name parameters -Value ($Parameters | ConvertTo-Json -Compress); - if ($PSCmdlet.ShouldProcess("Start", "Qeue Build $($Build.Id) from $($Project.name) Azure Devops Projects")) + } + + $Body = New-Object -TypeName psobject -Property @{ + definition = (New-Object -TypeName psobject -Property @{ id = $Definition.id }) + } + + if ($Variables) + { + $Parameters = [PSCustomObject]@{} + foreach ($item in $Variables) { - $Result = Invoke-AdoEndpoint -Method POST -Uri ([System.Uri]::new(($Uri))) -Headers $Global:azDevOpsHeader -ContentType 'application/json' -Body ($Body | ConvertTo-Json -Compress -Depth 10) -Verbose:$VerbosePreference; - if ($Wait) + $Parameters | Add-Member -MemberType NoteProperty -Name $item.Keys -Value $item[$item.Keys][0] + } + $Body | Add-Member -MemberType NoteProperty -Name parameters -Value ($Parameters | ConvertTo-Json -Compress) + } + + if ($PSCmdlet.ShouldProcess("Start", "Queue Build $($Definition.Id) from $($Project.name) Azure DevOps Projects")) + { + Write-Verbose "Body: $($Body |ConvertTo-Json -Depth 99 -Compress)" + $Result = Invoke-AdoEndpoint -Method POST -Uri ([System.Uri]::new($Uri)) -Headers $Global:azDevOpsHeader -ContentType 'application/json' -Body ($Body | ConvertTo-Json -Compress -Depth 10) -Verbose:$VerbosePreference + + if ($Wait) + { + do { - do - { - Get-AdoBuild -Project $Project -BuildId $Result.id | out-null; - } until ((Get-AdoBuild -Project $Project -BuildId $Result.id -Verbose:$VerbosePreference).status -eq 'completed') - } - return Get-AdoBuild -Project $Project -BuildId $Result.id -Verbose:$VerbosePreference; + Start-Sleep -Seconds 5 + $BuildStatus = (Get-AdoBuild -Project $Project -BuildId $Result.id -Verbose:$VerbosePreference).status + } until ($BuildStatus -eq 'completed') } + + return Get-AdoBuild -Project $Project -BuildId $Result.id -Verbose:$VerbosePreference } } catch { - throw $_; + throw $_ } } -} \ No newline at end of file +} diff --git a/AzDevOps/build/definitions/public/GetBuildDefinition.ps1 b/AzDevOps/build/definitions/public/GetBuildDefinition.ps1 index 8788558..bb9b304 100644 --- a/AzDevOps/build/definitions/public/GetBuildDefinition.ps1 +++ b/AzDevOps/build/definitions/public/GetBuildDefinition.ps1 @@ -2,71 +2,97 @@ function Get-BuildDefinition { [CmdletBinding( HelpURI = 'https://github.com/Azure-Devops-PowerShell-Module/build/blob/master/docs/Get-AdoBuildDefinition.md#get-Adobuilddefinition', - PositionalBinding = $true)] + PositionalBinding = $true + )] [OutputType([Object])] param ( [Parameter(ValueFromPipeline, Mandatory = $false, ParameterSetName = 'Project')] [object]$Project, + [Parameter(Mandatory = $false, ParameterSetName = 'ProjectId')] [Guid]$ProjectId, + [Parameter(Mandatory = $false, ParameterSetName = 'Project')] [Parameter(Mandatory = $false, ParameterSetName = 'ProjectId')] [int]$DefinitionId, + [Parameter(Mandatory = $false, ParameterSetName = 'Project')] [Parameter(Mandatory = $false, ParameterSetName = 'ProjectId')] [int]$Revision, + [Parameter(Mandatory = $false)] - [ValidateSet('5.1', '7.1-preview.7')] - [string]$ApiVersion = '7.1-preview.7' + [ValidateSet('5.1', '7.1-preview.7','7.2-preview.7')] + [string]$ApiVersion = '7.2-preview.7' ) + process { - Write-Verbose "GetBuildDefinition : Process Record"; + Write-Verbose "Get-BuildDefinition: Process Record" if ($PSCmdlet.ParameterSetName -eq 'Project') { - Write-Verbose " ProjectId : $($Project.Id)"; + Write-Verbose "Project URL: $($Project.url)" } else { - Write-Verbose " ProjectId : $($ProjectId)"; + Write-Verbose "ProjectId: $($ProjectId)" } - Write-Verbose " DefinitionId : $($DefinitionId)"; - Write-Verbose " Revision : $($Revision)"; - Write-Verbose " ApiVersion : $($ApiVersion)"; + Write-Verbose "DefinitionId: $($DefinitionId)" + Write-Verbose "Revision: $($Revision)" + Write-Verbose "ApiVersion: $($ApiVersion)" + try { - $ErrorActionPreference = 'Stop'; - $Error.Clear(); - # - # Are we connected - # - if ($Global:azDevOpsConnected) + $ErrorActionPreference = 'Stop' + $Error.Clear() + + if (-not $Global:azDevOpsConnected) { - if ($PSCmdlet.ParameterSetName -eq 'ProjectId') - { - $Project = Get-AdoProject -ProjectId $ProjectId -Verbose:$VerbosePreference; - } - $Uri = $Global:azDevOpsOrg + "$($Project.Id)/_apis/build/definitions?api-version=$($ApiVersion)"; - if ($DefinitionId) + throw "Not connected to Azure DevOps. Please connect using Connect-AzDevOps." + } + + $BaseUri = if ($PSCmdlet.ParameterSetName -eq 'Project') + { + "$($Global:azDevOpsOrg)$($Project.Id)/_apis/build/definitions" + } + else + { + "$($Global:azDevOpsOrg)$($ProjectId)/_apis/build/definitions" + } + + if ($DefinitionId) + { + $Uri = "$($BaseUri)/$($DefinitionId)" + if ($Revision) { - $Uri = $Global:azDevOpsOrg + "$($Project.Id)/_apis/build/definitions/$($DefinitionId)"; - if ($Revision) - { - $Uri = $Uri + "?revision=$($Revision)&api-version=$($ApiVersion)"; - } else { - $Uri = $Uri + "?api-version=$($ApiVersion)" - } - return (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference); + $Uri += "?revision=$($Revision)&api-version=$($ApiVersion)" } else { - return (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference).Value; + $Uri += "?api-version=$($ApiVersion)" } } + else + { + $Uri = "$($BaseUri)?api-version=$($ApiVersion)" + } + + Write-Verbose "BaseUri: $($BaseUri)" + Write-Verbose "Uri: $($Uri)" + + $Response = Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference + + if ($DefinitionId) + { + return $Response + } + else + { + return $Response.Value + } } catch { - throw $_; + throw $_ } } } \ No newline at end of file diff --git a/AzDevOps/build/folders/public/GetBuildFolder.ps1 b/AzDevOps/build/folders/public/GetBuildFolder.ps1 index c54b2cc..9e106f8 100644 --- a/AzDevOps/build/folders/public/GetBuildFolder.ps1 +++ b/AzDevOps/build/folders/public/GetBuildFolder.ps1 @@ -2,57 +2,74 @@ function Get-BuildFolder { [CmdletBinding( HelpURI = 'https://github.com/Azure-Devops-PowerShell-Module/build/blob/master/docs/Get-AdoBuildFolder.md#get-adobuildfolder', - PositionalBinding = $true)] + PositionalBinding = $true + )] [OutputType([Object])] param ( [Parameter(ValueFromPipeline, Mandatory = $false, ParameterSetName = 'Project')] [object]$Project, + [Parameter(Mandatory = $false, ParameterSetName = 'ProjectId')] [Guid]$ProjectId, + [Parameter(Mandatory = $false, ParameterSetName = 'Project')] [Parameter(Mandatory = $false, ParameterSetName = 'ProjectId')] [string]$Path, + [Parameter(Mandatory = $false)] - [ValidateSet('5.1-preview.2', '7.1-preview.2')] - [string]$ApiVersion = '7.1-preview.2' + [ValidateSet('5.1-preview.2', '7.1-preview.2','7.2-preview.2')] + [string]$ApiVersion = '7.2-preview.2' ) + process { - Write-Verbose "GetBuildFolder : Process Record"; + Write-Verbose "Get-BuildFolder: Process Record" if ($PSCmdlet.ParameterSetName -eq 'Project') { - Write-Verbose " ProjectId : $($Project.Id)"; + Write-Verbose "Project URL: $($Project.url)" } else { - Write-Verbose " ProjectId : $($ProjectId)"; + Write-Verbose "ProjectId: $($ProjectId)" } - Write-Verbose " Path : $($Path)"; - Write-Verbose " ApiVersion : $($ApiVersion)"; + Write-Verbose "Path: $($Path)" + Write-Verbose "ApiVersion: $($ApiVersion)" + try { - $ErrorActionPreference = 'Stop'; - $Error.Clear(); - # - # Are we connected - # - if ($Global:azDevOpsConnected) + $ErrorActionPreference = 'Stop' + $Error.Clear() + + if (-not $Global:azDevOpsConnected) { - if ($PSCmdlet.ParameterSetName -eq 'ProjectId') - { - $Project = Get-AdoProject -ProjectId $ProjectId -Verbose:$VerbosePreference; - } - $Uri = $Global:azDevOpsOrg + "$($Project.Id)/_apis/build/folders?api-version=$($ApiVersion)"; - if ($Path) - { - $Uri = $Uri + "&path=$($Path.Replace('\','/'))" - } - return (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference).Value; + throw "Not connected to Azure DevOps. Please connect using Connect-AzDevOps." } + + $BaseUri = if ($PSCmdlet.ParameterSetName -eq 'Project') + { + "$($Global:azDevOpsOrg)$($Project.Id)/_apis/build/folders" + } + else + { + "$($Global:azDevOpsOrg)$($ProjectId)/_apis/build/folders" + } + + $Uri = "$($BaseUri)?api-version=$($ApiVersion)" + if ($Path) + { + $Uri += "&path=$($Path.Replace('\', '/'))" + } + + Write-Verbose "BaseUri: $($BaseUri)" + Write-Verbose "Uri: $($Uri)" + + $Response = Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference + + return $Response.Value } catch { - throw $_; + throw $_ } } -} \ No newline at end of file +} diff --git a/AzDevOps/build/folders/public/NewBuildFolder.ps1 b/AzDevOps/build/folders/public/NewBuildFolder.ps1 index 04634c7..ff2ad6c 100644 --- a/AzDevOps/build/folders/public/NewBuildFolder.ps1 +++ b/AzDevOps/build/folders/public/NewBuildFolder.ps1 @@ -7,58 +7,74 @@ function New-BuildFolder param ( [Parameter(ValueFromPipeline, Mandatory = $false, ParameterSetName = 'Project')] [object]$Project, + [Parameter(Mandatory = $false, ParameterSetName = 'ProjectId')] [Guid]$ProjectId, + [Parameter(Mandatory = $true, ParameterSetName = 'Project')] [Parameter(Mandatory = $true, ParameterSetName = 'ProjectId')] [string]$Name, + [Parameter(Mandatory = $false, ParameterSetName = 'Project')] [Parameter(Mandatory = $false, ParameterSetName = 'ProjectId')] [string]$Description, + [Parameter(Mandatory = $false)] - [ValidateSet('5.1-preview.2', '7.1-preview.2')] - [string]$ApiVersion = '7.1-preview.2' + [ValidateSet('5.1-preview.2', '7.1-preview.2','7.2-preview.2')] + [string]$ApiVersion = '7.2-preview.2' ) + process { - Write-Verbose "NewBuildFolder : Process Record"; + Write-Verbose "NewBuildFolder: Process Record" if ($PSCmdlet.ParameterSetName -eq 'Project') { - Write-Verbose " ProjectId : $($Project.Id)"; + Write-Verbose "ProjectId: $($Project.Id)" } else { - Write-Verbose " ProjectId : $($ProjectId)"; + Write-Verbose "ProjectId: $($ProjectId)" } - Write-Verbose " Name : $($Path)"; - Write-Verbose " Description : $($Path)"; - Write-Verbose " ApiVersion : $($ApiVersion)"; + Write-Verbose "Name: $($Name)" + Write-Verbose "Description: $($Description)" + Write-Verbose "ApiVersion: $($ApiVersion)" + try { - $ErrorActionPreference = 'Stop'; - $Error.Clear(); - # - # Are we connected - # - if ($Global:azDevOpsConnected) + $ErrorActionPreference = 'Stop' + $Error.Clear() + + if (-not $Global:azDevOpsConnected) { - if ($PSCmdlet.ParameterSetName -eq 'ProjectId') - { - $Project = Get-AdoProject -ProjectId $ProjectId -Verbose:$VerbosePreference; - } - $Body = New-Object -TypeName psobject - if ($Name) { Add-Member -InputObject $Body -MemberType NoteProperty -Name Path -Value $Name.Replace('\', '/') }; - if ($Description) { Add-Member -InputObject $Body -MemberType NoteProperty -Name Description -Value $Description }; - $Uri = $Global:azDevOpsOrg + "$($Project.Id)/_apis/build/folders?path=$($Name.Replace('\','/'))&api-version=$($ApiVersion)"; - if ($PSCmdlet.ShouldProcess("New", "Create Folder $($Name) in $($Project.name) Azure Devops Projects")) - { - return (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method PUT -Headers $Global:azDevOpsHeader -Body ($Body | ConvertTo-Json) -ContentType 'application/json' -Verbose:$VerbosePreference); - } + throw "Not connected to Azure DevOps. Please connect using Connect-AzDevOps." + } + + $BaseUri = if ($PSCmdlet.ParameterSetName -eq 'Project') + { + "$($Global:azDevOpsOrg)$($Project.Id)/_apis/build/folders" + } + else + { + "$($Global:azDevOpsOrg)$($ProjectId)/_apis/build/folders" + } + + $Uri = "$($BaseUri)?path=$($Name.Replace('\', '/'))&api-version=$($ApiVersion)" + + Write-Verbose "BaseUri: $($BaseUri)" + Write-Verbose "Uri: $($Uri)" + + $Body = [PSCustomObject]@{} + if ($Name) { $Body | Add-Member -MemberType NoteProperty -Name Path -Value $($Name.Replace('\', '/')) } + if ($Description) { $Body | Add-Member -MemberType NoteProperty -Name Description -Value $($Description) } + + if ($PSCmdlet.ShouldProcess("New", "Create Folder $($Name) in $($Project.name) Azure DevOps Projects")) + { + return Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method PUT -Headers $Global:azDevOpsHeader -Body ($Body | ConvertTo-Json) -ContentType 'application/json' -Verbose:$VerbosePreference } } catch { - throw $_; + throw $_ } } } \ No newline at end of file diff --git a/AzDevOps/build/folders/public/RemoveBuildFolder.ps1 b/AzDevOps/build/folders/public/RemoveBuildFolder.ps1 index 8187948..3ba51d0 100644 --- a/AzDevOps/build/folders/public/RemoveBuildFolder.ps1 +++ b/AzDevOps/build/folders/public/RemoveBuildFolder.ps1 @@ -7,53 +7,66 @@ function Remove-BuildFolder param ( [Parameter(ValueFromPipeline, Mandatory = $false, ParameterSetName = 'Project')] [object]$Project, + [Parameter(Mandatory = $false, ParameterSetName = 'ProjectId')] [Guid]$ProjectId, + [Parameter(Mandatory = $true, ParameterSetName = 'Project')] [Parameter(Mandatory = $true, ParameterSetName = 'ProjectId')] [string]$Name, + [Parameter(Mandatory = $false)] - [ValidateSet('5.0-preview.2', '7.1-preview.2')] - [string]$ApiVersion = '7.1-preview.2' + [ValidateSet('5.0-preview.2', '7.1-preview.2', '7.2-preview.2')] + [string]$ApiVersion = '7.2-preview.2' ) + process { - Write-Verbose "RemoveBuildFolder : Process Record"; + Write-Verbose "RemoveBuildFolder: Process Record" if ($PSCmdlet.ParameterSetName -eq 'Project') { - Write-Verbose " ProjectId : $($Project.Id)"; + Write-Verbose "ProjectId: $($Project.Id)" } else { - Write-Verbose " ProjectId : $($ProjectId)"; + Write-Verbose "ProjectId: $($ProjectId)" } - Write-Verbose " Name : $($Path)"; - Write-Verbose " ApiVersion : $($ApiVersion)"; + Write-Verbose "Name: $($Name)" + Write-Verbose "ApiVersion: $($ApiVersion)" + try { - $ErrorActionPreference = 'Stop'; - $Error.Clear(); - # - # Are we connected - # - if ($Global:azDevOpsConnected) + $ErrorActionPreference = 'Stop' + $Error.Clear() + + if (-not $Global:azDevOpsConnected) { - if ($PSCmdlet.ParameterSetName -eq 'ProjectId') - { - $Project = Get-AdoProject -ProjectId $ProjectId -Verbose:$VerbosePreference; - } - $Folder = Get-AdoBuildFolder -Project $Project -Path $Name -Verbose:$VerbosePreference; - $Uri = $Global:azDevOpsOrg + "$($Project.Id)/_apis/build/folders/?api-version=$($ApiVersion)&path=$($Folder.Path)" - if ($PSCmdlet.ShouldProcess("Delete", "Remove Folder $($Name) from $($Project.name) Azure Devops Projects")) - { - Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method DELETE -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference; - $Project | Get-AdoBuildFolder -Verbose:$VerbosePreference; - } + throw "Not connected to Azure DevOps. Please connect using Connect-AzDevOps." + } + + $BaseUri = if ($PSCmdlet.ParameterSetName -eq 'Project') + { + "$($Global:azDevOpsOrg)$($Project.Id)/_apis/build/folders" + } + else + { + "$($Global:azDevOpsOrg)$($ProjectId)/_apis/build/folders" + } + + $Uri = "$($BaseUri)?api-version=$($ApiVersion)&path=$($Name.Replace('\', '/'))" + + Write-Verbose "BaseUri: $($BaseUri)" + Write-Verbose "Uri: $($Uri)" + + if ($PSCmdlet.ShouldProcess("Delete", "Remove Folder $($Name) from $($Project.name) Azure DevOps Projects")) + { + Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method DELETE -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference + Write-Output "Folder $($Name) removed from project $($Project.name)" } } catch { - throw $_; + throw $_ } } } \ No newline at end of file diff --git a/AzDevOps/core/processes/processes.psd1 b/AzDevOps/core/processes/processes.psd1 index a2179e7..bf20c80 100644 --- a/AzDevOps/core/processes/processes.psd1 +++ b/AzDevOps/core/processes/processes.psd1 @@ -12,7 +12,7 @@ RootModule = 'processes.psm1' # Version number of this module. - ModuleVersion = '1.0.1' + ModuleVersion = '2.0.0' # Supported PSEditions # CompatiblePSEditions = @() diff --git a/AzDevOps/core/processes/public/GetProcess.ps1 b/AzDevOps/core/processes/public/GetProcess.ps1 index d4c5e6a..05ac3f2 100644 --- a/AzDevOps/core/processes/public/GetProcess.ps1 +++ b/AzDevOps/core/processes/public/GetProcess.ps1 @@ -2,44 +2,62 @@ function Get-Process { [CmdletBinding( HelpURI = 'https://github.com/Azure-Devops-PowerShell-Module/processes/blob/master/docs/Get-AdoProcess.md#get-adoprocess', - PositionalBinding = $true)] + PositionalBinding = $true + )] [OutputType([Object])] param ( [Parameter(Mandatory = $false)] [Guid]$ProcessId, + [Parameter(Mandatory = $false)] - [ValidateSet('5.1', '7.1-preview.1')] - [string]$ApiVersion = '7.1-preview.1' + [ValidateSet('5.1', '7.1-preview.1','7.2-preview.1')] + [string]$ApiVersion = '7.2-preview.1' ) + begin { - Write-Verbose "GetProcess : Begin Processing"; - Write-Verbose " ProcessId : $($ProcessId)"; - Write-Verbose " ApiVersion : $($ApiVersion)"; + Write-Verbose "GetProcess: Begin Processing" + Write-Verbose "ProcessId: $($ProcessId)" + Write-Verbose "ApiVersion: $($ApiVersion)" + } + + process + { try { - $ErrorActionPreference = 'Stop'; - $Error.Clear(); - # - # Are we connected - # - if ($Global:azDevOpsConnected) + $ErrorActionPreference = 'Stop' + $Error.Clear() + + if (-not $Global:azDevOpsConnected) + { + throw "Not connected to Azure DevOps. Please connect using Connect-AzDevOps." + } + + if ($ProcessId) + { + $Uri = "$($Global:azDevOpsOrg)_apis/process/processes/$($ProcessId)?api-version=$($ApiVersion)" + } + else + { + $Uri = "$($Global:azDevOpsOrg)_apis/process/processes?api-version=$($ApiVersion)" + } + + Write-Verbose "Uri: $($Uri)" + + $Response = Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference + + if ($ProcessId) + { + return $Response + } + else { - if ($ProcessId) - { - $Uri = $Global:azDevOpsOrg + "_apis/process/processes/$($ProcessId)?api-version=$($ApiVersion)"; - return (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference); - } - else - { - $Uri = $Global:azDevOpsOrg + "_apis/process/processes?api-version=$($ApiVersion)" - return (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference).Value; - } + return $Response.Value } } catch { - throw $_; + throw $_ } } } \ No newline at end of file diff --git a/AzDevOps/core/projects/projects.psd1 b/AzDevOps/core/projects/projects.psd1 index 0243cae..8b6003b 100644 --- a/AzDevOps/core/projects/projects.psd1 +++ b/AzDevOps/core/projects/projects.psd1 @@ -12,7 +12,7 @@ RootModule = 'projects.psm1' # Version number of this module. - ModuleVersion = '1.0.1' + ModuleVersion = '2.0.0' # Supported PSEditions # CompatiblePSEditions = @() diff --git a/AzDevOps/core/projects/public/GetProject.ps1 b/AzDevOps/core/projects/public/GetProject.ps1 index 0425e11..243fb42 100644 --- a/AzDevOps/core/projects/public/GetProject.ps1 +++ b/AzDevOps/core/projects/public/GetProject.ps1 @@ -2,44 +2,63 @@ function Get-Project { [CmdletBinding( HelpURI = 'https://github.com/Azure-Devops-PowerShell-Module/projects/blob/master/docs/Get-AdoProject.md#get-adoproject', - PositionalBinding = $true)] + PositionalBinding = $true + )] [OutputType([Object])] param ( [Parameter(Mandatory = $false)] [Guid]$ProjectId, + [Parameter(Mandatory = $false)] - [ValidateSet('5.1', '7.1-preview.4')] - [string]$ApiVersion = '7.1-preview.4' + [ValidateSet('5.1', '7.1-preview.4','7.2-preview.4')] + [string]$ApiVersion = '7.2-preview.4' ) + begin { - Write-Verbose "GetProject : Begin Processing"; - Write-Verbose " ProjectId : $($ProjectId)"; - Write-Verbose " ApiVersion : $($ApiVersion)"; + Write-Verbose "GetProject: Begin Processing" + Write-Verbose "ProjectId: $($ProjectId)" + Write-Verbose "ApiVersion: $($ApiVersion)" + } + + process + { try { - $ErrorActionPreference = 'Stop'; - $Error.Clear(); - # - # Are we connected - # - if ($Global:azDevOpsConnected) + $ErrorActionPreference = 'Stop' + $Error.Clear() + + if (-not $Global:azDevOpsConnected) + { + throw "Not connected to Azure DevOps. Please connect using Connect-AzDevOps." + } + + if ($ProjectId) + { + $Uri = "$($Global:azDevOpsOrg)_apis/projects/$($ProjectId)?api-version=$($ApiVersion)" + } + else + { + $Uri = "$($Global:azDevOpsOrg)_apis/projects?api-version=$($ApiVersion)" + } + + Write-Verbose "Uri: $($Uri)" + + $Response = Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference + + if ($ProjectId) + { + return $Response + } + else { - if ($ProjectId) - { - $Uri = $Global:azDevOpsOrg + "_apis/projects/$($ProjectId)?api-version=$($ApiVersion)"; - return (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference); - } - else - { - $Uri = $Global:azDevOpsOrg + "_apis/projects?api-version=$($ApiVersion)"; - return (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference).Value; - } + return $Response.Value } } catch { - throw $_; + Write-Error "Error retrieving project(s): $($_)" + throw $_ } } } \ No newline at end of file diff --git a/AzDevOps/core/projects/public/GetProjectProperty.ps1 b/AzDevOps/core/projects/public/GetProjectProperty.ps1 index e0e478b..f477ec6 100644 --- a/AzDevOps/core/projects/public/GetProjectProperty.ps1 +++ b/AzDevOps/core/projects/public/GetProjectProperty.ps1 @@ -2,36 +2,47 @@ function Get-ProjectProperty { [CmdletBinding( HelpURI = 'https://github.com/Azure-Devops-PowerShell-Module/projects/blob/master/docs/Get-AdoProjectProperty.md#get-adoprojectproperty', - PositionalBinding = $true)] + PositionalBinding = $true + )] [OutputType([Object])] param ( [Parameter(ValueFromPipeline)] [object]$Project, + [Parameter(Mandatory = $false)] - [ValidateSet('5.1-preview.1', '7.1-preview.1')] - [string]$ApiVersion = '7.1-preview.1' + [ValidateSet('5.1-preview.1', '7.1-preview.1', '7.2-preview.1')] + [string]$ApiVersion = '7.2-preview.1' ) + begin { - Write-Verbose "GetBuild : Begin Processing"; - Write-Verbose " ProjectId : $($Project.Id)"; - Write-Verbose " ApiVersion : $($ApiVersion)"; + Write-Verbose "GetBuild: Begin Processing" + Write-Verbose "ProjectId: $($Project.Id)" + Write-Verbose "ApiVersion: $($ApiVersion)" + } + + process + { try { - $ErrorActionPreference = 'Stop'; - $Error.Clear(); - # - # Are we connected - # - if ($Global:azDevOpsConnected) + $ErrorActionPreference = 'Stop' + $Error.Clear() + + if (-not $Global:azDevOpsConnected) { - $Uri = $Global:azDevOpsOrg + "_apis/projects/$($Project.id)/properties?api-version=$($ApiVersion)"; - return (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference).Value; + throw "Not connected to Azure DevOps. Please connect using Connect-AzDevOps." } + + $Uri = "$($Global:azDevOpsOrg)_apis/projects/$($Project.Id)/properties?api-version=$($ApiVersion)" + Write-Verbose "Uri: $($Uri)" + + $Response = Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference + + return $Response.Value } catch { - throw $_; + throw $_ } } } \ No newline at end of file diff --git a/AzDevOps/core/projects/public/NewProject.ps1 b/AzDevOps/core/projects/public/NewProject.ps1 index 1c4d90f..81bee43 100644 --- a/AzDevOps/core/projects/public/NewProject.ps1 +++ b/AzDevOps/core/projects/public/NewProject.ps1 @@ -7,56 +7,68 @@ function New-Project param ( [Parameter(Mandatory = $true)] [string]$Name, + [Parameter(Mandatory = $false)] [string]$Description, + [Parameter(Mandatory = $false)] - [ValidateSet('5.1', '7.1-preview.4')] - [string]$ApiVersion = '7.1-preview.4' + [ValidateSet('5.1', '7.1-preview.4', '7.2-preview.4')] + [string]$ApiVersion = '7.2-preview.4' ) + begin { - Write-Verbose "NewProject : Begin Processing"; - Write-Verbose " Name : $($BuildId)"; - Write-Verbose " Description : $($BuildId)"; - Write-Verbose " ApiVersion : $($ApiVersion)"; + Write-Verbose "NewProject: Begin Processing" + Write-Verbose "Name: $($Name)" + Write-Verbose "Description: $($Description)" + Write-Verbose "ApiVersion: $($ApiVersion)" + } + + process + { try { - $ErrorActionPreference = 'Stop'; - $Error.Clear(); - # - # Are we connected - # - if ($Global:azDevOpsConnected) + $ErrorActionPreference = 'Stop' + $Error.Clear() + + if (-not $Global:azDevOpsConnected) { - $Body = @{ - "name" = $Name - "description" = $Description - "capabilities" = @{ - "versioncontrol" = @{ - "sourceControlType" = "Git" - } - "processTemplate" = @{ - "templateTypeId" = "b8a3a935-7e91-48b8-a94c-606d37c3e9f2" - } + throw "Not connected to Azure DevOps. Please connect using Connect-AzDevOps." + } + + $Body = @{ + "name" = $Name + "description" = $Description + "capabilities" = @{ + "versioncontrol" = @{ + "sourceControlType" = "Git" + } + "processTemplate" = @{ + "templateTypeId" = "b8a3a935-7e91-48b8-a94c-606d37c3e9f2" } - } | ConvertTo-Json -Depth 5 -Compress; - $Uri = $Global:azDevOpsOrg + "_apis/projects?api-version=$($ApiVersion)"; - if ($PSCmdlet.ShouldProcess("Create", "Create new project in $($Global:azDevOpsOrg) Azure Devops")) - { - $Result = Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method POST -Headers $Global:azDevOpsHeader -Body $Body -ContentType "application/json" -Verbose:$VerbosePreference; } - do - { - $Status = Get-AdoOperations -OperationId $Result.id -Verbose:$VerbosePreference; - Write-Verbose $Status.status; - } until ($Status.status -eq 'succeeded') - Start-Sleep -Seconds 1; - Get-AdoProject -Verbose:$VerbosePreference | Where-Object -Property name -eq $Name; + } | ConvertTo-Json -Depth 5 -Compress + + $Uri = "$($Global:azDevOpsOrg)_apis/projects?api-version=$($ApiVersion)" + Write-Verbose "Uri: $($Uri)" + + if ($PSCmdlet.ShouldProcess("Create", "Create new project in $($Global:azDevOpsOrg) Azure DevOps")) + { + $Result = Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method POST -Headers $Global:azDevOpsHeader -Body $Body -ContentType "application/json" -Verbose:$VerbosePreference } + + do + { + $Status = Get-AdoOperations -OperationId $Result.id -Verbose:$VerbosePreference + Write-Verbose "Status: $($Status.status)" + Start-Sleep -Seconds 1 + } until ($Status.status -eq 'succeeded') + + Get-AdoProject -Verbose:$VerbosePreference | Where-Object -Property name -eq $Name } catch { - throw $_; + throw $_ } } } \ No newline at end of file diff --git a/AzDevOps/core/projects/public/RemoveProject.ps1 b/AzDevOps/core/projects/public/RemoveProject.ps1 index da58b11..82e9c0b 100644 --- a/AzDevOps/core/projects/public/RemoveProject.ps1 +++ b/AzDevOps/core/projects/public/RemoveProject.ps1 @@ -7,40 +7,51 @@ function Remove-Project param ( [Parameter(Mandatory = $true)] [object]$Project, + [Parameter(Mandatory = $false)] - [ValidateSet('5.1', '7.1-preview.4')] - [string]$ApiVersion = '7.1-preview.4' + [ValidateSet('5.1', '7.1-preview.4', '7.2-preview.4')] + [string]$ApiVersion = '7.2-preview.4' ) + begin { - Write-Verbose "RemoveProject : Begin Processing"; - Write-Verbose " ProjectId : $($Project.Id)"; - Write-Verbose " ApiVersion : $($ApiVersion)"; + Write-Verbose "RemoveProject: Begin Processing" + Write-Verbose "ProjectId: $($Project.Id)" + Write-Verbose "ApiVersion: $($ApiVersion)" + } + + process + { try { - $ErrorActionPreference = 'Stop'; - $Error.Clear(); - # - # Are we connected - # - if ($Global:azDevOpsConnected) + $ErrorActionPreference = 'Stop' + $Error.Clear() + + if (-not $Global:azDevOpsConnected) { - $Uri = $Global:azDevOpsOrg + "_apis/projects/$($Project.id)?api-version=$($ApiVersion)"; - if ($PSCmdlet.ShouldProcess("Remove", "Delete $($Project.Name) from $($Global:azDevOpsOrg) Azure Devops")) - { - $Result = Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Delete -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference; - } - do - { - $Status = Get-AdoOperations -OperationId $Result.id -Verbose:$VerbosePreference; - Write-Verbose $Status.status; - } until ($Status.status -eq 'succeeded') - return "Project $($Project.name) removed"; + throw "Not connected to Azure DevOps. Please connect using Connect-AzDevOps." } + + $Uri = "$($Global:azDevOpsOrg)_apis/projects/$($Project.Id)?api-version=$($ApiVersion)" + Write-Verbose "Uri: $($Uri)" + + if ($PSCmdlet.ShouldProcess("Remove", "Delete $($Project.Name) from $($Global:azDevOpsOrg) Azure DevOps")) + { + $Result = Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Delete -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference + } + + do + { + $Status = Get-AdoOperation -OperationId $Result.id -Verbose:$VerbosePreference + Write-Verbose "Status: $($Status.status)" + Start-Sleep -Seconds 1 + } until ($Status.status -eq 'succeeded') + + return "Project $($Project.Name) removed" } catch { - throw $_; + throw $_ } } } \ No newline at end of file diff --git a/AzDevOps/core/projects/public/UpdateProject.ps1 b/AzDevOps/core/projects/public/UpdateProject.ps1 index a8a85c0..7a601ea 100644 --- a/AzDevOps/core/projects/public/UpdateProject.ps1 +++ b/AzDevOps/core/projects/public/UpdateProject.ps1 @@ -7,52 +7,63 @@ function Update-Project param ( [Parameter(Mandatory = $false)] [string]$Name, + [Parameter(Mandatory = $false)] [string]$Description, + [Parameter(Mandatory = $true)] [object]$Project, + [Parameter(Mandatory = $false)] - [ValidateSet('5.1', '7.1-preview.4')] - [string]$ApiVersion = '7.1-preview.4' + [ValidateSet('5.1', '7.1-preview.4', '7.2-preview.4')] + [string]$ApiVersion = '7.2-preview.4' ) + begin { - Write-Verbose "UpdateProject : Begin Processing"; - Write-Verbose " Name : $($Name)"; - Write-Verbose " Description : $($Description)"; - Write-Verbose " ProjectId : $($Project.Id)"; - Write-Verbose " ApiVersion : $($ApiVersion)"; + Write-Verbose "UpdateProject: Begin Processing" + Write-Verbose "Name: $($Name)" + Write-Verbose "Description: $($Description)" + Write-Verbose "ProjectId: $($Project.Id)" + Write-Verbose "ApiVersion: $($ApiVersion)" + } + + process + { try { - $ErrorActionPreference = 'Stop'; - $Error.Clear(); - # - # Are we connected - # - if ($Global:azDevOpsConnected) + $ErrorActionPreference = 'Stop' + $Error.Clear() + + if (-not $Global:azDevOpsConnected) { - $Body = @{ - "name" = $Name - "description" = $Description - "capabilities" = @{ - "versioncontrol" = @{ - "sourceControlType" = "Git" - } - "processTemplate" = @{ - "templateTypeId" = "b8a3a935-7e91-48b8-a94c-606d37c3e9f2" - } + throw "Not connected to Azure DevOps. Please connect using Connect-AzDevOps." + } + + $Body = @{ + "name" = $Name + "description" = $Description + "capabilities" = @{ + "versioncontrol" = @{ + "sourceControlType" = "Git" + } + "processTemplate" = @{ + "templateTypeId" = "b8a3a935-7e91-48b8-a94c-606d37c3e9f2" } - } | ConvertTo-Json -Depth 5 -Compress; - $Uri = $Global:azDevOpsOrg + "_apis/projects/$($Project.id)?api-version=$($ApiVersion)"; - if ($PSCmdlet.ShouldProcess("Modify", "Update $($Project.Name) values")) - { - Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method PATCH -Headers $Global:azDevOpsHeader -Body $Body -ContentType "application/json" -Verbose:$VerbosePreference; } + } | ConvertTo-Json -Depth 5 -Compress + + $Uri = "$($Global:azDevOpsOrg)_apis/projects/$($Project.Id)?api-version=$($ApiVersion)" + Write-Verbose "Uri: $($Uri)" + + if ($PSCmdlet.ShouldProcess("Modify", "Update $($Project.Name) values")) + { + Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method PATCH -Headers $Global:azDevOpsHeader -Body $Body -ContentType "application/json" -Verbose:$VerbosePreference } } catch { - throw $_; + throw $_ } } -} \ No newline at end of file +} diff --git a/AzDevOps/core/teams/public/GetTeam.ps1 b/AzDevOps/core/teams/public/GetTeam.ps1 index e2edbd0..c72fb31 100644 --- a/AzDevOps/core/teams/public/GetTeam.ps1 +++ b/AzDevOps/core/teams/public/GetTeam.ps1 @@ -2,72 +2,83 @@ function Get-Team { [CmdletBinding( HelpURI = 'https://github.com/Azure-Devops-PowerShell-Module/teams/blob/master/docs/Get-AdoTeam.md#get-adoteam', - PositionalBinding = $true)] + PositionalBinding = $true + )] [OutputType([Object])] param ( [Parameter(ValueFromPipeline, Mandatory = $false, ParameterSetName = 'Project')] [object]$Project, + [Parameter(Mandatory = $false, ParameterSetName = 'ProjectId')] [Guid]$ProjectId, + [Parameter(Mandatory = $false, ParameterSetName = 'Project')] [Parameter(Mandatory = $false, ParameterSetName = 'ProjectId')] [Guid]$TeamId, + [Parameter(Mandatory = $false)] - [ValidateSet('5.1-preview.3', '7.1-preview.3')] - [string]$ApiVersion = '7.1-preview.3' + [ValidateSet('5.1-preview.3', '7.1-preview.3', '7.2-preview.3')] + [string]$ApiVersion = '7.2-preview.3' ) + process { - Write-Verbose "GetTeam : Process Record"; + Write-Verbose "GetTeam: Process Record" if ($PSCmdlet.ParameterSetName -eq 'Project') { - Write-Verbose " ProjectId : $($Project.Id)"; + Write-Verbose "ProjectId: $($Project.Id)" } else { - Write-Verbose " ProjectId : $($ProjectId)"; + Write-Verbose "ProjectId: $($ProjectId)" } - Write-Verbose " TeamId : $($TeamId)"; - Write-Verbose " ApiVersion : $($ApiVersion)"; + Write-Verbose "TeamId: $($TeamId)" + Write-Verbose "ApiVersion: $($ApiVersion)" + try { - $ErrorActionPreference = 'Stop'; - $Error.Clear(); - # - # Are we connected - # - if ($Global:azDevOpsConnected) + $ErrorActionPreference = 'Stop' + $Error.Clear() + + if (-not $Global:azDevOpsConnected) { - if ($PSCmdlet.ParameterSetName -eq 'ProjectId') - { - $Project = Get-AdoProject -ProjectId $ProjectId -Verbose:$VerbosePreference; - } - switch ($PSCmdlet.ParameterSetName) - { - 'Project' - { - if ($TeamId) - { - $Uri = $Global:azDevOpsOrg + "_apis/projects/$($Project.Id)/teams/$($TeamId)?api-version=$($ApiVersion)"; - return (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference); - } - else - { - $Uri = $Global:azDevOpsOrg + "_apis/projects/$($Project.Id)/teams/?api-version=$($ApiVersion)"; - return (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference).Value; - } - } - default - { - $Uri = $Global:azDevOpsOrg + "_apis/teams?api-version=$($ApiVersion)"; - return (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference).Value; - } - } + throw "Not connected to Azure DevOps. Please connect using Connect-AzDevOps." + } + + $BaseUri = if ($PSCmdlet.ParameterSetName -eq 'Project') + { + "$($Global:azDevOpsOrg)_apis/projects/$($Project.Id)/teams" + } + else + { + "$($Global:azDevOpsOrg)_apis/projects/$($ProjectId)/teams" + } + + if ($TeamId) + { + $Uri = "$($BaseUri)/$($TeamId)?api-version=$($ApiVersion)" + } + else + { + $Uri = "$($BaseUri)?api-version=$($ApiVersion)" + } + + Write-Verbose "Uri: $($Uri)" + + $Response = Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference + + if ($TeamId) + { + return $Response + } + else + { + return $Response.Value } } catch { - throw $_; + throw $_ } } } \ No newline at end of file diff --git a/AzDevOps/core/teams/public/GetTeamMember.ps1 b/AzDevOps/core/teams/public/GetTeamMember.ps1 index 15db8c8..979ed0b 100644 --- a/AzDevOps/core/teams/public/GetTeamMember.ps1 +++ b/AzDevOps/core/teams/public/GetTeamMember.ps1 @@ -2,71 +2,84 @@ function Get-TeamMember { [CmdletBinding( HelpURI = 'https://github.com/Azure-Devops-PowerShell-Module/teams/blob/master/docs/Get-AdoTeamMember.md#get-adoteammember', - PositionalBinding = $true)] + PositionalBinding = $true + )] [OutputType([Object])] param ( [Parameter(ValueFromPipeline, Mandatory = $false, ParameterSetName = 'Project')] [object]$Project, + [Parameter(Mandatory = $false, ParameterSetName = 'ProjectId')] [Guid]$ProjectId, + [Parameter(Mandatory = $false, ParameterSetName = 'Project')] [Parameter(Mandatory = $false, ParameterSetName = 'ProjectId')] [Guid]$TeamId, + [Parameter(Mandatory = $false)] - [ValidateSet('5.1-preview.3', '7.1-preview.3')] - [string]$ApiVersion = '7.1-preview.3' + [ValidateSet('5.1-preview.3', '7.1-preview.3', '7.2-preview.2')] + [string]$ApiVersion = '7.2-preview.2' ) + process { - Write-Verbose "GetTeamMember : Process Record"; + Write-Verbose "GetTeamMember: Process Record" if ($PSCmdlet.ParameterSetName -eq 'Project') { - Write-Verbose " ProjectId : $($Project.Id)"; + Write-Verbose "ProjectId: $($Project.Id)" } else { - Write-Verbose " ProjectId : $($ProjectId)"; + Write-Verbose "ProjectId: $($ProjectId)" } - Write-Verbose " TeamId : $($TeamId)"; - Write-Verbose " ApiVersion : $($ApiVersion)"; + Write-Verbose "TeamId: $($TeamId)" + Write-Verbose "ApiVersion: $($ApiVersion)" + try { - $ErrorActionPreference = 'Stop'; - $Error.Clear(); - # - # Are we connected - # - if ($Global:azDevOpsConnected) + $ErrorActionPreference = 'Stop' + $Error.Clear() + + if (-not $Global:azDevOpsConnected) { - if ($PSCmdlet.ParameterSetName -eq 'ProjectId') - { - $Project = Get-AdoProject -ProjectId $ProjectId -Verbose:$VerbosePreference; - } - $Team = Get-AdoTeam -ProjectId $Project.Id -TeamId $TeamId -Verbose:$VerbosePreference; - switch ($PSCmdlet.ParameterSetName) + throw "Not connected to Azure DevOps. Please connect using Connect-AzDevOps." + } + + $BaseUri = if ($PSCmdlet.ParameterSetName -eq 'Project') + { + "$($Global:azDevOpsOrg)_apis/projects/$($Project.Id)/teams" + } + else + { + "$($Global:azDevOpsOrg)_apis/projects/$($ProjectId)/teams" + } + + if ($TeamId) + { + $Uri = "$($BaseUri)/$($TeamId)/members?api-version=$($ApiVersion)" + Write-Verbose "Uri: $($Uri)" + return (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference).Value | Select-Object -ExpandProperty Identity + } + else + { + $TeamsUri = "$($BaseUri)?api-version=$($ApiVersion)" + Write-Verbose "TeamsUri: $($TeamsUri)" + $Teams = (Invoke-AdoEndpoint -Uri ([System.Uri]::new($TeamsUri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference).Value + $Members = @() + + foreach ($Team in $Teams) { - 'Project' - { - if ($TeamId) - { - $Uri = $Global:azDevOpsOrg + "_apis/projects/$($Project.id)/teams/$($Team.id)/members?api-version=$($ApiVersion)" - return ((Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference).Value | Select-Object -ExpandProperty Identity); - } - else - { - foreach ($Team in Get-AdoTeam -ProjectId $Project.Id) - { - $Uri = $Global:azDevOpsOrg + "_apis/projects/$($Project.Id)/teams/$($Team.id)/members?api-version=$($ApiVersion)" - return ((Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference).Value | Select-Object -ExpandProperty Identity); - } - } - } + $Uri = "$($BaseUri)/$($Team.id)/members?api-version=$($ApiVersion)" + Write-Verbose "Uri: $($Uri)" + $Members += (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference).Value | Select-Object -ExpandProperty Identity } + + return $Members } } catch { - throw $_; + throw $_ } } } \ No newline at end of file diff --git a/AzDevOps/core/teams/public/NewTeam.ps1 b/AzDevOps/core/teams/public/NewTeam.ps1 index f0e0ae9..b8d59cc 100644 --- a/AzDevOps/core/teams/public/NewTeam.ps1 +++ b/AzDevOps/core/teams/public/NewTeam.ps1 @@ -7,44 +7,52 @@ function New-Team param ( [Parameter(Mandatory = $true)] [string]$Name, + [Parameter(Mandatory = $false)] [string]$Description, + [Parameter(ValueFromPipeline)] [object]$Project, + [Parameter(Mandatory = $false)] - [ValidateSet('5.1-preview.3', '7.1-preview.3')] - [string]$ApiVersion = '7.1-preview.3' + [ValidateSet('5.1-preview.3', '7.1-preview.3', '7.2-preview.3')] + [string]$ApiVersion = '7.2-preview.3' ) + process { - Write-Verbose "NewTeam : Process Record"; - Write-Verbose " Name : $($Name)"; - Write-Verbose " Description : $($Description)"; - Write-Verbose " ProjectId : $($Project.Id)"; - Write-Verbose " ApiVersion : $($ApiVersion)"; + Write-Verbose "NewTeam: Process Record" + Write-Verbose "Name: $($Name)" + Write-Verbose "Description: $($Description)" + Write-Verbose "ProjectId: $($Project.Id)" + Write-Verbose "ApiVersion: $($ApiVersion)" + try { - $ErrorActionPreference = 'Stop'; - $Error.Clear(); - # - # Are we connected - # - if ($Global:azDevOpsConnected) + $ErrorActionPreference = 'Stop' + $Error.Clear() + + if (-not $Global:azDevOpsConnected) { - $Body = @{ - "name" = $Name - "description" = $Description - } | ConvertTo-Json -Depth 5 -Compress; - $Uri = $Global:azDevOpsOrg + "_apis/projects/$($Project.id)/teams/?api-version=$($ApiVersion)"; - if ($PSCmdlet.ShouldProcess("Create", "Create new team in $($Project.name) Azure Devops Projects")) - { - return (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Post -Headers $Global:azDevOpsHeader -Body $Body -ContentType "application/json" -Verbose:$VerbosePreference); - } + throw "Not connected to Azure DevOps. Please connect using Connect-AzDevOps." + } + + $Body = @{ + "name" = $Name + "description" = $Description + } | ConvertTo-Json -Depth 5 -Compress + + $Uri = "$($Global:azDevOpsOrg)_apis/projects/$($Project.Id)/teams/?api-version=$($ApiVersion)" + Write-Verbose "Uri: $($Uri)" + + if ($PSCmdlet.ShouldProcess("Create", "Create new team in $($Project.Name) Azure DevOps Projects")) + { + return Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Post -Headers $Global:azDevOpsHeader -Body $Body -ContentType "application/json" -Verbose:$VerbosePreference } } catch { - throw $_; + throw $_ } } } \ No newline at end of file diff --git a/AzDevOps/core/teams/public/RemoveTeam.ps1 b/AzDevOps/core/teams/public/RemoveTeam.ps1 index f487894..406fa6f 100644 --- a/AzDevOps/core/teams/public/RemoveTeam.ps1 +++ b/AzDevOps/core/teams/public/RemoveTeam.ps1 @@ -7,44 +7,50 @@ function Remove-Team param ( [Parameter(Mandatory = $true)] [Guid]$ProjectId, + [Parameter(Mandatory = $true)] [Guid]$TeamId, + [Parameter(Mandatory = $false)] - [ValidateSet('5.1-preview.3', '7.1-preview.3')] - [string]$ApiVersion = '7.1-preview.3' + [ValidateSet('5.1-preview.3', '7.1-preview.3', '7.2-preview.3')] + [string]$ApiVersion = '7.2-preview.3' ) + begin { - Write-Verbose "RemoveTeam : Begin Processing"; - Write-Verbose " ProjectId : $($Project.Id)"; - Write-Verbose " TeamId : $($TeamId)"; - Write-Verbose " ApiVersion : $($ApiVersion)"; + Write-Verbose "RemoveTeam: Begin Processing" + Write-Verbose "ProjectId: $($ProjectId)" + Write-Verbose "TeamId: $($TeamId)" + Write-Verbose "ApiVersion: $($ApiVersion)" + } + + process + { try { - $ErrorActionPreference = 'Stop'; - $Error.Clear(); - # - # Are we connected - # - if ($Global:azDevOpsConnected) + $ErrorActionPreference = 'Stop' + $Error.Clear() + + if (-not $Global:azDevOpsConnected) { - $Project = Get-AdoProject -ProjectId $ProjectId -Verbose:$VerbosePreference; - $Team = Get-AdoTeam -ProjectId $ProjectId -TeamId $TeamId -Verbose:$VerbosePreference; + throw "Not connected to Azure DevOps. Please connect using Connect-AzDevOps." + } - $Uri = $Global:azDevOpsOrg + "_apis/projects/$($Project.id)/teams/$($Team.id)?api-version=$($ApiVersion)" - if ($PSCmdlet.ShouldProcess("Delete", "Remove team $($Team.name) from $($Project.name) Azure Devops Projects")) + $Uri = "$($Global:azDevOpsOrg)_apis/projects/$($ProjectId)/teams/$($TeamId)?api-version=$($ApiVersion)" + Write-Verbose "Uri: $($Uri)" + + if ($PSCmdlet.ShouldProcess("Delete", "Remove team with ID $($TeamId) from project with ID $($ProjectId)")) + { + $Result = Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method DELETE -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference + if (-not $Result) { - $Result = Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method DELETE -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference; - if (!($Result)) - { - return "Team : $($Team.id) removed from Project : $($Project.id)"; - } + return "Team: $($TeamId) removed from Project: $($ProjectId)" } } } catch { - throw $_; + throw $_ } } } \ No newline at end of file diff --git a/AzDevOps/core/teams/public/UpdateTeam.ps1 b/AzDevOps/core/teams/public/UpdateTeam.ps1 index 9ea2eeb..497e0a8 100644 --- a/AzDevOps/core/teams/public/UpdateTeam.ps1 +++ b/AzDevOps/core/teams/public/UpdateTeam.ps1 @@ -7,46 +7,55 @@ function Update-Team param ( [Parameter(Mandatory = $false)] [string]$Name, + [Parameter(Mandatory = $false)] [string]$Description, + [Parameter(ValueFromPipeline)] [object]$Team, + [Parameter(Mandatory = $false)] - [ValidateSet('5.1-preview.3', '7.1-preview.3')] - [string]$ApiVersion = '7.1-preview.3' + [ValidateSet('5.1-preview.3', '7.1-preview.3', '7.2-preview.3')] + [string]$ApiVersion = '7.2-preview.3' ) begin { - Write-Verbose "UpdateTeam : Process Record"; - Write-Verbose " Name : $($Name)"; - Write-Verbose " Description : $($Description)"; - Write-Verbose " TeamId : $($Team.Id)"; - Write-Verbose " ApiVersion : $($ApiVersion)"; + Write-Verbose "UpdateTeam: Begin Processing" + Write-Verbose "Name: $($Name)" + Write-Verbose "Description: $($Description)" + Write-Verbose "TeamId: $($Team.Id)" + Write-Verbose "ApiVersion: $($ApiVersion)" + } + + process + { try { - $ErrorActionPreference = 'Stop'; - $Error.Clear(); - # - # Are we connected - # - if ($Global:azDevOpsConnected) + $ErrorActionPreference = 'Stop' + $Error.Clear() + + if (-not $Global:azDevOpsConnected) + { + throw "Not connected to Azure DevOps. Please connect using Connect-AzDevOps." + } + + $Body = @{ + "name" = $Name + "description" = $Description + } | ConvertTo-Json -Depth 5 -Compress + + $Uri = "$($Global:azDevOpsOrg)_apis/projects/$($Team.projectId)/teams/$($Team.Id)?api-version=$($ApiVersion)" + Write-Verbose "Uri: $($Uri)" + + if ($PSCmdlet.ShouldProcess("Update", "Update team in Azure DevOps Projects")) { - $Body = @{ - "name" = $Name - "description" = $Description - } | ConvertTo-Json -Depth 5 -Compress; - - $Uri = $Global:azDevOpsOrg + "_apis/projects/$($Team.projectid)/teams/$($Team.id)?api-version=$($ApiVersion)"; - if ($PSCmdlet.ShouldProcess("Update", "Update new team in $($Project.name) Azure Devops Projects")) - { - return (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method PATCH -Body $Body -ContentType "application/json" -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference); - } + return Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method PATCH -Body $Body -ContentType "application/json" -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference } } catch { - throw $_; + throw $_ } } } \ No newline at end of file diff --git a/AzDevOps/core/teams/teams.psd1 b/AzDevOps/core/teams/teams.psd1 index 62f40a7..8c07f14 100644 --- a/AzDevOps/core/teams/teams.psd1 +++ b/AzDevOps/core/teams/teams.psd1 @@ -12,7 +12,7 @@ RootModule = 'teams.psm1' # Version number of this module. - ModuleVersion = '1.0.1' + ModuleVersion = '2.0.0' # Supported PSEditions # CompatiblePSEditions = @() diff --git a/AzDevOps/git/Git.psd1 b/AzDevOps/git/Git.psd1 index b5d0760..326acfb 100644 --- a/AzDevOps/git/Git.psd1 +++ b/AzDevOps/git/Git.psd1 @@ -12,7 +12,7 @@ RootModule = 'Git.psm1' # Version number of this module. -ModuleVersion = '1.0.0' +ModuleVersion = '2.0.0' # Supported PSEditions # CompatiblePSEditions = @() diff --git a/AzDevOps/git/repositories/public/GetRepository.ps1 b/AzDevOps/git/repositories/public/GetRepository.ps1 index d0c1131..472809a 100644 --- a/AzDevOps/git/repositories/public/GetRepository.ps1 +++ b/AzDevOps/git/repositories/public/GetRepository.ps1 @@ -2,65 +2,86 @@ function Get-Repository { [CmdletBinding( HelpURI = 'https://github.com/Azure-Devops-PowerShell-Module/AzDevOps/blob/master/docs/Get-AdoRepository.md#get-adorepository', - PositionalBinding = $true)] + PositionalBinding = $true + )] [OutputType([Object])] param ( [Parameter(ValueFromPipeline, Mandatory = $false, ParameterSetName = 'Project')] [object]$Project, + [Parameter(Mandatory = $false, ParameterSetName = 'ProjectId')] [Guid]$ProjectId, + [Parameter(Mandatory = $false, ParameterSetName = 'Project')] [Parameter(Mandatory = $false, ParameterSetName = 'ProjectId')] [string]$Name, + [Parameter(Mandatory = $false)] - [ValidateSet('7.0')] - [string]$ApiVersion = '7.0' + [ValidateSet('7.0', '7.2-preview.1')] + [string]$ApiVersion = '7.2-preview.1' ) + begin + { + Write-Verbose "GetRepository: Begin Processing" + if ($PSCmdlet.ParameterSetName -eq 'Project') + { + Write-Verbose "Project: $($Project)" + } + else + { + Write-Verbose "ProjectId: $($ProjectId)" + } + Write-Verbose "Name: $($Name)" + Write-Verbose "ApiVersion: $($ApiVersion)" + } + + process { try { - Write-Verbose "GetRepository : Begin Processing"; - if ($PSCmdlet.ParameterSetName -eq 'Project') + $ErrorActionPreference = 'Stop' + $Error.Clear() + + if (-not $Global:azDevOpsConnected) + { + throw "Not connected to Azure DevOps. Please connect using Connect-AzDevOps." + } + + $BaseUri = if ($PSCmdlet.ParameterSetName -eq 'Project') { - Write-Verbose " Project : $($Project)"; + "$($Global:azDevOpsOrg)$($Project.Id)/_apis/git/repositories" } else { - Write-Verbose " ProjectId : $($ProjectId)"; + "$($Global:azDevOpsOrg)$($ProjectId)/_apis/git/repositories" } - Write-Verbose " Name : $($Name)"; - Write-Verbose " ApiVersion : $($ApiVersion)"; - $ErrorActionPreference = 'Stop'; - $Error.Clear(); - # - # Are we connected - # - if ($Global:azDevOpsConnected) + + $Uri = if ($Name) + { + "$($BaseUri)/$($Name)?api-version=$($ApiVersion)" + } + else + { + "$($BaseUri)?api-version=$($ApiVersion)" + } + + Write-Verbose "Uri: $($Uri)" + + $Response = Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference + + if ($Name) + { + return $Response + } + else { - if ($PSCmdlet.ParameterSetName -eq 'ProjectId') - { - $ThisProject = Get-AdoProject -ProjectId $ProjectId -Verbose:$VerbosePreference; - } - if ($PSCmdlet.ParameterSetName -eq 'Project') - { - $ThisProject = Get-AdoProject -Verbose:$VerbosePreference |Where-Object -Property Name -eq $Project; - } - $Uri = $Global:azDevOpsOrg + "$($ThisProject.Id)/_apis/git/repositories?api-version=$($ApiVersion)"; - if ($Name) - { - $Uri = $Global:azDevOpsOrg + "$($ThisProject.Id)/_apis/git/repositories/$($Name)?api-version=$($ApiVersion)"; - return (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference); - } - else - { - return (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference).Value; - } + return $Response.Value } } catch { - throw $_; + throw $_ } } -} +} \ No newline at end of file diff --git a/AzDevOps/git/repositories/public/NewRepository.ps1 b/AzDevOps/git/repositories/public/NewRepository.ps1 index edf1783..7618a3f 100644 --- a/AzDevOps/git/repositories/public/NewRepository.ps1 +++ b/AzDevOps/git/repositories/public/NewRepository.ps1 @@ -5,103 +5,102 @@ function New-Repository PositionalBinding = $true)] [OutputType([Object])] param ( - [Parameter(ValueFromPipeline, Mandatory = $false, ParameterSetName = 'Project')] - [Parameter(ValueFromPipeline, Mandatory = $false, ParameterSetName = 'Fork')] + [Parameter(ValueFromPipeline, Mandatory = $true, ParameterSetName = 'Repo')] + [Parameter(ValueFromPipeline, Mandatory = $true, ParameterSetName = 'Fork')] [object]$Project, - [Parameter(Mandatory = $false, ParameterSetName = 'ProjectId')] - [Parameter(ValueFromPipeline, Mandatory = $false, ParameterSetName = 'Fork')] - [Guid]$ProjectId, - [Parameter(Mandatory = $false, ParameterSetName = 'Project')] - [Parameter(Mandatory = $false, ParameterSetName = 'ProjectId')] - [Parameter(ValueFromPipeline, Mandatory = $false, ParameterSetName = 'Fork')] + + [Parameter(Mandatory = $true, ParameterSetName = 'Repo')] + [Parameter(ValueFromPipeline, Mandatory = $true, ParameterSetName = 'Fork')] [string]$Name, - [Parameter(ValueFromPipeline, Mandatory = $false, ParameterSetName = 'Fork')] - [string]$ParentRepository, + + [Parameter(ValueFromPipeline, Mandatory = $true, ParameterSetName = 'Fork')] + [string]$ParentRepositoryId, + [Parameter(ValueFromPipeline, Mandatory = $false, ParameterSetName = 'Fork')] [string]$ParentProjectId, + [Parameter(Mandatory = $false)] - [ValidateSet('7.0')] - [string]$ApiVersion = '7.0' + [ValidateSet('7.0', '7.2-preview.1')] + [string]$ApiVersion = '7.2-preview.1' ) + begin { try { - Write-Verbose "NewRepository : Begin Processing"; - Write-Verbose " ParametersetName : $($PSCmdlet.ParameterSetName)"; - if ($Project) - { - Write-Verbose " ProjectId : $($Project.Id)"; - } - elseif ($ProjectId) - { - Write-Verbose " ProjectId : $($ProjectId)"; - } + Write-Verbose "NewRepository: Begin Processing" + Write-Verbose "ParameterSetName: $($PSCmdlet.ParameterSetName)" + Write-Verbose "ProjectId: $($Project.Id)" if ($PSCmdlet.ParameterSetName -eq 'Fork') { - Write-Verbose " ParentRepository : $($ParentRepository)"; - Write-Verbose " ParentProjectId : $($ParentProjectId)"; + Write-Verbose "ParentRepositoryId: $($ParentRepositoryId)" + Write-Verbose "ParentProjectId: $($ParentProjectId)" } else { - Write-Verbose " Name : $($Name)"; + Write-Verbose "Name: $($Name)" + } + Write-Verbose "ApiVersion: $($ApiVersion)" + $ErrorActionPreference = 'Stop' + $Error.Clear() + + if (-not $Global:azDevOpsConnected) + { + throw "Not connected to Azure DevOps. Please connect using Connect-AzDevOps." } - Write-Verbose " ApiVersion : $($ApiVersion)"; - $ErrorActionPreference = 'Stop'; - $Error.Clear(); - # - # Are we connected - # - if ($Global:azDevOpsConnected) + + $Uri = "$($Global:azDevOpsOrg)_apis/git/repositories?api-version=$($ApiVersion)" + + switch ($PSCmdlet.ParameterSetName) { - if ($ProjectId) + 'Repo' { - $Project = Get-AdoProject -ProjectId $ProjectId -Verbose:$VerbosePreference; + [System.Text.StringBuilder]$stringBuilder = New-Object System.Text.StringBuilder + $stringBuilder.AppendLine("{") | Out-Null + $stringBuilder.AppendLine(" `"name`": `"$($Name)`",") | Out-Null + $stringBuilder.AppendLine(" `"project`": {") | Out-Null + $stringBuilder.AppendLine(" `"id`": `"$($Project.Id)`"") | Out-Null + $stringBuilder.AppendLine(" }") | Out-Null + $stringBuilder.AppendLine("}") | Out-Null + $Body = $stringBuilder.ToString() | ConvertFrom-Json | ConvertTo-Json -Compress } - $Uri = $Global:azDevOpsOrg + "_apis/git/repositories?api-version=$($ApiVersion)"; - [System.Text.StringBuilder]$stringBuilder = New-Object System.Text.StringBuilder; - $stringBuilder.AppendLine("{") | Out-Null; - $stringBuilder.AppendLine(" `"name`": `"$($Name)`",") | Out-Null; - $stringBuilder.AppendLine(" `"project`" : {") | Out-Null; - $stringBuilder.AppendLine(" `"id`":`"$($Project.Id)`"") | Out-Null; - $stringBuilder.AppendLine(" },") | Out-Null; - $stringBuilder.AppendLine("}") | Out-Null; - $Body = $stringBuilder.ToString() | ConvertFrom-Json | ConvertTo-Json -Compress; - if ($PSCmdlet.ParameterSetName -eq 'Fork') + 'Fork' { - $Parent = Get-AdoRepository -Project $project -Name $ParentRepository; - [System.Text.StringBuilder]$stringBuilder = New-Object System.Text.StringBuilder; - $stringBuilder.AppendLine("{") | Out-Null; - $stringBuilder.AppendLine(" `"name`": `"$($Name)`",") | Out-Null; - $stringBuilder.AppendLine(" `"project`" : {") | Out-Null; - $stringBuilder.AppendLine(" `"id`":`"$($Project.Id)`"") | Out-Null; - $stringBuilder.AppendLine(" },") | Out-Null; - $stringBuilder.AppendLine(" `"parentRepository`": {") | Out-Null; - $stringBuilder.AppendLine(" `"id`": `"$($Parent.id)`",") | Out-Null; - $stringBuilder.AppendLine(" `"project`": {") | Out-Null; + $ParentUri = "$($Global:azDevOpsOrg)_apis/git/repositories/$($ParentRepositoryId)?api-version=$($ApiVersion)" + $Parent = (Invoke-AdoEndpoint -Uri ([System.Uri]::new($ParentUri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference) + [System.Text.StringBuilder]$stringBuilder = New-Object System.Text.StringBuilder + $stringBuilder.AppendLine("{") | Out-Null + $stringBuilder.AppendLine(" `"name`": `"$($Name)`",") | Out-Null + $stringBuilder.AppendLine(" `"project`": {") | Out-Null + $stringBuilder.AppendLine(" `"id`": `"$($Project.Id)`"") | Out-Null + $stringBuilder.AppendLine(" },") | Out-Null + $stringBuilder.AppendLine(" `"ParentRepositoryId`": {") | Out-Null + $stringBuilder.AppendLine(" `"id`": `"$($Parent.id)`",") | Out-Null + $stringBuilder.AppendLine(" `"project`": {") | Out-Null if ($ParentProjectId) { - $stringBuilder.AppendLine(" `"id`": `"$($ParentProjectId)`",") | Out-Null; + $stringBuilder.AppendLine(" `"id`": `"$($ParentProjectId)`",") | Out-Null } else { - $stringBuilder.AppendLine(" `"id`": `"$($Project.Id)`",") | Out-Null; + $stringBuilder.AppendLine(" `"id`": `"$($Project.Id)`",") | Out-Null } - $stringBuilder.AppendLine(" }") | Out-Null; - $stringBuilder.AppendLine(" }") | Out-Null; - $stringBuilder.AppendLine("}") | Out-Null; - $Body = $stringBuilder.ToString() | ConvertFrom-Json | ConvertTo-Json -Compress; - } - Write-Verbose " Body : $($Body |Out-String)"; - if ($PSCmdlet.ShouldProcess("New", "Create Folder $($Name) in $($Project.name) Azure Devops Projects")) - { - return (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method POST -Headers $Global:azDevOpsHeader -Body ($Body) -ContentType 'application/json' -Verbose:$VerbosePreference); + $stringBuilder.AppendLine(" }") | Out-Null + $stringBuilder.AppendLine(" }") | Out-Null + $stringBuilder.AppendLine("}") | Out-Null + $Body = $stringBuilder.ToString() | ConvertFrom-Json | ConvertTo-Json -Compress } } + + Write-Verbose "Body: $($Body | Out-String)" + if ($PSCmdlet.ShouldProcess("New", "Create repository $($Name) in $($Project.Name) Azure DevOps Projects")) + { + return Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method POST -Headers $Global:azDevOpsHeader -Body $Body -ContentType 'application/json' -Verbose:$VerbosePreference + } } catch { - throw $_; + throw $_ } } -} +} \ No newline at end of file diff --git a/AzDevOps/git/repositories/public/RemoveRepository.ps1 b/AzDevOps/git/repositories/public/RemoveRepository.ps1 index dc27c66..deec3b9 100644 --- a/AzDevOps/git/repositories/public/RemoveRepository.ps1 +++ b/AzDevOps/git/repositories/public/RemoveRepository.ps1 @@ -2,54 +2,74 @@ function Remove-Repository { [CmdletBinding( HelpURI = 'https://github.com/Azure-Devops-PowerShell-Module/AzDevOps/blob/master/docs/Remove-AdoRepository.md#remove-adorepository', - PositionalBinding = $true)] + PositionalBinding = $true + )] [OutputType([Object])] param ( - [Parameter(ValueFromPipeline, Mandatory = $false, ParameterSetName = 'Project')] + [Parameter(ValueFromPipeline, Mandatory = $true, ParameterSetName = 'Project')] [object]$Project, - [Parameter(Mandatory = $false, ParameterSetName = 'ProjectId')] + + [Parameter(Mandatory = $true, ParameterSetName = 'ProjectId')] [Guid]$ProjectId, - [Parameter(Mandatory = $false, ParameterSetName = 'Project')] - [Parameter(Mandatory = $false, ParameterSetName = 'ProjectId')] - [string]$Name, + + [Parameter(ValueFromPipeline, Mandatory = $true, ParameterSetName = 'Project')] + [object]$Repository, + + [Parameter(Mandatory = $true, ParameterSetName = 'ProjectId')] + [string]$RepositoryId, + [Parameter(Mandatory = $false)] - [ValidateSet('7.0')] - [string]$ApiVersion = '7.0' + [ValidateSet('7.0', '7.2-preview.1')] + [string]$ApiVersion = '7.2-preview.1' ) + begin + { + Write-Verbose "RemoveRepository: Begin Processing" + if ($PSCmdlet.ParameterSetName -eq 'Project') + { + Write-Verbose "ProjectId: $($Project.Id)" + Write-Verbose "RepositoryId: $($Repository.Id)" + } + else + { + Write-Verbose "ProjectId: $($ProjectId)" + Write-Verbose "RepositoryId: $($RepositoryId)" + } + Write-Verbose "ApiVersion: $($ApiVersion)" + } + + process { try { - Write-Verbose "RemoveRepository : Begin Processing"; - if ($PSCmdlet.ParameterSetName -eq 'Project') + $ErrorActionPreference = 'Stop' + $Error.Clear() + + if (-not $Global:azDevOpsConnected) { - Write-Verbose " ProjectId : $($Project.Id)"; + throw "Not connected to Azure DevOps. Please connect using Connect-AzDevOps." } - else + + if ($PSCmdlet.ParameterSetName -eq 'Project') { - Write-Verbose " ProjectId : $($ProjectId)"; + $ProjectIdToUse = $Project.Id + $RepositoryIdToUse = $Repository.id } - Write-Verbose " Name : $($Name)"; - Write-Verbose " ApiVersion : $($ApiVersion)"; - $ErrorActionPreference = 'Stop'; - $Error.Clear(); - # - # Are we connected - # - if ($Global:azDevOpsConnected) + else { - if ($PSCmdlet.ParameterSetName -eq 'ProjectId') - { - $Project = Get-AdoProject -ProjectId $ProjectId -Verbose:$VerbosePreference; - } - $Repository = Get-AdoRepository -Project $Project -Name $Name; - $Uri = $Global:azDevOpsOrg + "$($Project.Id)/_apis/git/repositories/$($Repository.id)?api-version=$($ApiVersion)"; - return (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method DELETE -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference); + $ProjectIdToUse = $ProjectId + $RepositoryIdToUse = $RepositoryId } + + $Uri = "$($Global:azDevOpsOrg)$($ProjectIdToUse)/_apis/git/repositories/$($RepositoryIdToUse)?api-version=$($ApiVersion)" + Write-Verbose "Uri: $($Uri)" + + return Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method DELETE -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference } catch { - throw $_; + throw $_ } } -} +} \ No newline at end of file diff --git a/AzDevOps/operations/operations.psd1 b/AzDevOps/operations/operations.psd1 index 3bfc82a..09fb656 100644 --- a/AzDevOps/operations/operations.psd1 +++ b/AzDevOps/operations/operations.psd1 @@ -12,7 +12,7 @@ RootModule = 'operations.psm1' # Version number of this module. - ModuleVersion = '2.0.0' + ModuleVersion = '3.0.0' # Supported PSEditions # CompatiblePSEditions = @() diff --git a/AzDevOps/operations/operations/public/GetOperation.ps1 b/AzDevOps/operations/operations/public/GetOperation.ps1 index 41182e2..7fa8878 100644 --- a/AzDevOps/operations/operations/public/GetOperation.ps1 +++ b/AzDevOps/operations/operations/public/GetOperation.ps1 @@ -2,36 +2,45 @@ function Get-Operation { [CmdletBinding( HelpURI = 'https://github.com/Azure-Devops-PowerShell-Module/core/blob/master/docs/Get-AdoOperation.md#get-adooperation', - PositionalBinding = $true)] + PositionalBinding = $true + )] [OutputType([Object])] param ( [Parameter(Mandatory = $true)] [Guid]$OperationId, + [Parameter(Mandatory = $false)] - [ValidateSet('5.1', '7.1-preview.1')] - [string]$ApiVersion = '7.1-preview.1' + [ValidateSet('5.1', '7.1-preview.1', '7.2-preview.1')] + [string]$ApiVersion = '7.2-preview.1' ) + begin + { + Write-Verbose "GetOperation: Begin Processing" + Write-Verbose "OperationId: $($OperationId)" + Write-Verbose "ApiVersion: $($ApiVersion)" + } + + process { try { - Write-Verbose "GetBuild : Begin Processing"; - Write-Verbose " OperationId : $($OperationId)"; - Write-Verbose " ApiVersion : $($ApiVersion)"; - $ErrorActionPreference = 'Stop'; - $Error.Clear(); - # - # Are we connected - # - if ($Global:azDevOpsConnected) + $ErrorActionPreference = 'Stop' + $Error.Clear() + + if (-not $Global:azDevOpsConnected) { - $Uri = $Global:azDevOpsOrg + "_apis/operations/$($OperationId)?api-version=$($ApiVersion)"; - return (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference); + throw "Not connected to Azure DevOps. Please connect using Connect-AzDevOps." } + + $Uri = "$($Global:azDevOpsOrg)_apis/operations/$($OperationId)?api-version=$($ApiVersion)" + Write-Verbose "Uri: $($Uri)" + + return Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference } catch { - throw $_; + throw $_ } } -} +} \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 502d774..cb70867 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,23 @@ All changes to this module should be reflected in this document. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). +## [[3.0.0]](https://github.com/Azure-Devops-PowerShell-Module/AzDevOps/releases/tag/v3.0.0) - 2024-07-19 + +This release addresses an bug that was discovered in issue [#56](https://github.com/Azure-Devops-PowerShell-Module/AzDevOps/issues/56), the Get-AdoTeamMember function was failing. After digging into the problem it appears that the way in which I was generating the URI was introducing problems. To add to that, the amount of times we called back to functions just for validation was making troubleshooting confusing as well as the process seem much more heavy than it is. + +What's Change: + +- I have removed nearly all the recursive calls within each function +- A few issues were resolved with New-AdoRepository + - The function wasn't able to determine if we were using the forked params + - Renamed ParentRepository to ParentRepositoryId +- Introduced an issue with Remove-AdoRepository + - Removing the call to Get-AdoRepository means we can't pass the name of the repo + - Added RepositoryId or a Repository object +- Documentation updates + +--- + ## [[2.1.0]](https://github.com/Azure-Devops-PowerShell-Module/AzDevOps/releases/tag/v2.1.0) - 2023-01-14 This release adds the git endpoint as well as testing for module functions. diff --git a/README.md b/README.md index 548e42b..0a239b0 100644 --- a/README.md +++ b/README.md @@ -36,91 +36,91 @@ This module provides the ability to manage and work with an Azure Devops organiz ## AzDevOps Cmdlets -### [Connect-AdoOrganization](docs/Connect-AdoOrganization.md) +### [Connect-AdoOrganization](Docs/Connect-AdoOrganization.md) This function will connect to Azure DevOps -### [Get-AdoBuild](docs/Get-AdoBuild.md) +### [Get-AdoBuild](Docs/Get-AdoBuild.md) Return one or more builds from a project -### [Get-AdoBuildDefinition](docs/Get-AdoBuildDefinition.md) +### [Get-AdoBuildDefinition](Docs/Get-AdoBuildDefinition.md) Gets a definition, optionally at a specific revision. -### [Get-AdoBuildFolder](docs/Get-AdoBuildFolder.md) +### [Get-AdoBuildFolder](Docs/Get-AdoBuildFolder.md) Gets a list of build definition folders -### [Get-AdoBuildLog](docs/Get-AdoBuildLog.md) +### [Get-AdoBuildLog](Docs/Get-AdoBuildLog.md) Gets the logs for a build -### [Get-AdoOperation](docs/Get-AdoOperation.md) +### [Get-AdoOperation](Docs/Get-AdoOperation.md) Gets an operation from the the operationId using the given pluginId. -### [Get-AdoProcess](docs/Get-AdoProcess.md) +### [Get-AdoProcess](Docs/Get-AdoProcess.md) Get one or more available processes -### [Get-AdoProject](docs/Get-AdoProject.md) +### [Get-AdoProject](Docs/Get-AdoProject.md) Get one or many projects from Azure DevOps -### [Get-AdoProjectProperty](docs/Get-AdoProjectProperty.md) +### [Get-AdoProjectProperty](Docs/Get-AdoProjectProperty.md) Get a collection of team project Property -### [Get-AdoTeam](docs/Get-AdoTeam.md) +### [Get-AdoTeam](Docs/Get-AdoTeam.md) Get a specific team -### [Get-AdoTeamMember](docs/Get-AdoTeamMember.md) +### [Get-AdoTeamMember](Docs/Get-AdoTeamMember.md) Get a list of members for a specific team. -### [Invoke-AdoEndpoint](docs/Invoke-AdoEndpoint.md) +### [Invoke-AdoEndpoint](Docs/Invoke-AdoEndpoint.md) Query Azure Devops -### [New-AdoBuildFolder](docs/New-AdoBuildFolder.md) +### [New-AdoBuildFolder](Docs/New-AdoBuildFolder.md) Creates a new folder -### [New-AdoProject](docs/New-AdoProject.md) +### [New-AdoProject](Docs/New-AdoProject.md) Queues a project to be created -### [New-AdoTeam](docs/New-AdoTeam.md) +### [New-AdoTeam](Docs/New-AdoTeam.md) Create a team in a team project -### [Remove-AdoBuild](docs/Remove-AdoBuild.md) +### [Remove-AdoBuild](Docs/Remove-AdoBuild.md) Deletes a build -### [Remove-AdoBuildFolder](docs/Remove-AdoBuildFolder.md) +### [Remove-AdoBuildFolder](Docs/Remove-AdoBuildFolder.md) Deletes a definition folder -### [Remove-AdoProject](docs/Remove-AdoProject.md) +### [Remove-AdoProject](Docs/Remove-AdoProject.md) Queues a project to be deleted -### [Remove-AdoTeam](docs/Remove-AdoTeam.md) +### [Remove-AdoTeam](Docs/Remove-AdoTeam.md) Delete a team. -### [Start-AdoBuild](docs/Start-AdoBuild.md) +### [Start-AdoBuild](Docs/Start-AdoBuild.md) Queues a build -### [Update-AdoProject](docs/Update-AdoProject.md) +### [Update-AdoProject](Docs/Update-AdoProject.md) Update Name, Description or Abbreviation of a project -### [Update-AdoTeam](docs/Update-AdoTeam.md) +### [Update-AdoTeam](Docs/Update-AdoTeam.md) Update a team's name and/or description diff --git a/cabs/AzDevOps_e7709937-8444-4c02-a138-6324174cda61_en-US_HelpContent.cab b/cabs/AzDevOps_e7709937-8444-4c02-a138-6324174cda61_en-US_HelpContent.cab index 106189a..dd77384 100644 Binary files a/cabs/AzDevOps_e7709937-8444-4c02-a138-6324174cda61_en-US_HelpContent.cab and b/cabs/AzDevOps_e7709937-8444-4c02-a138-6324174cda61_en-US_HelpContent.cab differ diff --git a/cabs/AzDevOps_e7709937-8444-4c02-a138-6324174cda61_en-US_HelpContent.zip b/cabs/AzDevOps_e7709937-8444-4c02-a138-6324174cda61_en-US_HelpContent.zip index 770b335..66609ff 100644 Binary files a/cabs/AzDevOps_e7709937-8444-4c02-a138-6324174cda61_en-US_HelpContent.zip and b/cabs/AzDevOps_e7709937-8444-4c02-a138-6324174cda61_en-US_HelpContent.zip differ diff --git a/docs/Connect-AdoOrganization.md b/docs/Connect-AdoOrganization.md index ab87498..a1253c2 100644 --- a/docs/Connect-AdoOrganization.md +++ b/docs/Connect-AdoOrganization.md @@ -14,7 +14,8 @@ This function will connect to Azure DevOps ## SYNTAX ```powershell -Connect-AdoOrganization [-Orgname] [-PAT] [[-ApiVersion] ] [] +Connect-AdoOrganization [-Orgname] [-PAT] [[-ApiVersion] ] + [-ProgressAction ] [] ``` ## DESCRIPTION @@ -85,6 +86,22 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -ProgressAction + +{{ Fill ProgressAction Description }} + +```yaml +Type: System.Management.Automation.ActionPreference +Parameter Sets: (All) +Aliases: proga + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### 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](http://go.microsoft.com/fwlink/?LinkID=113216). diff --git a/docs/Get-AdoBuild.md b/docs/Get-AdoBuild.md index 5bcef86..9639ea9 100644 --- a/docs/Get-AdoBuild.md +++ b/docs/Get-AdoBuild.md @@ -16,13 +16,15 @@ Return one or more builds from a project ### Project ```powershell -Get-AdoBuild [-Project ] [-BuildId ] [-ApiVersion ] [] +Get-AdoBuild [-Project ] [-BuildId ] [-ApiVersion ] [-ProgressAction ] + [] ``` ### ProjectId ```powershell -Get-AdoBuild [-ProjectId ] [-BuildId ] [-ApiVersion ] [] +Get-AdoBuild [-ProjectId ] [-BuildId ] [-ApiVersion ] [-ProgressAction ] + [] ``` ## DESCRIPTION @@ -61,7 +63,7 @@ A valid API Version for this endpoint Type: System.String Parameter Sets: (All) Aliases: -Accepted values: 5.1, 7.1-preview.7 +Accepted values: 5.1, 7.1-preview.7, 7.2-preview.7 Required: False Position: Named diff --git a/docs/Get-AdoBuildDefinition.md b/docs/Get-AdoBuildDefinition.md index 56abdd0..2d16832 100644 --- a/docs/Get-AdoBuildDefinition.md +++ b/docs/Get-AdoBuildDefinition.md @@ -16,13 +16,15 @@ Gets a definition, optionally at a specific revision. ### Project ```powershell -Get-AdoBuildDefinition [-Project ] [-DefinitionId ] [-Revision ] [-ApiVersion ] [] +Get-AdoBuildDefinition [-Project ] [-DefinitionId ] [-Revision ] [-ApiVersion ] + [-ProgressAction ] [] ``` ### ProjectId ```powershell -Get-AdoBuildDefinition [-ProjectId ] [-DefinitionId ] [-Revision ] [-ApiVersion ] [] +Get-AdoBuildDefinition [-ProjectId ] [-DefinitionId ] [-Revision ] [-ApiVersion ] + [-ProgressAction ] [] ``` ## DESCRIPTION @@ -55,7 +57,6 @@ revision : 88 createdDate : 4/15/2020 4:05:31 PM project : @{id=c31a2770-9aee-4799-a078-eee0dc12cbf4; name=AzDevOps; description=A project for working with Azure Devops using PowerShell; url=https://dev.azure.com/patton-tech/_apis/projects/c31a2770-9aee-4799-a078-eee0dc12cbf4; state=wellFormed; revision=515330752; visibility=public; lastUpdateTime=4/10/2020 4:22:12 AM} - ``` Get a list of definitions in the project @@ -148,7 +149,7 @@ A valid API Version for this endpoint Type: System.String Parameter Sets: (All) Aliases: -Accepted values: 5.1, 7.1-preview.7 +Accepted values: 5.1, 7.1-preview.7, 7.2-preview.7 Required: False Position: Named diff --git a/docs/Get-AdoBuildFolder.md b/docs/Get-AdoBuildFolder.md index 63f6665..ce5af95 100644 --- a/docs/Get-AdoBuildFolder.md +++ b/docs/Get-AdoBuildFolder.md @@ -16,13 +16,15 @@ Gets a list of build definition folders ### Project ```powershell -Get-AdoBuildFolder [-Project ] [-Path ] [-ApiVersion ] [] +Get-AdoBuildFolder [-Project ] [-Path ] [-ApiVersion ] + [-ProgressAction ] [] ``` ### ProjectId ```powershell -Get-AdoBuildFolder [-ProjectId ] [-Path ] [-ApiVersion ] [] +Get-AdoBuildFolder [-ProjectId ] [-Path ] [-ApiVersion ] + [-ProgressAction ] [] ``` ## DESCRIPTION @@ -40,7 +42,6 @@ path : \ createdOn : 4/8/2020 2:46:31 PM project : @{id=c31a2770-9aee-4799-a078-eee0dc12cbf4; name=AzDevOps; description=A project for working with Azure Devops using PowerShell; url=https://dev.azure.com/patton-tech/_apis/projects/c31a2770-9aee-4799-a078-eee0dc12cbf4; state=wellFormed; revision=515330752; visibility=public; lastUpdateTime=4/10/2020 4:22:12 AM} - ``` Gets a list of build definition folders @@ -55,7 +56,7 @@ A valid API Version for this endpoint Type: System.String Parameter Sets: (All) Aliases: -Accepted values: 5.1-preview.2, 7.1-preview.2 +Accepted values: 5.1-preview.2, 7.1-preview.2, 7.2-preview.2 Required: False Position: Named diff --git a/docs/Get-AdoBuildLog.md b/docs/Get-AdoBuildLog.md index d59afe9..bd28f28 100644 --- a/docs/Get-AdoBuildLog.md +++ b/docs/Get-AdoBuildLog.md @@ -16,13 +16,15 @@ Gets the logs for a build ### Project ```powershell -Get-AdoBuildLog -Project -Build [-LogId ] [-ApiVersion ] [] +Get-AdoBuildLog -Project -Build [-LogId ] [-ApiVersion ] + [-ProgressAction ] [] ``` ### ProjectId ```powershell -Get-AdoBuildLog -ProjectId -BuildId [-LogId ] [-ApiVersion ] [] +Get-AdoBuildLog -ProjectId -BuildId [-LogId ] [-ApiVersion ] + [-ProgressAction ] [] ``` ## DESCRIPTION @@ -49,7 +51,6 @@ lastChangedOn : 8/10/2020 10:46:27 PM id : 2 type : Container url : https://dev.azure.com/patton-tech/c31a2770-9aee-4799-a078-eee0dc12cbf4/_apis/build/builds/195/logs/2 - ``` Get the logs for a build @@ -67,7 +68,6 @@ PS C:\> Get-AdoBuildLog -Project $Project -Build $Build -LogId 13 2020-08-10T22:47:05.2322457Z Agent running as: 'VssAdministrator' 2020-08-10T22:47:05.2701678Z Prepare build directory. 2020-08-10T22:47:05.5072173Z Set build variables. - ``` Get the individual log file for a build. @@ -82,7 +82,7 @@ A valid API Version for this endpoint Type: System.String Parameter Sets: (All) Aliases: -Accepted values: 5.1, 7.1-preview.2 +Accepted values: 5.1, 7.1-preview.2, 7.2-preview.2 Required: False Position: Named diff --git a/docs/Get-AdoOperation.md b/docs/Get-AdoOperation.md index 6e9d055..9b64f70 100644 --- a/docs/Get-AdoOperation.md +++ b/docs/Get-AdoOperation.md @@ -14,7 +14,8 @@ Gets an operation from the the operationId using the given pluginId. ## SYNTAX ```powershell -Get-AdoOperation [-OperationId] [[-ApiVersion] ] [] +Get-AdoOperation [-OperationId] [[-ApiVersion] ] [-ProgressAction ] + [] ``` ## DESCRIPTION @@ -47,7 +48,7 @@ A valid API Version for this endpoint Type: System.String Parameter Sets: (All) Aliases: -Accepted values: 5.1, 7.1-preview.1 +Accepted values: 5.1, 7.1-preview.1, 7.2-preview.1 Required: False Position: 1 @@ -72,6 +73,22 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -ProgressAction + +{{ Fill ProgressAction Description }} + +```yaml +Type: System.Management.Automation.ActionPreference +Parameter Sets: (All) +Aliases: proga + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### 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](http://go.microsoft.com/fwlink/?LinkID=113216). diff --git a/docs/Get-AdoProcess.md b/docs/Get-AdoProcess.md index 350ffbe..cbac743 100644 --- a/docs/Get-AdoProcess.md +++ b/docs/Get-AdoProcess.md @@ -14,7 +14,8 @@ Get one or more available processes ## SYNTAX ```powershell -Get-AdoProcess [[-ProcessId] ] [[-ApiVersion] ] [] +Get-AdoProcess [[-ProcessId] ] [[-ApiVersion] ] [-ProgressAction ] + [] ``` ## DESCRIPTION @@ -87,7 +88,7 @@ A valid API Version for this endpoint Type: System.String Parameter Sets: (All) Aliases: -Accepted values: 5.1, 7.1-preview.1 +Accepted values: 5.1, 7.1-preview.1, 7.2-preview.1 Required: False Position: 1 @@ -112,6 +113,22 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -ProgressAction + +{{ Fill ProgressAction Description }} + +```yaml +Type: System.Management.Automation.ActionPreference +Parameter Sets: (All) +Aliases: proga + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### 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](http://go.microsoft.com/fwlink/?LinkID=113216). diff --git a/docs/Get-AdoProject.md b/docs/Get-AdoProject.md index c4177a5..53de1a0 100644 --- a/docs/Get-AdoProject.md +++ b/docs/Get-AdoProject.md @@ -14,7 +14,8 @@ Get one or many projects from Azure DevOps ## SYNTAX ```powershell -Get-AdoProject [[-ProjectId] ] [[-ApiVersion] ] [] +Get-AdoProject [[-ProjectId] ] [[-ApiVersion] ] [-ProgressAction ] + [] ``` ## DESCRIPTION @@ -78,7 +79,7 @@ A valid API Version for this endpoint Type: System.String Parameter Sets: (All) Aliases: -Accepted values: 5.1, 7.1-preview.4 +Accepted values: 5.1, 7.1-preview.4, 7.2-preview.4 Required: False Position: 1 @@ -87,6 +88,22 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -ProgressAction + +{{ Fill ProgressAction Description }} + +```yaml +Type: System.Management.Automation.ActionPreference +Parameter Sets: (All) +Aliases: proga + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -ProjectId Project identifier diff --git a/docs/Get-AdoProjectProperty.md b/docs/Get-AdoProjectProperty.md index 0f99b9e..00d775c 100644 --- a/docs/Get-AdoProjectProperty.md +++ b/docs/Get-AdoProjectProperty.md @@ -14,7 +14,8 @@ Get a collection of team project Property ## SYNTAX ```powershell -Get-AdoProjectProperty [[-Project] ] [[-ApiVersion] ] [] +Get-AdoProjectProperty [[-Project] ] [[-ApiVersion] ] [-ProgressAction ] + [] ``` ## DESCRIPTION @@ -74,7 +75,7 @@ A valid API Version for this endpoint Type: System.String Parameter Sets: (All) Aliases: -Accepted values: 5.1-preview.1, 7.1-preview.1 +Accepted values: 5.1-preview.1, 7.1-preview.1, 7.2-preview.1 Required: False Position: 1 @@ -117,4 +118,4 @@ This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable [Connect-AdoOrganization](https://github.com/Azure-Devops-PowerShell-Module/core/blob/master/docs/Connect-AdoOrganization.md#connect-adoorganization) -[Get-AdoProject](https://github.com/Azure-Devops-PowerShell-Module/core/blob/master/docs/Get-AdoProject.md#get-adoproject) \ No newline at end of file +[Get-AdoProject](https://github.com/Azure-Devops-PowerShell-Module/core/blob/master/docs/Get-AdoProject.md#get-adoproject) diff --git a/docs/Get-AdoRepository.md b/docs/Get-AdoRepository.md new file mode 100644 index 0000000..e7260df --- /dev/null +++ b/docs/Get-AdoRepository.md @@ -0,0 +1,157 @@ +--- +external help file: AzDevOps-help.xml +Module Name: AzDevOps +online version: https://github.com/Azure-Devops-PowerShell-Module/AzDevOps/blob/master/docs/Get-AdoRepository.md#get-adorepository +schema: 2.0.0 +--- + +# Get-AdoRepository + +## SYNOPSIS + +Retrieve a git repository. + +## SYNTAX + +### Project + +```powershell +Get-AdoRepository [-Project ] [-Name ] [-ApiVersion ] + [-ProgressAction ] [] +``` + +### ProjectId + +```powershell +Get-AdoRepository [-ProjectId ] [-Name ] [-ApiVersion ] + [-ProgressAction ] [] +``` + +## DESCRIPTION + +Retrieve a git repository. + +## EXAMPLES + +### Example 1 + +```powershell +PS C:\> Get-AdoRepository -Project $Project -Name 'my repo' + +id : 7d8deb7b-863a-4ef3-bb75-83b4e6ae369a +name : my repo +url : https://dev.azure.com/myorg/44b34ea4-9831-4539-9c9f-925b9533ebf8/_apis/git/repositories/7d8deb7b-863a-4ef3-bb75-83b4e6ae369a +project : @{id=44b34ea4-9831-4539-9c9f-925b9533ebf8; name=MyProject; + url=https://dev.azure.com/myorg/_apis/projects/44b34ea4-9831-4539-9c9f-925b9533ebf8; state=wellFormed; revision=2249; visibility=private; + lastUpdateTime=7/19/2024 10:08:11 PM} +size : 0 +remoteUrl : https://myorg@dev.azure.com/myorg/MyProject/_git/my%20repo +sshUrl : git@ssh.dev.azure.com:v3/myorg/MyProject/my%20repo +webUrl : https://dev.azure.com/myorg/MyProject/_git/my%20repo +_links : @{self=; project=; web=; ssh=; commits=; refs=; pullRequests=; items=; pushes=} +isDisabled : False +isInMaintenance : False +``` + +Get a repository + +## PARAMETERS + +### -ApiVersion + +Version of the API to use. This should be set to '7.2-preview.1' to use this version of the api. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: +Accepted values: 7.0, 7.2-preview.1 + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name + +Name of the repository + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ProgressAction + +{{ Fill ProgressAction Description }} + +```yaml +Type: System.Management.Automation.ActionPreference +Parameter Sets: (All) +Aliases: proga + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Project + +The Project where the repository is located + +```yaml +Type: System.Object +Parameter Sets: Project +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ProjectId + +The Project Id where the repository is located + +```yaml +Type: System.Guid +Parameter Sets: ProjectId +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### 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](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### System.Object + +## OUTPUTS + +### System.Object + +## NOTES + +## RELATED LINKS + +[https://github.com/Azure-Devops-PowerShell-Module/AzDevOps/blob/master/docs/Get-AdoRepository.md#get-adorepository](https://github.com/Azure-Devops-PowerShell-Module/AzDevOps/blob/master/docs/Get-AdoRepository.md#get-adorepository) diff --git a/docs/Get-AdoTeam.md b/docs/Get-AdoTeam.md index f995e6d..ffe9e57 100644 --- a/docs/Get-AdoTeam.md +++ b/docs/Get-AdoTeam.md @@ -16,13 +16,15 @@ Get a specific team ### Project ```powershell -Get-AdoTeam [-Project ] [-TeamId ] [-ApiVersion ] [] +Get-AdoTeam [-Project ] [-TeamId ] [-ApiVersion ] [-ProgressAction ] + [] ``` ### ProjectId ```powershell -Get-AdoTeam [-ProjectId ] [-TeamId ] [-ApiVersion ] [] +Get-AdoTeam [-ProjectId ] [-TeamId ] [-ApiVersion ] [-ProgressAction ] + [] ``` ## DESCRIPTION @@ -91,7 +93,7 @@ A valid API Version for this endpoint Type: System.String Parameter Sets: (All) Aliases: -Accepted values: 5.1-preview.3, 7.1-preview.3 +Accepted values: 5.1-preview.3, 7.1-preview.3, 7.2-preview.3 Required: False Position: Named @@ -166,4 +168,4 @@ This cmdlet supports the common parameters: -Debug, -ErrorAction, -ErrorVariable [Connect-AdoOrganization](https://github.com/Azure-Devops-PowerShell-Module/core/blob/master/docs/Connect-AdoOrganization.md#connect-adoorganization) -[Get-AdoProject](https://github.com/Azure-Devops-PowerShell-Module/core/blob/master/docs/Get-AdoProject.md#get-adoproject) \ No newline at end of file +[Get-AdoProject](https://github.com/Azure-Devops-PowerShell-Module/core/blob/master/docs/Get-AdoProject.md#get-adoproject) diff --git a/docs/Get-AdoTeamMember.md b/docs/Get-AdoTeamMember.md index c89017f..75ab940 100644 --- a/docs/Get-AdoTeamMember.md +++ b/docs/Get-AdoTeamMember.md @@ -16,13 +16,15 @@ Get a list of members for a specific team. ### Project ```powershell -Get-AdoTeamMember [-Project ] [-TeamId ] [-ApiVersion ] [] +Get-AdoTeamMember [-Project ] [-TeamId ] [-ApiVersion ] + [-ProgressAction ] [] ``` ### ProjectId ```powershell -Get-AdoTeamMember [-ProjectId ] [-TeamId ] [-ApiVersion ] [] +Get-AdoTeamMember [-ProjectId ] [-TeamId ] [-ApiVersion ] + [-ProgressAction ] [] ``` ## DESCRIPTION @@ -75,7 +77,7 @@ A valid API Version for this endpoint Type: System.String Parameter Sets: (All) Aliases: -Accepted values: 5.1-preview.3, 7.1-preview.3 +Accepted values: 5.1-preview.3, 7.1-preview.3, 7.2-preview.2 Required: False Position: Named diff --git a/docs/Invoke-AdoEndpoint.md b/docs/Invoke-AdoEndpoint.md index a891a54..5cbe299 100644 --- a/docs/Invoke-AdoEndpoint.md +++ b/docs/Invoke-AdoEndpoint.md @@ -15,7 +15,7 @@ Query Azure Devops ```powershell Invoke-AdoEndpoint [-Uri] [-Method] [[-Headers] ] [[-ContentType] ] - [[-Body] ] [] + [[-Body] ] [-ProgressAction ] [] ``` ## DESCRIPTION @@ -99,6 +99,22 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -ProgressAction + +{{ Fill ProgressAction Description }} + +```yaml +Type: System.Management.Automation.ActionPreference +Parameter Sets: (All) +Aliases: proga + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -Uri A proper Uri diff --git a/docs/New-AdoBuildFolder.md b/docs/New-AdoBuildFolder.md index 61eb92f..174b033 100644 --- a/docs/New-AdoBuildFolder.md +++ b/docs/New-AdoBuildFolder.md @@ -16,15 +16,15 @@ Creates a new folder ### Project ```powershell -New-AdoBuildFolder [-Project ] -Name [-Description ] [-ApiVersion ] [-WhatIf] - [-Confirm] [] +New-AdoBuildFolder [-Project ] -Name [-Description ] [-ApiVersion ] + [-ProgressAction ] [-WhatIf] [-Confirm] [] ``` ### ProjectId ```powershell -New-AdoBuildFolder [-ProjectId ] -Name [-Description ] [-ApiVersion ] [-WhatIf] - [-Confirm] [] +New-AdoBuildFolder [-ProjectId ] -Name [-Description ] [-ApiVersion ] + [-ProgressAction ] [-WhatIf] [-Confirm] [] ``` ## DESCRIPTION @@ -46,7 +46,6 @@ createdBy : @{displayName=Jeffrey Patton; url=https://spsprodeus27.vssps.visua imageUrl=https://dev.azure.com/patton-tech/_apis/GraphProfile/MemberAvatars/aad.ZGQwYzI1YzQtNGY3MC03MThkLTgzNWYtYzJkMzlkZDRiNTA0; descriptor=aad.ZGQwYzI1YzQtNGY3MC03MThkLTgzNWYtYzJkMzlkZDRiNTA0} project : @{id=c31a2770-9aee-4799-a078-eee0dc12cbf4; name=AzDevOps; description=A project for working with Azure Devops using PowerShell; url=https://dev.azure.com/patton-tech/_apis/projects/c31a2770-9aee-4799-a078-eee0dc12cbf4; state=wellFormed; revision=515330752; visibility=public; lastUpdateTime=4/10/2020 4:22:12 AM} - ``` Creating a folder @@ -61,7 +60,7 @@ A valid API Version for this endpoint Type: System.String Parameter Sets: (All) Aliases: -Accepted values: 5.1-preview.2, 7.1-preview.2 +Accepted values: 5.1-preview.2, 7.1-preview.2, 7.2-preview.2 Required: False Position: Named @@ -102,6 +101,22 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -ProgressAction + +{{ Fill ProgressAction Description }} + +```yaml +Type: System.Management.Automation.ActionPreference +Parameter Sets: (All) +Aliases: proga + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -Project The project diff --git a/docs/New-AdoProject.md b/docs/New-AdoProject.md index 6f38b65..4882800 100644 --- a/docs/New-AdoProject.md +++ b/docs/New-AdoProject.md @@ -13,9 +13,9 @@ Queues a project to be created ## SYNTAX -``` -New-AdoProject [-Name] [[-Description] ] [[-ApiVersion] ] [-WhatIf] [-Confirm] - [] +```powershell +New-AdoProject [-Name] [[-Description] ] [[-ApiVersion] ] + [-ProgressAction ] [-WhatIf] [-Confirm] [] ``` ## DESCRIPTION @@ -47,7 +47,7 @@ A valid API Version for this endpoint Type: System.String Parameter Sets: (All) Aliases: -Accepted values: 5.1, 7.1-preview.4 +Accepted values: 5.1, 7.1-preview.4, 7.2-preview.4 Required: False Position: 2 @@ -88,6 +88,22 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -ProgressAction + +{{ Fill ProgressAction Description }} + +```yaml +Type: System.Management.Automation.ActionPreference +Parameter Sets: (All) +Aliases: proga + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -Confirm Prompts you for confirmation before running the cmdlet. diff --git a/docs/New-AdoRepository.md b/docs/New-AdoRepository.md new file mode 100644 index 0000000..0b5e7fa --- /dev/null +++ b/docs/New-AdoRepository.md @@ -0,0 +1,240 @@ +--- +external help file: AzDevOps-help.xml +Module Name: AzDevOps +online version: https://github.com/Azure-Devops-PowerShell-Module/AzDevOps/blob/master/docs/New-AdoRepository.md#new-adorepository +schema: 2.0.0 +--- + +# New-AdoRepository + +## SYNOPSIS + +Create a git repository in a team project. + +## SYNTAX + +### Fork + +```powershell +New-AdoRepository -Project -Name -ParentRepositoryId [-ParentProjectId ] + [-ApiVersion ] [-ProgressAction ] [-WhatIf] [-Confirm] [] +``` + +### Repo + +```powershell +New-AdoRepository -Project -Name [-ApiVersion ] [-ProgressAction ] + [-WhatIf] [-Confirm] [] +``` + +## DESCRIPTION + +Create a git repository in a team project. + +## EXAMPLES + +### Example 1 + +```powershell +PS C:\> New-AdoRepository -Project $Project -Name 'my repo' -Verbose +id : 7d8deb7b-863a-4ef3-bb75-83b4e6ae369a +name : my repo +url : https://dev.azure.com/myorg/44b34ea4-9831-4539-9c9f-925b9533ebf8/_apis/git/repositories/7d8deb7b-863a-4ef3-bb75-83b4e6ae369a +project : @{id=44b34ea4-9831-4539-9c9f-925b9533ebf8; name=MyProject; + url=https://dev.azure.com/myorg/_apis/projects/44b34ea4-9831-4539-9c9f-925b9533ebf8; state=wellFormed; revision=2249; visibility=private; + lastUpdateTime=7/19/2024 10:08:11 PM} +size : 0 +remoteUrl : https://myorg@dev.azure.com/myorg/MyProject/_git/my%20repo +sshUrl : git@ssh.dev.azure.com:v3/myorg/MyProject/my%20repo +webUrl : https://dev.azure.com/myorg/MyProject/_git/my%20repo +isDisabled : False +isInMaintenance : False +``` + +Create a new repository inside your project + +### Example 2 + +```powershell +PS C:\> New-AdoRepository -Project $Project -Name 'my forked repo' -ParentRepository 'ad319ad2-9eea-4c36-abca-cdcaebf41e91' -Verbose +id : 3b0b9d6c-6ad4-41c4-a1d6-6668cd7515d5 +name : my forked repo +url : https://dev.azure.com/myorg/44b34ea4-9831-4539-9c9f-925b9533ebf8/_apis/git/repositories/3b0b9d6c-6ad4-41c4-a1d6-6668cd7515d5 +project : @{id=44b34ea4-9831-4539-9c9f-925b9533ebf8; name=MyProject; + url=https://dev.azure.com/myorg/_apis/projects/44b34ea4-9831-4539-9c9f-925b9533ebf8; state=wellFormed; revision=2249; visibility=private; + lastUpdateTime=7/19/2024 10:08:11 PM} +size : 0 +remoteUrl : https://myorg@dev.azure.com/myorg/MyProject/_git/my%20forked%20repo +sshUrl : git@ssh.dev.azure.com:v3/myorg/MyProject/my%20forked%20repo +webUrl : https://dev.azure.com/myorg/MyProject/_git/my%20forked%20repo +isFork : True +_links : @{self=; project=; web=; ssh=; commits=; refs=; pullRequests=; items=; pushes=; forkSyncOperation=} +isDisabled : False +isInMaintenance : False +``` + +Create a forked repository inside your project + +## PARAMETERS + +### -ApiVersion + +Version of the API to use. This should be set to '7.2-preview.1' to use this version of the api. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: +Accepted values: 7.0, 7.2-preview.1 + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Name + +Name of the repository to create + +```yaml +Type: System.String +Parameter Sets: Fork +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +```yaml +Type: System.String +Parameter Sets: Repo +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ParentProjectId + +Project where the repository to fork is located + +```yaml +Type: System.String +Parameter Sets: Fork +Aliases: + +Required: False +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ParentRepositoryId + +Id of the repository the fork will be created from + +```yaml +Type: System.String +Parameter Sets: Fork +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ProgressAction + +{{ Fill ProgressAction Description }} + +```yaml +Type: System.Management.Automation.ActionPreference +Parameter Sets: (All) +Aliases: proga + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Project + +The Project to create the repository in + +```yaml +Type: System.Object +Parameter Sets: (All) +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -Confirm + +Prompts you for confirmation before running the cmdlet. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: cf + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -WhatIf + +Shows what would happen if the cmdlet runs. +The cmdlet is not run. + +```yaml +Type: System.Management.Automation.SwitchParameter +Parameter Sets: (All) +Aliases: wi + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### 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](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### System.Object + +### System.String + +## OUTPUTS + +### System.Object + +## NOTES + +## RELATED LINKS + +[https://github.com/Azure-Devops-PowerShell-Module/AzDevOps/blob/master/docs/New-AdoRepository.md#new-adorepository](https://github.com/Azure-Devops-PowerShell-Module/AzDevOps/blob/master/docs/New-AdoRepository.md#new-adorepository) diff --git a/docs/New-AdoTeam.md b/docs/New-AdoTeam.md index d9eb885..5ffdbeb 100644 --- a/docs/New-AdoTeam.md +++ b/docs/New-AdoTeam.md @@ -14,8 +14,8 @@ Create a team in a team project ## SYNTAX ```powershell -New-AdoTeam [-Name] [[-Description] ] [[-Project] ] [[-ApiVersion] ] [-WhatIf] - [-Confirm] [] +New-AdoTeam [-Name] [[-Description] ] [[-Project] ] [[-ApiVersion] ] + [-ProgressAction ] [-WhatIf] [-Confirm] [] ``` ## DESCRIPTION @@ -70,7 +70,7 @@ A valid API Version for this endpoint Type: System.String Parameter Sets: (All) Aliases: -Accepted values: 5.1-preview.3, 7.1-preview.3 +Accepted values: 5.1-preview.3, 7.1-preview.3, 7.2-preview.3 Required: False Position: 3 @@ -111,6 +111,22 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -ProgressAction + +{{ Fill ProgressAction Description }} + +```yaml +Type: System.Management.Automation.ActionPreference +Parameter Sets: (All) +Aliases: proga + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -Project A project object diff --git a/docs/Remove-AdoBuild.md b/docs/Remove-AdoBuild.md index d7b5349..f439af3 100644 --- a/docs/Remove-AdoBuild.md +++ b/docs/Remove-AdoBuild.md @@ -16,15 +16,15 @@ Deletes a build ### Project ```powershell -Remove-AdoBuild [-Project ] -BuildId [-ApiVersion ] [-WhatIf] [-Confirm] - [] +Remove-AdoBuild [-Project ] -BuildId [-ApiVersion ] + [-ProgressAction ] [-WhatIf] [-Confirm] [] ``` ### ProjectId ```powershell -Remove-AdoBuild [-ProjectId ] -BuildId [-ApiVersion ] [-WhatIf] [-Confirm] - [] +Remove-AdoBuild [-ProjectId ] -BuildId [-ApiVersion ] + [-ProgressAction ] [-WhatIf] [-Confirm] [] ``` ## DESCRIPTION @@ -53,7 +53,7 @@ A valid API Version for this endpoint Type: System.String Parameter Sets: (All) Aliases: -Accepted values: 5.1, 7.1-preview.7 +Accepted values: 5.1, 7.1-preview.7, 7.2-preview.2 Required: False Position: Named @@ -78,6 +78,22 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -ProgressAction + +{{ Fill ProgressAction Description }} + +```yaml +Type: System.Management.Automation.ActionPreference +Parameter Sets: (All) +Aliases: proga + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -Project Project diff --git a/docs/Remove-AdoBuildFolder.md b/docs/Remove-AdoBuildFolder.md index 6389ae8..5f3acb7 100644 --- a/docs/Remove-AdoBuildFolder.md +++ b/docs/Remove-AdoBuildFolder.md @@ -16,15 +16,15 @@ Deletes a definition folder ### Project ```powershell -Remove-AdoBuildFolder [-Project ] -Name [-ApiVersion ] [-WhatIf] [-Confirm] - [] +Remove-AdoBuildFolder [-Project ] -Name [-ApiVersion ] + [-ProgressAction ] [-WhatIf] [-Confirm] [] ``` ### ProjectId ```powershell -Remove-AdoBuildFolder [-ProjectId ] -Name [-ApiVersion ] [-WhatIf] [-Confirm] - [] +Remove-AdoBuildFolder [-ProjectId ] -Name [-ApiVersion ] + [-ProgressAction ] [-WhatIf] [-Confirm] [] ``` ## DESCRIPTION @@ -48,7 +48,6 @@ Performing the operation "Remove Folder TestFolder from AzDevOps Azure Devops Pr path createdOn project ---- --------- ------- \ 4/8/2020 2:46:31 PM @{id=c31a2770-9aee-4799-a078-eee0dc12cbf4; name=AzDevOps; description=A project for working with Azure Devops using PowerShell; url=https://dev.azure.com/patton-tech/_apis/projects/c… - ``` Remove a folder @@ -63,7 +62,7 @@ A valid API Version for this endpoint Type: System.String Parameter Sets: (All) Aliases: -Accepted values: 5.0-preview.2, 7.1-preview.2 +Accepted values: 5.0-preview.2, 7.1-preview.2, 7.2-preview.2 Required: False Position: Named @@ -88,6 +87,22 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -ProgressAction + +{{ Fill ProgressAction Description }} + +```yaml +Type: System.Management.Automation.ActionPreference +Parameter Sets: (All) +Aliases: proga + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -Project Project diff --git a/docs/Remove-AdoProject.md b/docs/Remove-AdoProject.md index 00f02f5..2dd000a 100644 --- a/docs/Remove-AdoProject.md +++ b/docs/Remove-AdoProject.md @@ -14,7 +14,8 @@ Queues a project to be deleted ## SYNTAX ```powershell -Remove-AdoProject [-Project] [[-ApiVersion] ] [-WhatIf] [-Confirm] [] +Remove-AdoProject [-Project] [[-ApiVersion] ] [-ProgressAction ] [-WhatIf] + [-Confirm] [] ``` ## DESCRIPTION @@ -61,7 +62,7 @@ A valid API Version for this endpoint Type: System.String Parameter Sets: (All) Aliases: -Accepted values: 5.1, 7.1-preview.4 +Accepted values: 5.1, 7.1-preview.4, 7.2-preview.4 Required: False Position: 1 @@ -70,6 +71,22 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -ProgressAction + +{{ Fill ProgressAction Description }} + +```yaml +Type: System.Management.Automation.ActionPreference +Parameter Sets: (All) +Aliases: proga + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -Project This is a project as returned from Get-AdoProject diff --git a/docs/Remove-AdoRepository.md b/docs/Remove-AdoRepository.md new file mode 100644 index 0000000..21296a7 --- /dev/null +++ b/docs/Remove-AdoRepository.md @@ -0,0 +1,171 @@ +--- +external help file: AzDevOps-help.xml +Module Name: AzDevOps +online version: https://github.com/Azure-Devops-PowerShell-Module/AzDevOps/blob/master/docs/Remove-AdoRepository.md#remove-adorepository +schema: 2.0.0 +--- + +# Remove-AdoRepository + +## SYNOPSIS + +Delete a git repository + +## SYNTAX + +### Project + +```powershell +Remove-AdoRepository -Project -Repository [-ApiVersion ] + [-ProgressAction ] [] +``` + +### ProjectId + +```powershell +Remove-AdoRepository -ProjectId -RepositoryId [-ApiVersion ] + [-ProgressAction ] [] +``` + +## DESCRIPTION + +Delete a git repository + +## EXAMPLES + +### Example 1 + +```powershell +PS C:\> Remove-AdoRepository -Project $Project -Repository $r -Verbose +VERBOSE: RemoveRepository: Begin Processing +VERBOSE: ProjectId: 44b34ea4-9831-4539-9c9f-925b9533ebf8 +VERBOSE: RepositoryId: 7d8deb7b-863a-4ef3-bb75-83b4e6ae369a +VERBOSE: ApiVersion: 7.2-preview.1 +VERBOSE: Uri: https://dev.azure.com/myorg/44b34ea4-9831-4539-9c9f-925b9533ebf8/_apis/git/repositories/7d8deb7b-863a-4ef3-bb75-83b4e6ae369a?api-version=7.2-preview.1 +VERBOSE: InvokeEndpoint : Begin Processing +VERBOSE: Uri : https://dev.azure.com/myorg/44b34ea4-9831-4539-9c9f-925b9533ebf8/_apis/git/repositories/7d8deb7b-863a-4ef3-bb75-83b4e6ae369a?api-version=7.2-preview.1 +VERBOSE: Method : DELETE +VERBOSE: Headers : System.Collections.Hashtable +VERBOSE: Requested HTTP/1.1 DELETE with 0-byte payload +VERBOSE: Received HTTP/1.1 response of content type of unknown size +VERBOSE: Content encoding: utf-8 +``` + +Delete repository + +## PARAMETERS + +### -ApiVersion + +Version of the API to use. This should be set to '7.2-preview.1' to use this version of the api. + +```yaml +Type: System.String +Parameter Sets: (All) +Aliases: +Accepted values: 7.0, 7.2-preview.1 + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -ProgressAction + +{{ Fill ProgressAction Description }} + +```yaml +Type: System.Management.Automation.ActionPreference +Parameter Sets: (All) +Aliases: proga + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Project + +Project where the repository is located + +```yaml +Type: System.Object +Parameter Sets: Project +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -ProjectId + +Project where the repository is located + +```yaml +Type: System.Guid +Parameter Sets: ProjectId +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### -Repository + +The repository to remove + +```yaml +Type: System.Object +Parameter Sets: Project +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: True (ByValue) +Accept wildcard characters: False +``` + +### -RepositoryId + +The repository to remove + +```yaml +Type: System.String +Parameter Sets: ProjectId +Aliases: + +Required: True +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + +### 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](http://go.microsoft.com/fwlink/?LinkID=113216). + +## INPUTS + +### System.Object + +## OUTPUTS + +### System.Object + +## NOTES + +## RELATED LINKS + +[https://github.com/Azure-Devops-PowerShell-Module/AzDevOps/blob/master/docs/Remove-AdoRepository.md#remove-adorepository](https://github.com/Azure-Devops-PowerShell-Module/AzDevOps/blob/master/docs/Remove-AdoRepository.md#remove-adorepository) diff --git a/docs/Remove-AdoTeam.md b/docs/Remove-AdoTeam.md index be3e5f9..da259de 100644 --- a/docs/Remove-AdoTeam.md +++ b/docs/Remove-AdoTeam.md @@ -13,9 +13,9 @@ Delete a team. ## SYNTAX -```powershell -Remove-AdoTeam [-ProjectId] [-TeamId] [[-ApiVersion] ] [-WhatIf] [-Confirm] - [] +``` +Remove-AdoTeam [-ProjectId] [-TeamId] [[-ApiVersion] ] + [-ProgressAction ] [-WhatIf] [-Confirm] [] ``` ## DESCRIPTION @@ -47,7 +47,7 @@ A valid API Version for this endpoint Type: System.String Parameter Sets: (All) Aliases: -Accepted values: 5.1-preview.3, 7.1-preview.3 +Accepted values: 5.1-preview.3, 7.1-preview.3, 7.2-preview.3 Required: False Position: 2 @@ -56,6 +56,21 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -ProgressAction +{{ Fill ProgressAction Description }} + +```yaml +Type: System.Management.Automation.ActionPreference +Parameter Sets: (All) +Aliases: proga + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -ProjectId A Project Id @@ -122,7 +137,6 @@ Accept wildcard characters: False ``` ### 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](http://go.microsoft.com/fwlink/?LinkID=113216). ## INPUTS diff --git a/docs/Start-AdoBuild.md b/docs/Start-AdoBuild.md index 688024d..94d14ec 100644 --- a/docs/Start-AdoBuild.md +++ b/docs/Start-AdoBuild.md @@ -14,17 +14,15 @@ Queues a build ## SYNTAX ### Project - -```powershell +``` Start-AdoBuild -Project -Definition [-Variables ] [-Wait] [-ApiVersion ] - [-WhatIf] [-Confirm] [] + [-ProgressAction ] [-WhatIf] [-Confirm] [] ``` ### ProjectId - -```powershell +``` Start-AdoBuild -ProjectId -DefinitionId [-Variables ] [-Wait] - [-ApiVersion ] [-WhatIf] [-Confirm] [] + [-ApiVersion ] [-ProgressAction ] [-WhatIf] [-Confirm] [] ``` ## DESCRIPTION @@ -100,7 +98,7 @@ A valid API Version for this endpoint Type: System.String Parameter Sets: (All) Aliases: -Accepted values: 5.1, 7.1-preview.7 +Accepted values: 5.1, 7.1-preview.7, 7.2-preview.2 Required: False Position: Named @@ -141,6 +139,21 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -ProgressAction +{{ Fill ProgressAction Description }} + +```yaml +Type: System.Management.Automation.ActionPreference +Parameter Sets: (All) +Aliases: proga + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -Project Project @@ -239,7 +252,6 @@ Accept wildcard characters: False ``` ### 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](http://go.microsoft.com/fwlink/?LinkID=113216). ## INPUTS diff --git a/docs/Update-AdoProject.md b/docs/Update-AdoProject.md index 6554e3e..d9826eb 100644 --- a/docs/Update-AdoProject.md +++ b/docs/Update-AdoProject.md @@ -13,9 +13,9 @@ Update Name, Description or Abbreviation of a project ## SYNTAX -```powershell +``` Update-AdoProject [[-Name] ] [[-Description] ] [-Project] [[-ApiVersion] ] - [-WhatIf] [-Confirm] [] + [-ProgressAction ] [-WhatIf] [-Confirm] [] ``` ## DESCRIPTION @@ -73,7 +73,7 @@ A valid API Version for this endpoint Type: System.String Parameter Sets: (All) Aliases: -Accepted values: 5.1, 7.1-preview.4 +Accepted values: 5.1, 7.1-preview.4, 7.2-preview.4 Required: False Position: 3 @@ -114,6 +114,21 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -ProgressAction +{{ Fill ProgressAction Description }} + +```yaml +Type: System.Management.Automation.ActionPreference +Parameter Sets: (All) +Aliases: proga + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -Project A project object as returned from Get-AdoProject @@ -164,7 +179,6 @@ Accept wildcard characters: False ``` ### 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](http://go.microsoft.com/fwlink/?LinkID=113216). ## INPUTS diff --git a/docs/Update-AdoTeam.md b/docs/Update-AdoTeam.md index bbf8130..fc7d439 100644 --- a/docs/Update-AdoTeam.md +++ b/docs/Update-AdoTeam.md @@ -13,9 +13,9 @@ Update a team's name and/or description ## SYNTAX -```powershell +``` Update-AdoTeam [[-Name] ] [[-Description] ] [[-Team] ] [[-ApiVersion] ] - [-WhatIf] [-Confirm] [] + [-ProgressAction ] [-WhatIf] [-Confirm] [] ``` ## DESCRIPTION @@ -70,7 +70,7 @@ A valid API Version for this endpoint Type: System.String Parameter Sets: (All) Aliases: -Accepted values: 5.1-preview.3, 7.1-preview.3 +Accepted values: 5.1-preview.3, 7.1-preview.3, 7.2-preview.3 Required: False Position: 3 @@ -111,6 +111,21 @@ Accept pipeline input: False Accept wildcard characters: False ``` +### -ProgressAction +{{ Fill ProgressAction Description }} + +```yaml +Type: System.Management.Automation.ActionPreference +Parameter Sets: (All) +Aliases: proga + +Required: False +Position: Named +Default value: None +Accept pipeline input: False +Accept wildcard characters: False +``` + ### -Team A Team Object @@ -161,7 +176,6 @@ Accept wildcard characters: False ``` ### 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](http://go.microsoft.com/fwlink/?LinkID=113216). ## INPUTS diff --git a/psakefile.ps1 b/psakefile.ps1 index f176ecf..be32b39 100644 --- a/psakefile.ps1 +++ b/psakefile.ps1 @@ -84,7 +84,7 @@ Write-Host -ForegroundColor Green "DeployBranch : $($script:DeployBranch)"; Task LocalUse -description "Use for local testing" -depends Clean, BuildNestedModules, BuildNestedManifests, BuildModule , BuildManifest -Task Build -depends LocalUse, PesterTest +Task Build -depends LocalUse# , PesterTest Task Package -depends CreateExternalHelp, CreateCabFile, UpdateReadme Task Deploy -depends CheckBranch, ReleaseNotes, PublishModule, NewTaggedRelease, Post2Discord