Skip to content

Commit 5590313

Browse files
Merge pull request #61 from Azure-Devops-PowerShell-Module/issue-60
Issue-60
2 parents f20a43c + 0dfbf03 commit 5590313

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

61 files changed

+1992
-793
lines changed

AzDevOps/AzDevOps.psd1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
RootModule = 'AzDevOps.psm1'
1313

1414
# Version number of this module.
15-
ModuleVersion = '2.1.0'
15+
ModuleVersion = '3.0.0'
1616

1717
# Supported PSEditions
1818
# CompatiblePSEditions = @()

AzDevOps/azdevops/public/InvokeEndpoint.ps1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ function Invoke-Endpoint
1919
)
2020
begin
2121
{
22-
Write-Verbose "InvokeRestMethod : Begin Processing";
22+
Write-Verbose "InvokeEndpoint : Begin Processing";
2323
Write-Verbose " Uri : $($Uri.AbsoluteUri)";
2424
Write-Verbose " Method : $($Method)";
2525
Write-Verbose " Headers : $($Headers)";

AzDevOps/build/build.psd1

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212
RootModule = 'build.psm1'
1313

1414
# Version number of this module.
15-
ModuleVersion = '2.0.0'
15+
ModuleVersion = '3.0.0'
1616

1717
# Supported PSEditions
1818
# CompatiblePSEditions = @()

AzDevOps/build/builds/public/GetBuild.ps1

Lines changed: 62 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -2,61 +2,94 @@ function Get-Build
22
{
33
[CmdletBinding(
44
HelpURI = 'https://github.com/Azure-Devops-PowerShell-Module/build/blob/master/docs/Get-AdoBuild.md#get-adobuild',
5-
PositionalBinding = $true)]
5+
PositionalBinding = $true
6+
)]
67
[OutputType([Object])]
78
param (
89
[Parameter(ValueFromPipeline, Mandatory = $false, ParameterSetName = 'Project')]
910
[object]$Project,
11+
1012
[Parameter(Mandatory = $false, ParameterSetName = 'ProjectId')]
1113
[Guid]$ProjectId,
14+
1215
[Parameter(Mandatory = $false, ParameterSetName = 'Project')]
1316
[Parameter(Mandatory = $false, ParameterSetName = 'ProjectId')]
1417
[int]$BuildId,
18+
1519
[Parameter(Mandatory = $false)]
16-
[ValidateSet('5.1', '7.1-preview.7')]
17-
[string]$ApiVersion = '7.1-preview.7'
20+
[ValidateSet('5.1', '7.1-preview.7', '7.2-preview.7')]
21+
[string]$ApiVersion = '7.2-preview.7'
1822
)
23+
1924
begin
2025
{
21-
Write-Verbose "GetBuild : Begin Processing";
26+
Write-Verbose "Get-AdoBuild: Begin Processing"
2227
if ($PSCmdlet.ParameterSetName -eq 'Project')
2328
{
24-
Write-Verbose " ProjectId : $($Project.Id)";
29+
Write-Verbose "ProjectId: $($Project.id)"
2530
}
2631
else
2732
{
28-
Write-Verbose " ProjectId : $($ProjectId)";
33+
Write-Verbose "ProjectId: $($ProjectId)"
2934
}
30-
Write-Verbose " BuildId : $($BuildId)";
31-
Write-Verbose " ApiVersion : $($ApiVersion)";
35+
Write-Verbose "BuildId: $($BuildId)"
36+
Write-Verbose "ApiVersion: $($ApiVersion)"
37+
}
38+
39+
process
40+
{
3241
try
3342
{
34-
$ErrorActionPreference = 'Stop';
35-
$Error.Clear();
36-
#
37-
# Are we connected
38-
#
39-
if ($Global:azDevOpsConnected)
43+
$ErrorActionPreference = 'Stop'
44+
$Error.Clear()
45+
46+
if (-not $Global:azDevOpsConnected)
47+
{
48+
throw "Not connected to Azure DevOps. Please connect using Connect-AzDevOps."
49+
}
50+
51+
$BaseUri = if ($PSCmdlet.ParameterSetName -eq 'Project')
52+
{
53+
"$($Global:azDevOpsOrg)$($Project.Id)/_apis/build/builds"
54+
}
55+
else
56+
{
57+
"$($Global:azDevOpsOrg)$($ProjectId)/_apis/build/builds"
58+
}
59+
60+
Write-Verbose "BaseUri: $BaseUri"
61+
62+
$Uri = if ($BuildId)
4063
{
41-
if ($PSCmdlet.ParameterSetName -eq 'ProjectId')
42-
{
43-
$Project = Get-AdoProject -ProjectId $ProjectId -Verbose:$VerbosePreference;
44-
}
45-
$Uri = $Global:azDevOpsOrg + "$($Project.Id)/_apis/build/builds?api-version=$($ApiVersion)";
46-
if ($BuildId)
47-
{
48-
$Uri = $Global:azDevOpsOrg + "$($Project.Id)/_apis/build/builds/$($BuildId)?api-version=$($ApiVersion)";
49-
return (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference);
50-
}
51-
else
52-
{
53-
return (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference).Value;
54-
}
64+
"$($BaseUri)/$($BuildId)?api-version=$($ApiVersion)"
65+
}
66+
else
67+
{
68+
"$($BaseUri)?api-version=$($ApiVersion)"
69+
}
70+
71+
Write-Verbose "Uri: $($Uri)"
72+
73+
$Response = Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference
74+
75+
if ($BuildId)
76+
{
77+
return $Response
78+
}
79+
else
80+
{
81+
return $Response.Value
5582
}
5683
}
5784
catch
5885
{
59-
throw $_;
86+
Write-Error "Error retrieving build(s): $_"
87+
throw $_
6088
}
6189
}
90+
91+
end
92+
{
93+
Write-Verbose "Get-AdoBuild: End Processing"
94+
}
6295
}

AzDevOps/build/builds/public/GetBuildLog.ps1

Lines changed: 65 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -2,68 +2,108 @@ function Get-BuildLog
22
{
33
[CmdletBinding(
44
HelpURI = 'https://github.com/Azure-Devops-PowerShell-Module/build/blob/master/docs/Get-AdoBuildLog.md#get-adobuildlog',
5-
PositionalBinding = $true)]
5+
PositionalBinding = $true
6+
)]
67
[OutputType([Object])]
78
param (
89
[Parameter(ValueFromPipeline, Mandatory = $true, ParameterSetName = 'Project')]
910
[object]$Project,
11+
1012
[Parameter(ValueFromPipeline, Mandatory = $true, ParameterSetName = 'Project')]
1113
[object]$Build,
14+
1215
[Parameter(Mandatory = $true, ParameterSetName = 'ProjectId')]
1316
[Guid]$ProjectId,
17+
1418
[Parameter(Mandatory = $true, ParameterSetName = 'ProjectId')]
1519
[int]$BuildId,
20+
1621
[Parameter(Mandatory = $false, ParameterSetName = 'Project')]
1722
[Parameter(Mandatory = $false, ParameterSetName = 'ProjectId')]
1823
[int]$LogId,
24+
1925
[Parameter(Mandatory = $false)]
20-
[ValidateSet('5.1', '7.1-preview.2')]
21-
[string]$ApiVersion = '7.1-preview.2'
26+
[ValidateSet('5.1', '7.1-preview.2','7.2-preview.2')]
27+
[string]$ApiVersion = '7.2-preview.2'
2228
)
23-
process
29+
30+
begin
2431
{
25-
Write-Verbose "GetBuildLog : Process Record";
32+
Write-Verbose "Get-BuildLog: Begin Processing"
2633
if ($PSCmdlet.ParameterSetName -eq 'Project')
2734
{
28-
Write-Verbose " ProjectID : $($Project.Id)";
29-
Write-Verbose " BuildId : $($Build.Id)";
35+
Write-Verbose "Project URL: $($Project.url)"
36+
Write-Verbose "Build ID: $($Build.Id)"
3037
}
3138
else
3239
{
33-
Write-Verbose " ProjectID : $($ProjectId)";
34-
Write-Verbose " BuildId : $($BuildId)";
40+
Write-Verbose "ProjectId: $($ProjectId)"
41+
Write-Verbose "BuildId: $($BuildId)"
3542
}
36-
Write-Verbose " LogId : $($LogId)";
37-
Write-Verbose " ApiVersion : $($ApiVersion)";
43+
Write-Verbose "LogId: $($LogId)"
44+
Write-Verbose "ApiVersion: $($ApiVersion)"
45+
}
46+
47+
process
48+
{
3849
try
3950
{
40-
$ErrorActionPreference = 'Stop';
41-
$Error.Clear();
42-
#
43-
# Are we connected
44-
#
45-
if ($Global:azDevOpsConnected)
51+
$ErrorActionPreference = 'Stop'
52+
$Error.Clear()
53+
54+
if (-not $Global:azDevOpsConnected)
4655
{
47-
if ($PSCmdlet.ParameterSetName -eq 'ProjectId')
56+
throw "Not connected to Azure DevOps. Please connect using Connect-AzDevOps."
57+
}
58+
59+
if ($PSCmdlet.ParameterSetName -eq 'Project')
60+
{
61+
$BaseUri = "$($Global:azDevOpsOrg)$($Project.Id)/_apis/build/builds/$($Build.Id)/logs"
62+
if ($LogId)
63+
{
64+
$Uri = "$($BaseUri)/$($LogId)?api-version=$($ApiVersion)"
65+
}
66+
else
4867
{
49-
$Project = Get-AdoProject -ProjectId $ProjectId -Verbose:$VerbosePreference;
50-
$Build = Get-AdoBuild -ProjectId $Project.id -BuildId $BuildId -Verbose:$VerbosePreference;
68+
$Uri = "$($BaseUri)?api-version=$($ApiVersion)"
5169
}
52-
$Uri = $Global:azDevOpsOrg + "$($Project.Id)/_apis/build/builds/$($Build.Id)/logs?api-version=$($ApiVersion)";
70+
}
71+
else
72+
{
73+
$BaseUri = "$($Global:azDevOpsOrg)$($ProjectId)/_apis/build/builds/$($BuildId)/logs"
5374
if ($LogId)
5475
{
55-
$Uri = $Global:azDevOpsOrg + "$($Project.Id)/_apis/build/builds/$($Build.Id)/logs/$($LogId)?api-version=$($ApiVersion)";
56-
return (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference);
76+
$Uri = "$($BaseUri)/$($LogId)?api-version=$($ApiVersion)"
5777
}
5878
else
5979
{
60-
return (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference).Value;
80+
$Uri = "$($BaseUri)?api-version=$($ApiVersion)"
6181
}
6282
}
83+
84+
Write-Verbose "BaseUri: $($BaseUri)"
85+
Write-Verbose "Uri: $($Uri)"
86+
87+
$Response = Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Get -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference
88+
89+
if ($LogId)
90+
{
91+
return $Response
92+
}
93+
else
94+
{
95+
return $Response.Value
96+
}
6397
}
6498
catch
6599
{
66-
throw $_;
100+
Write-Error "Error retrieving build log(s): $_"
101+
throw $_
67102
}
68103
}
104+
105+
end
106+
{
107+
Write-Verbose "Get-BuildLog: End Processing"
108+
}
69109
}

AzDevOps/build/builds/public/RemoveBuild.ps1

Lines changed: 46 additions & 31 deletions
Original file line numberDiff line numberDiff line change
@@ -7,64 +7,79 @@ function Remove-Build
77
param (
88
[Parameter(ValueFromPipeline, Mandatory = $false, ParameterSetName = 'Project')]
99
[object]$Project,
10+
1011
[Parameter(Mandatory = $false, ParameterSetName = 'ProjectId')]
1112
[Guid]$ProjectId,
13+
1214
[Parameter(Mandatory = $true, ParameterSetName = 'Project')]
1315
[Parameter(Mandatory = $true, ParameterSetName = 'ProjectId')]
1416
[int]$BuildId,
17+
1518
[Parameter(Mandatory = $false)]
16-
[ValidateSet('5.1', '7.1-preview.7')]
17-
[string]$ApiVersion = '7.1-preview.7'
19+
[ValidateSet('5.1', '7.1-preview.7','7.2-preview.2')]
20+
[string]$ApiVersion = '7.2-preview.2'
1821
)
22+
1923
process
2024
{
21-
Write-Verbose "RemoveBuild : Process Record";
25+
Write-Verbose "Remove-Build: Process Record"
2226
if ($PSCmdlet.ParameterSetName -eq 'Project')
2327
{
24-
Write-Verbose " ProjectID : $($Project.Id)";
25-
Write-Verbose " BuildId : $($Build.Id)";
28+
Write-Verbose "Project URL: $($Project.url)"
29+
Write-Verbose "Build ID: $($BuildId)"
2630
}
2731
else
2832
{
29-
Write-Verbose " ProjectID : $($ProjectId)";
30-
Write-Verbose " BuildId : $($BuildId)";
33+
Write-Verbose "ProjectId: $($ProjectId)"
34+
Write-Verbose "BuildId: $($BuildId)"
3135
}
32-
Write-Verbose " ApiVersion : $($ApiVersion)";
36+
Write-Verbose "ApiVersion: $($ApiVersion)"
37+
3338
try
3439
{
35-
$ErrorActionPreference = 'Stop';
36-
$Error.Clear();
37-
#
38-
# Are we connected
39-
#
40-
if ($Global:azDevOpsConnected)
40+
$ErrorActionPreference = 'Stop'
41+
$Error.Clear()
42+
43+
if (-not $Global:azDevOpsConnected)
4144
{
42-
if ($PSCmdlet.ParameterSetName -eq 'ProjectId')
43-
{
44-
$Project = Get-AdoProject -ProjectId $ProjectId -Verbose:$VerbosePreference;
45-
$Build = Get-AdoBuild -ProjectId $Project.Id -BuildId $BuildId -Verbose:$VerbosePreference;
46-
}
47-
if (!($Build.deleted))
45+
throw "Not connected to Azure DevOps. Please connect using Connect-AzDevOps."
46+
}
47+
48+
$BaseUri = if ($PSCmdlet.ParameterSetName -eq 'Project')
49+
{
50+
"$($Global:azDevOpsOrg)$($Project.Id)/_apis/build/builds/$($BuildId)"
51+
}
52+
else
53+
{
54+
"$($Global:azDevOpsOrg)$($ProjectId)/_apis/build/builds/$($BuildId)"
55+
}
56+
57+
$Uri = "$($BaseUri)?api-version=$($ApiVersion)"
58+
59+
Write-Verbose "BaseUri: $($BaseUri)"
60+
Write-Verbose "Uri: $($Uri)"
61+
62+
if ($PSCmdlet.ShouldProcess("Delete", "Remove Build $($BuildId) from Azure DevOps Project"))
63+
{
64+
$Result = Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Delete -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference
65+
66+
if (-not $Result)
4867
{
49-
$Uri = $Global:azDevOpsOrg + "$($Project.Id)/_apis/build/builds/$($Build.Id)?api-version=$($ApiVersion)";
50-
if ($PSCmdlet.ShouldProcess("Delete", "Remove Build $($Build.Id) from $($Project.name) Azure Devops Projects"))
68+
if ($PSCmdlet.ParameterSetName -eq 'Project')
5169
{
52-
$Result = (Invoke-AdoEndpoint -Uri ([System.Uri]::new($Uri)) -Method Delete -Headers $Global:azDevOpsHeader -Verbose:$VerbosePreference);
70+
return "Build: $($BuildId) removed from Project: $($Project.name)"
5371
}
54-
if (!($Result))
72+
else
5573
{
56-
return "Build : $($Build.id) removed from Project : $($Project.name)"
74+
return "Build: $($BuildId) removed from Project ID: $($ProjectId)"
5775
}
5876
}
59-
else
60-
{
61-
return "Build : $($Build.id) was deleted on $(Get-Date ($Build.deletedDate)) by $($Build.deletedBy.displayName)"
62-
}
6377
}
6478
}
6579
catch
6680
{
67-
throw $_;
81+
Write-Error "Error removing build: $_"
82+
throw $_
6883
}
6984
}
70-
}
85+
}

0 commit comments

Comments
 (0)