Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
24 commits
Select commit Hold shift + click to select a range
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion AzDevOps/AzDevOps.psd1
Original file line numberDiff line numberDiff line change
Expand Up@@ -12,7 +12,7 @@
RootModule = 'AzDevOps.psm1'

# Version number of this module.
ModuleVersion = '2.1.0'
ModuleVersion = '3.0.0'

# Supported PSEditions
# CompatiblePSEditions = @()
Expand Down
2 changes: 1 addition & 1 deletion AzDevOps/azdevops/public/InvokeEndpoint.ps1
Original file line numberDiff line numberDiff line change
Expand Up@@ -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)";
Expand Down
2 changes: 1 addition & 1 deletion AzDevOps/build/build.psd1
Original file line numberDiff line numberDiff line change
Expand Up@@ -12,7 +12,7 @@
RootModule = 'build.psm1'

# Version number of this module.
ModuleVersion = '2.0.0'
ModuleVersion = '3.0.0'

# Supported PSEditions
# CompatiblePSEditions = @()
Expand Down
91 changes: 62 additions & 29 deletions AzDevOps/build/builds/public/GetBuild.ps1
Original file line numberDiff line numberDiff line change
Expand Up@@ -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"
}
}
90 changes: 65 additions & 25 deletions AzDevOps/build/builds/public/GetBuildLog.ps1
Original file line numberDiff line numberDiff line change
Expand Up@@ -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"
}
}
77 changes: 46 additions & 31 deletions AzDevOps/build/builds/public/RemoveBuild.ps1
Original file line numberDiff line numberDiff line change
Expand Up@@ -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 $_
}
}
}
}
Loading