diff --git a/.github/workflows/TestAndPublish.yml b/.github/workflows/TestAndPublish.yml
index bcd50a5a..ada72ae3 100644
--- a/.github/workflows/TestAndPublish.yml
+++ b/.github/workflows/TestAndPublish.yml
@@ -117,7 +117,7 @@ jobs:
Install-Module -Name Pester -Repository PSGallery -Force -Scope CurrentUser -MaximumVersion $PesterMaxVersion -SkipPublisherCheck -AllowClobber
Import-Module Pester -Force -PassThru -MaximumVersion $PesterMaxVersion} @Parameters
- name: Check out repository
- uses: actions/checkout@v2
+ uses: actions/checkout@v4
- name: RunPester
id: RunPester
shell: pwsh
@@ -174,9 +174,6 @@ jobs:
$result =
Invoke-Pester -PassThru -Verbose -OutputFile ".\$moduleName.TestResults.xml" -OutputFormat NUnitXml @codeCoverageParameters
- "::set-output name=TotalCount::$($result.TotalCount)",
- "::set-output name=PassedCount::$($result.PassedCount)",
- "::set-output name=FailedCount::$($result.FailedCount)" | Out-Host
if ($result.FailedCount -gt 0) {
"::debug:: $($result.FailedCount) tests failed"
foreach ($r in $result.TestResult) {
@@ -188,7 +185,7 @@ jobs:
}
} @Parameters
- name: PublishTestResults
- uses: actions/upload-artifact@v2
+ uses: actions/upload-artifact@v3
with:
name: PesterResults
path: '**.TestResults.xml'
@@ -575,7 +572,7 @@ jobs:
if: ${{ success() }}
steps:
- name: Check out repository
- uses: actions/checkout@v2
+ uses: actions/checkout@v4
- name: Use PSSVG Action
uses: StartAutomating/PSSVG@main
id: PSSVG
@@ -585,6 +582,46 @@ jobs:
uses: StartAutomating/EZOut@master
- name: UseHelpOut
uses: StartAutomating/HelpOut@master
+ - name: Log in to ghcr.io
+ uses: docker/login-action@master
+ with:
+ registry: ${{ env.REGISTRY }}
+ username: ${{ github.actor }}
+ password: ${{ secrets.GITHUB_TOKEN }}
+ env:
+ REGISTRY: ghcr.io
+ - name: Extract Docker Metadata (for branch)
+ if: ${{github.ref_name != 'main' && github.ref_name != 'master' && github.ref_name != 'latest'}}
+ id: meta
+ uses: docker/metadata-action@master
+ with:
+ images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
+ env:
+ REGISTRY: ghcr.io
+ IMAGE_NAME: ${{ github.repository }}
+ - name: Extract Docker Metadata (for main)
+ if: ${{github.ref_name == 'main' || github.ref_name == 'master' || github.ref_name == 'latest'}}
+ id: metaMain
+ uses: docker/metadata-action@master
+ with:
+ images: ${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}
+ flavor: latest=true
+ - name: Build and push Docker image (from main)
+ if: ${{github.ref_name == 'main' || github.ref_name == 'master' || github.ref_name == 'latest'}}
+ uses: docker/build-push-action@master
+ with:
+ context: .
+ push: true
+ tags: ${{ steps.metaMain.outputs.tags }}
+ labels: ${{ steps.metaMain.outputs.labels }}
+ - name: Build and push Docker image (from branch)
+ if: ${{github.ref_name != 'main' && github.ref_name != 'master' && github.ref_name != 'latest'}}
+ uses: docker/build-push-action@master
+ with:
+ context: .
+ push: true
+ tags: ${{ steps.meta.outputs.tags }}
+ labels: ${{ steps.meta.outputs.labels }}
env:
NoCoverage: true
SYSTEM_ACCESSTOKEN: ${{ secrets.AZUREDEVOPSPAT }}
diff --git a/Assets/PSDevOps.svg b/Assets/PSDevOps.svg
index c86ebc95..eb6f12f2 100644
--- a/Assets/PSDevOps.svg
+++ b/Assets/PSDevOps.svg
@@ -1,4 +1,5 @@
-
+
+
\ No newline at end of file
+
diff --git a/Container.init.ps1 b/Container.init.ps1
new file mode 100644
index 00000000..e8a17dfd
--- /dev/null
+++ b/Container.init.ps1
@@ -0,0 +1,95 @@
+<#
+.SYNOPSIS
+ Initializes a container during build.
+.DESCRIPTION
+ Initializes the container image with the necessary modules and packages.
+
+ This script should be called from the Dockerfile, during the creation of the container image.
+
+ ~~~Dockerfile
+ # Thank you Microsoft! Thank you PowerShell! Thank you Docker!
+ FROM mcr.microsoft.com/powershell
+ # Set the shell to PowerShell (thanks again, Docker!)
+ SHELL ["/bin/pwsh", "-nologo", "-command"]
+ # Run the initialization script. This will do all remaining initialization in a single layer.
+ RUN --mount=type=bind,src=./,target=/Initialize ./Initialize/Container.init.ps1
+ ~~~
+
+ The scripts arguments can be provided with either an `ARG` or `ENV` instruction in the Dockerfile.
+.NOTES
+ Did you know that in PowerShell you can 'use' namespaces that do not really exist?
+ This seems like a nice way to describe a relationship to a container image.
+ That is why this file is using the namespace 'mcr.microsoft.com/powershell'.
+ (this does nothing, but most likely will be used in the future)
+#>
+using namespace 'mcr.microsoft.com/powershell'
+
+param(
+# The name of the module to be installed.
+[string]$ModuleName = $(
+ if ($env:ModuleName) { $env:ModuleName }
+ else {
+ (Get-ChildItem -Path $PSScriptRoot |
+ Where-Object Extension -eq '.psd1' |
+ Select-String 'ModuleVersion\s=' |
+ Select-Object -ExpandProperty Path -First 1) -replace '\.psd1$'
+ }
+),
+# The packages to be installed.
+[string[]]$InstallPackages = @(
+ if ($env:InstallPackages) { $env:InstallPackages -split ',' }
+ else { }
+),
+# The modules to be installed.
+[string[]]$InstallModules = @(
+ if ($env:InstallModules) { $env:InstallModules -split ',' }
+ else { }
+)
+)
+
+
+# Get the root module directory
+$rootModuleDirectory = @($env:PSModulePath -split '[;:]')[0]
+
+# Determine the path to the module destination.
+$moduleDestination = "$rootModuleDirectory/$ModuleName"
+# Copy the module to the destination
+# (this is being used instead of the COPY statement in Docker, to avoid additional layers).
+Copy-Item -Path "$psScriptRoot" -Destination $moduleDestination -Recurse -Force
+
+# Copy all container-related scripts to the root of the container.
+Get-ChildItem -Path $PSScriptRoot |
+ Where-Object Name -Match '^Container\..+?\.ps1$' |
+ Copy-Item -Destination /
+
+# If we have packages to install
+if ($InstallPackages) {
+ # install the packages
+ apt-get update && apt-get install -y @InstallPackages && apt-get clean | Out-Host
+}
+
+# Create a new profile
+New-Item -Path $Profile -ItemType File -Force |
+ # and import this module in the profile
+ Add-Content -Value "Import-Module $ModuleName" -Force
+# If we have modules to install
+if ($InstallModules) {
+ # Install the modules
+ Install-Module -Name $InstallModules -Force -AcceptLicense -Scope CurrentUser
+ # and import them in the profile
+ Add-Content -Path $Profile -Value "Import-Module '$($InstallModules -join "','")'" -Force
+}
+# In our profile, push into the module's directory
+Add-Content -Path $Profile -Value "Get-Module $ModuleName | Split-Path | Push-Location" -Force
+
+# Remove the .git directories from any modules
+Get-ChildItem -Path $rootModuleDirectory -Directory -Force -Recurse |
+ Where-Object Name -eq '.git' |
+ Remove-Item -Recurse -Force
+
+# Congratulations! You have successfully initialized the container image.
+# This script should work in about any module, with minor adjustments.
+# If you have any adjustments, please put them below here, in the `#region Custom`
+
+#region Custom
+#endregion Custom
\ No newline at end of file
diff --git a/Container.start.ps1 b/Container.start.ps1
new file mode 100644
index 00000000..da42a407
--- /dev/null
+++ b/Container.start.ps1
@@ -0,0 +1,63 @@
+<#
+.SYNOPSIS
+ Starts the container.
+.DESCRIPTION
+ Starts a container.
+
+ This script should be called from the Dockerfile as the ENTRYPOINT (or from within the ENTRYPOINT).
+
+ It should be deployed to the root of the container image.
+
+ ~~~Dockerfile
+ # Thank you Microsoft! Thank you PowerShell! Thank you Docker!
+ FROM mcr.microsoft.com/powershell
+ # Set the shell to PowerShell (thanks again, Docker!)
+ SHELL ["/bin/pwsh", "-nologo", "-command"]
+ # Run the initialization script. This will do all remaining initialization in a single layer.
+ RUN --mount=type=bind,src=./,target=/Initialize ./Initialize/Container.init.ps1
+
+ ENTRYPOINT ["pwsh", "-nologo", "-file", "/Container.start.ps1"]
+ ~~~
+.NOTES
+ Did you know that in PowerShell you can 'use' namespaces that do not really exist?
+ This seems like a nice way to describe a relationship to a container image.
+ That is why this file is using the namespace 'mcr.microsoft.com/powershell'.
+ (this does nothing, but most likely will be used in the future)
+#>
+using namespace 'ghcr.io/startautomating/psdevops'
+
+param()
+
+$env:IN_CONTAINER = $true
+$PSStyle.OutputRendering = 'Ansi'
+
+$mountedDrives = @(if (Test-Path '/proc/mounts') {
+ (Select-String "\S+\s(?
\S+).+rw?,.+symlinkroot=/mnt/host" "/proc/mounts").Matches.Groups |
+ Where-Object Name -eq p |
+ Get-Item -path { $_.Value } |
+ New-PSDrive -Name { "Mount", $_.Name -join '.' } -PSProvider FileSystem -Root { $_.Value } -Scope Global -ErrorAction Ignore
+})
+
+if ($global:ContainerInfo.MountedPaths) {
+ "Mounted $($mountedPaths.Length) drives:" | Out-Host
+ $mountedDrives | Out-Host
+}
+
+if ($args) {
+ # If there are arguments, output them (you could handle them in a more complex way).
+ "$args" | Out-Host
+} else {
+ # If there are no arguments, see if there is a Microservice.ps1
+ if (Test-Path './Microservice.ps1') {
+ # If there is a Microservice.ps1, run it.
+ . ./Microservice.ps1
+ }
+}
+
+# If you want to do something when the container is stopped, you can register an event.
+# This can call a script that does some cleanup, or sends a message as the service is exiting.
+Register-EngineEvent -SourceIdentifier PowerShell.Exiting -Action {
+ if (Test-Path '/Container.stop.ps1') {
+ & /Container.stop.ps1
+ }
+} | Out-Null
\ No newline at end of file
diff --git a/Dockerfile b/Dockerfile
new file mode 100644
index 00000000..c6f838d0
--- /dev/null
+++ b/Dockerfile
@@ -0,0 +1,14 @@
+# Thank you Microsoft! Thank you PowerShell! Thank you Docker!
+FROM mcr.microsoft.com/powershell
+
+# Store the module name in an environment variable (this should not change)
+ENV ModuleName="PSDevOps"
+
+# We set the shell to PowerShell,
+SHELL ["/bin/pwsh", "-nologo", "-command"]
+
+# run the initialization script
+RUN --mount=type=bind,src=./,target=/Initialize ./Initialize/Container.init.ps1
+
+# and set the entry point to `/Container.start.ps1`.
+ENTRYPOINT ["pwsh", "-noexit", "-nologo", "-file", "/Container.start.ps1"]
\ No newline at end of file
diff --git a/Functions/AzureDevOps/Get-ADOAuditLog.ps1 b/Functions/AzureDevOps/Get-ADOAuditLog.ps1
index 73c55df9..2b75e7c1 100644
--- a/Functions/AzureDevOps/Get-ADOAuditLog.ps1
+++ b/Functions/AzureDevOps/Get-ADOAuditLog.ps1
@@ -1,48 +1,56 @@
function Get-ADOAuditLog {
-<#
- .SYNOPSIS
- Gets the Azure DevOps Audit Log
- .DESCRIPTION
- Gets the Azure DevOps Audit Log for a Given Organization
- .EXAMPLE
- Get-ADOAuditLog
- .LINK
- https://docs.microsoft.com/en-us/rest/api/azure/devops/audit/audit-log/query
+ <#
-#>
+ .SYNOPSIS
+ Gets the Azure DevOps Audit Log
+ .DESCRIPTION
+ Gets the Azure DevOps Audit Log for a Given Organization
+ .EXAMPLE
+ Get-ADOAuditLog
+ .LINK
+ https://docs.microsoft.com/en-us/rest/api/azure/devops/audit/audit-log/query
+ #>
+
+
+
param(
-# The Organization
+ # The Organization
[Parameter(Mandatory,ValueFromPipelineByPropertyName,ParameterSetName='https://auditservice.dev.azure.com/{Organization}/_apis/audit/auditlog')]
[string]
$Organization,
-# The size of the batch of audit log entries.
+
+ # The size of the batch of audit log entries.
[Parameter(ValueFromPipelineByPropertyName)]
[int]
$BatchSize,
-# The start time.
+
+ # The start time.
[Parameter(ValueFromPipelineByPropertyName)]
[DateTime]
$StartTime,
-# The end time.
+
+ # The end time.
[Parameter(ValueFromPipelineByPropertyName)]
[DateTime]
$EndTime,
-# The api-version. By default, 7.1-preview.1
+
+ # The api-version. By default, 7.1-preview.1
[Parameter(ValueFromPipelineByPropertyName)]
[ComponentModel.DefaultBindingProperty("api-version")]
[string]
$ApiVersion = '7.1-preview.1'
)
- dynamicParam { . $GetInvokeParameters -DynamicParameter
-}
- begin {
+ dynamicParam { . $GetInvokeParameters -DynamicParameter
+ }
+ begin {
#region Copy Invoke-ADORestAPI parameters
$invokeParams = . $getInvokeParameters $PSBoundParameters
$invokeParams.ExpandProperty = 'decoratedAuditLogEntries'
$invokeParams.PSTypeName = "ADO.AuditLog.Entry"
#endregion Copy Invoke-ADORestAPI parameters
+
# Declare a Regular Expression to match URL variables.
$RestVariable = [Regex]::new(@'
# Matches URL segments and query strings containing variables.
@@ -74,10 +82,12 @@ $Organization,
)
)
'@, 'IgnoreCase,IgnorePatternWhitespace')
+
# Next declare a script block that will replace the rest variable.
$ReplaceRestVariable = {
param($match)
+
if ($uriParameter -and $uriParameter[$match.Groups["Variable"].Value]) {
return $match.Groups["Start"].Value + $(
if ($match.Groups["Query"].Success) { $match.Groups["Query"].Value + '=' }
@@ -89,8 +99,11 @@ $Organization,
return ''
}
}
+
+
$myCmd = $MyInvocation.MyCommand
function ConvertRestInput {
+
param([Collections.IDictionary]$RestInput = @{}, [switch]$ToQueryString)
foreach ($ri in @($RestInput.GetEnumerator())) {
$RestParameterAttributes = @($myCmd.Parameters[$ri.Key].Attributes)
@@ -140,8 +153,8 @@ $Organization,
}
-}
-process {
+ }
+ process {
$InvokeCommand = 'Invoke-ADORestAPI'
$invokerCommandinfo =
$ExecutionContext.SessionState.InvokeCommand.GetCommand('Invoke-ADORestAPI', 'All')
@@ -158,12 +171,16 @@ process {
if ($ForEachOutput -match '^\s{0,}$') {
$ForEachOutput = $null
}
+
+
if (-not $invokerCommandinfo) {
Write-Error "Unable to find invoker '$InvokeCommand'"
return
}
if (-not $psParameterSet) { $psParameterSet = $psCmdlet.ParameterSetName}
if ($psParameterSet -eq '__AllParameterSets') { $psParameterSet = $endpoints[0]}
+
+
$originalUri = "$psParameterSet"
if (-not $PSBoundParameters.ContainsKey('UriParameter')) {
$uriParameter = [Ordered]@{}
@@ -173,7 +190,10 @@ process {
$uriParameter[$uriParameterName] = $psBoundParameters[$uriParameterName]
}
}
+
$uri = $RestVariable.Replace($originalUri, $ReplaceRestVariable)
+
+
$invokeSplat = @{}
$invokeSplat.Uri = $uri
if ($method) {
@@ -182,9 +202,13 @@ process {
if ($ContentType -and $invokerCommandInfo.Parameters.ContentType) {
$invokeSplat.ContentType = $ContentType
}
+
+
if ($InvokeParams -and $InvokeParams -is [Collections.IDictionary]) {
$invokeSplat += $InvokeParams
}
+
+
$QueryParams = [Ordered]@{}
foreach ($QueryParameterName in $QueryParameterNames) {
if ($PSBoundParameters.ContainsKey($QueryParameterName)) {
@@ -196,7 +220,10 @@ process {
}
}
}
+
+
$queryParams = ConvertRestInput $queryParams -ToQueryString
+
if ($invokerCommandinfo.Parameters['QueryParameter'] -and
$invokerCommandinfo.Parameters['QueryParameter'].ParameterType -eq [Collections.IDictionary]) {
$invokeSplat.QueryParameter = $QueryParams
@@ -218,6 +245,8 @@ process {
$invokeSplat.Uri = "$($invokeSplat.Uri)" + '?' + $queryParamStr
}
}
+
+
Write-Verbose "$($invokeSplat.Uri)"
if ($ForEachOutput) {
if ($ForEachOutput.Ast.ProcessBlock) {
@@ -228,6 +257,7 @@ process {
} else {
& $invokerCommandinfo @invokeSplat
}
-}
+
+ }
}
diff --git a/Functions/AzureDevOps/Get-ADOServiceHealth.ps1 b/Functions/AzureDevOps/Get-ADOServiceHealth.ps1
index c4ea6073..ae1c0b8f 100644
--- a/Functions/AzureDevOps/Get-ADOServiceHealth.ps1
+++ b/Functions/AzureDevOps/Get-ADOServiceHealth.ps1
@@ -1,47 +1,53 @@
function Get-ADOServiceHealth {
-<#
- .SYNOPSIS
- Gets the Azure DevOps Service Health
- .DESCRIPTION
- Gets the Service Health of Azure DevOps.
- .EXAMPLE
- Get-ADOServiceHealth
- .LINK
- https://docs.microsoft.com/en-us/rest/api/azure/devops/status/health/get
+ <#
-#>
+ .SYNOPSIS
+ Gets the Azure DevOps Service Health
+ .DESCRIPTION
+ Gets the Service Health of Azure DevOps.
+ .EXAMPLE
+ Get-ADOServiceHealth
+ .LINK
+ https://docs.microsoft.com/en-us/rest/api/azure/devops/status/health/get
+ #>
+
+
param(
-# If provided, will query for health in a given geographic region.
+ # If provided, will query for health in a given geographic region.
[Parameter(ValueFromPipelineByPropertyName)]
[ComponentModel.DefaultBindingProperty("services")]
[Alias('Services')]
[ValidateSet('Artifacts', 'Boards', 'Core services', 'Other services', 'Pipelines', 'Repos', 'Test Plans')]
[string[]]
$Service,
-# If provided, will query for health in a given geographic region.
+
+ # If provided, will query for health in a given geographic region.
[Parameter(ValueFromPipelineByPropertyName)]
[ComponentModel.DefaultBindingProperty("geographies")]
[Alias('Geographies','Region', 'Regions')]
[ValidateSet('APAC', 'AU', 'BR', 'CA', 'EU', 'IN', 'UK', 'US')]
[string[]]
$Geography,
-# The api-version. By default, 6.0
+
+ # The api-version. By default, 6.0
[Parameter(ValueFromPipelineByPropertyName)]
[ComponentModel.DefaultBindingProperty("api-version")]
[string]
$ApiVersion = '6.0-preview'
)
- dynamicParam { . $GetInvokeParameters -DynamicParameter
-}
- begin {
+ dynamicParam { . $GetInvokeParameters -DynamicParameter
+ }
+ begin {
#region Copy Invoke-ADORestAPI parameters
$invokeParams = . $getInvokeParameters $PSBoundParameters
$invokeParams.PSTypeName = "ADO.Service.Health"
#endregion Copy Invoke-ADORestAPI parameters
+
$myCmd = $MyInvocation.MyCommand
function ConvertRestInput {
+
param([Collections.IDictionary]$RestInput = @{}, [switch]$ToQueryString)
foreach ($ri in @($RestInput.GetEnumerator())) {
$RestParameterAttributes = @($myCmd.Parameters[$ri.Key].Attributes)
@@ -91,8 +97,8 @@ function Get-ADOServiceHealth {
}
-}
-process {
+ }
+ process {
$InvokeCommand = 'Invoke-ADORestAPI'
$invokerCommandinfo =
$ExecutionContext.SessionState.InvokeCommand.GetCommand('Invoke-ADORestAPI', 'All')
@@ -109,14 +115,19 @@ process {
if ($ForEachOutput -match '^\s{0,}$') {
$ForEachOutput = $null
}
+
+
if (-not $invokerCommandinfo) {
Write-Error "Unable to find invoker '$InvokeCommand'"
return
}
if (-not $psParameterSet) { $psParameterSet = $psCmdlet.ParameterSetName}
if ($psParameterSet -eq '__AllParameterSets') { $psParameterSet = $endpoints[0]}
+
+
$uri = $endpoints[0]
+
$invokeSplat = @{}
$invokeSplat.Uri = $uri
if ($method) {
@@ -125,9 +136,13 @@ process {
if ($ContentType -and $invokerCommandInfo.Parameters.ContentType) {
$invokeSplat.ContentType = $ContentType
}
+
+
if ($InvokeParams -and $InvokeParams -is [Collections.IDictionary]) {
$invokeSplat += $InvokeParams
}
+
+
$QueryParams = [Ordered]@{}
foreach ($QueryParameterName in $QueryParameterNames) {
if ($PSBoundParameters.ContainsKey($QueryParameterName)) {
@@ -139,7 +154,10 @@ process {
}
}
}
+
+
$queryParams = ConvertRestInput $queryParams -ToQueryString
+
if ($invokerCommandinfo.Parameters['QueryParameter'] -and
$invokerCommandinfo.Parameters['QueryParameter'].ParameterType -eq [Collections.IDictionary]) {
$invokeSplat.QueryParameter = $QueryParams
@@ -161,6 +179,8 @@ process {
$invokeSplat.Uri = "$($invokeSplat.Uri)" + '?' + $queryParamStr
}
}
+
+
Write-Verbose "$($invokeSplat.Uri)"
if ($ForEachOutput) {
if ($ForEachOutput.Ast.ProcessBlock) {
@@ -171,7 +191,8 @@ process {
} else {
& $invokerCommandinfo @invokeSplat
}
-}
+
+ }
}
diff --git a/GitHub/Jobs/BuildPSDevOps.psd1 b/GitHub/Jobs/BuildPSDevOps.psd1
index d9d89db3..1f3b7c9b 100644
--- a/GitHub/Jobs/BuildPSDevOps.psd1
+++ b/GitHub/Jobs/BuildPSDevOps.psd1
@@ -4,15 +4,12 @@
steps = @(
@{
name = 'Check out repository'
- uses = 'actions/checkout@v2'
- },
- @{
- name = 'Use PSSVG Action'
- uses = 'StartAutomating/PSSVG@main'
- id = 'PSSVG'
+ uses = 'actions/checkout@v4'
},
+ 'RunPSSVG',
'RunPipeScript',
'RunEZOut',
- 'RunHelpOut'
+ 'RunHelpOut',
+ 'BuildAndPublishContainer'
)
}
\ No newline at end of file
diff --git a/GitHub/Steps/BuildAndPublishContainer.psd1 b/GitHub/Steps/BuildAndPublishContainer.psd1
new file mode 100644
index 00000000..4145af33
--- /dev/null
+++ b/GitHub/Steps/BuildAndPublishContainer.psd1
@@ -0,0 +1,57 @@
+@{
+ 'name'='Log in to ghcr.io'
+ 'uses'='docker/login-action@master'
+ 'with'=@{
+ 'registry'='${{ env.REGISTRY }}'
+ 'username'='${{ github.actor }}'
+ 'password'='${{ secrets.GITHUB_TOKEN }}'
+ }
+ env = @{
+ 'REGISTRY'='ghcr.io'
+ }
+}
+@{
+ name = 'Extract Docker Metadata (for branch)'
+ if = '${{github.ref_name != ''main'' && github.ref_name != ''master'' && github.ref_name != ''latest''}}'
+ id = 'meta'
+ uses = 'docker/metadata-action@master'
+ with = @{
+ 'images'='${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}'
+ }
+ env = @{
+ REGISTRY = 'ghcr.io'
+ IMAGE_NAME = '${{ github.repository }}'
+ }
+}
+@{
+ name = 'Extract Docker Metadata (for main)'
+ if = '${{github.ref_name == ''main'' || github.ref_name == ''master'' || github.ref_name == ''latest''}}'
+ id = 'metaMain'
+ uses = 'docker/metadata-action@master'
+ with = @{
+ 'images'='${{ env.REGISTRY }}/${{ env.IMAGE_NAME }}'
+ 'flavor'='latest=true'
+ }
+}
+@{
+ name = 'Build and push Docker image (from main)'
+ if = '${{github.ref_name == ''main'' || github.ref_name == ''master'' || github.ref_name == ''latest''}}'
+ uses = 'docker/build-push-action@master'
+ with = @{
+ 'context'='.'
+ 'push'='true'
+ 'tags'='${{ steps.metaMain.outputs.tags }}'
+ 'labels'='${{ steps.metaMain.outputs.labels }}'
+ }
+}
+@{
+ name = 'Build and push Docker image (from branch)'
+ if = '${{github.ref_name != ''main'' && github.ref_name != ''master'' && github.ref_name != ''latest''}}'
+ uses = 'docker/build-push-action@master'
+ with = @{
+ 'context'='.'
+ 'push'='true'
+ 'tags'='${{ steps.meta.outputs.tags }}'
+ 'labels'='${{ steps.meta.outputs.labels }}'
+ }
+}
\ No newline at end of file
diff --git a/GitHub/Steps/Checkout.psd1 b/GitHub/Steps/Checkout.psd1
index 0f2210f5..fe5e294f 100644
--- a/GitHub/Steps/Checkout.psd1
+++ b/GitHub/Steps/Checkout.psd1
@@ -1,4 +1,4 @@
@{
name = 'Check out repository'
- uses = 'actions/checkout@v2'
+ uses = 'actions/checkout@v4'
}
diff --git a/GitHub/Steps/PublishTestResults.psd1 b/GitHub/Steps/PublishTestResults.psd1
index be36ac60..894144af 100644
--- a/GitHub/Steps/PublishTestResults.psd1
+++ b/GitHub/Steps/PublishTestResults.psd1
@@ -1,6 +1,6 @@
@{
name = 'PublishTestResults'
- uses = 'actions/upload-artifact@v2'
+ uses = 'actions/upload-artifact@v3'
with = @{
name = 'PesterResults'
path = '**.TestResults.xml'
diff --git a/GitHub/Steps/RunPSSVG.psd1 b/GitHub/Steps/RunPSSVG.psd1
new file mode 100644
index 00000000..a9da053c
--- /dev/null
+++ b/GitHub/Steps/RunPSSVG.psd1
@@ -0,0 +1,5 @@
+@{
+ name = 'Use PSSVG Action'
+ uses = 'StartAutomating/PSSVG@main'
+ id = 'PSSVG'
+}
\ No newline at end of file
diff --git a/GitHub/Steps/RunPester.ps1 b/GitHub/Steps/RunPester.ps1
index 68bcdeeb..5919d627 100644
--- a/GitHub/Steps/RunPester.ps1
+++ b/GitHub/Steps/RunPester.ps1
@@ -39,9 +39,6 @@ if ($NoCoverage) {
$result =
Invoke-Pester -PassThru -Verbose -OutputFile ".\$moduleName.TestResults.xml" -OutputFormat NUnitXml @codeCoverageParameters
-"::set-output name=TotalCount::$($result.TotalCount)",
-"::set-output name=PassedCount::$($result.PassedCount)",
-"::set-output name=FailedCount::$($result.FailedCount)" | Out-Host
if ($result.FailedCount -gt 0) {
"::debug:: $($result.FailedCount) tests failed"
foreach ($r in $result.TestResult) {
diff --git a/PSDevOps.GitHubWorkflow.psdevops.ps1 b/PSDevOps.GitHubWorkflow.psdevops.ps1
index ef4209d7..1998a2ed 100644
--- a/PSDevOps.GitHubWorkflow.psdevops.ps1
+++ b/PSDevOps.GitHubWorkflow.psdevops.ps1
@@ -1,10 +1,10 @@
#requires -Module PSDevOps
+
Push-Location $PSScriptRoot
New-GitHubWorkflow -Name "Analyze, Test, Tag, and Publish" -On Push, PullRequest, Demand -Job PowerShellStaticAnalysis, TestPowerShellOnLinux, TagReleaseAndPublish, BuildPSDevOps -Environment @{
SYSTEM_ACCESSTOKEN = '${{ secrets.AZUREDEVOPSPAT }}'
NoCoverage = $true
-}|
- Set-Content .\.github\workflows\TestAndPublish.yml -Encoding UTF8 -PassThru
+} -OutputPath .\.github\workflows\TestAndPublish.yml
Pop-Location
\ No newline at end of file
diff --git a/PSDevOps.PSSVG.ps1 b/PSDevOps.PSSVG.ps1
index d945cbf4..dce48e10 100644
--- a/PSDevOps.PSSVG.ps1
+++ b/PSDevOps.PSSVG.ps1
@@ -6,7 +6,7 @@ if (-not (Test-path $assetsPath)) {
$null = New-Item -ItemType Directory -Path $assetsPath -Force
}
=
diff --git a/docs/Clear-ADODashboard.md b/docs/Clear-ADODashboard.md
index d82550b0..4bb1bdcf 100644
--- a/docs/Clear-ADODashboard.md
+++ b/docs/Clear-ADODashboard.md
@@ -1,26 +1,27 @@
Clear-ADODashboard
------------------
+
### Synopsis
Clears Azure DevOps Dashboards
---
+
### Description
Clears Azure DevOps Dashboards, and Clears settings of Widgets on a dashboard.
---
+
### Related Links
* [Get-ADODashboard](Get-ADODashboard.md)
-
-
* [Remove-ADODashboard](Remove-ADODashboard.md)
-
-
---
+
### Examples
-#### EXAMPLE 1
+> EXAMPLE 1
+
```PowerShell
Get-ADOTeam -Organization MyOrganization -PersonalAccessToken $pat |
Get-ADODashboard |
@@ -28,152 +29,80 @@ Get-ADOTeam -Organization MyOrganization -PersonalAccessToken $pat |
```
---
+
### Parameters
#### **Organization**
-
The Organization.
+|Type |Required|Position|PipelineInput |Aliases|
+|----------|--------|--------|---------------------|-------|
+|`[String]`|true |named |true (ByPropertyName)|Org |
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Project**
-
The Project.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Team**
-
The Team.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **DashboardID**
-
The DashboardID
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **WidgetID**
-
The WidgetID. If provided, will get details about a given Azure DevOps Widget.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Server**
-
The server. By default https://dev.azure.com/.
To use against TFS, provide the tfs server URL (e.g. http://tfsserver:8080/tfs).
+|Type |Required|Position|PipelineInput |
+|-------|--------|--------|---------------------|
+|`[Uri]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[Uri]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ApiVersion**
-
The api version. By default, 5.1-preview.
If targeting TFS, this will need to change to match your server version.
See: https://docs.microsoft.com/en-us/azure/devops/integrate/concepts/rest-api-versioning?view=azure-devops
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|false |named |false |
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **WhatIf**
-WhatIf is an automatic variable that is created when a command has ```[CmdletBinding(SupportsShouldProcess)]```.
-WhatIf is used to see what would happen, or return operations without executing them
#### **Confirm**
-Confirm is an automatic variable that is created when a command has ```[CmdletBinding(SupportsShouldProcess)]```.
-Confirm is used to -Confirm each operation.
-
+
If you pass ```-Confirm:$false``` you will not be prompted.
-
-
+
If the command sets a ```[ConfirmImpact("Medium")]``` which is lower than ```$confirmImpactPreference```, you will not be prompted unless -Confirm is passed.
---
+
### Outputs
* PSDevOps.Dashboard
-
* PSDevOps.Widget
-
-
-
---
+
### Syntax
```PowerShell
Clear-ADODashboard -Organization -Project [-Team ] -DashboardID -WidgetID [-Server ] [-ApiVersion ] [-WhatIf] [-Confirm] []
@@ -181,4 +110,3 @@ Clear-ADODashboard -Organization -Project [-Team ] -Da
```PowerShell
Clear-ADODashboard -Organization -Project [-Team ] -DashboardID [-Server ] [-ApiVersion ] [-WhatIf] [-Confirm] []
```
----
diff --git a/docs/Connect-ADO.md b/docs/Connect-ADO.md
index 8dcee624..7424941b 100644
--- a/docs/Connect-ADO.md
+++ b/docs/Connect-ADO.md
@@ -1,9 +1,11 @@
Connect-ADO
-----------
+
### Synopsis
Connects to Azure DeVOps
---
+
### Description
Connects the current PowerShell session to Azure DeVOps or a Team Foundation Server.
@@ -13,133 +15,74 @@ Information passed to Connect-ADO will be used as the default parameters to all
PersonalAccessTokens will be cached separately to improve security.
---
+
### Related Links
* [Disconnect-ADO](Disconnect-ADO.md)
-
-
---
+
### Examples
-#### EXAMPLE 1
+> EXAMPLE 1
+
```PowerShell
Connect-ADO -Organization StartAutomating -PersonalAccessToken $myPat
```
---
+
### Parameters
#### **Organization**
-
The organization.
When connecting to TFS, this is the Project Collection.
+|Type |Required|Position|PipelineInput |Aliases|
+|----------|--------|--------|---------------------|-------|
+|`[String]`|true |1 |true (ByPropertyName)|Org |
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: 1
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **PersonalAccessToken**
-
The Personal Access Token.
+|Type |Required|Position|PipelineInput |Aliases|
+|----------|--------|--------|---------------------|-------|
+|`[String]`|false |2 |true (ByPropertyName)|PAT |
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: 2
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **UseDefaultCredentials**
-
If set, will use default credentials when connecting.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[Switch]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[Switch]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Credential**
-
The credential used to connect.
+|Type |Required|Position|PipelineInput |
+|----------------|--------|--------|---------------------|
+|`[PSCredential]`|false |3 |true (ByPropertyName)|
-
-> **Type**: ```[PSCredential]```
-
-> **Required**: false
-
-> **Position**: 3
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Server**
-
The Server. If this points to a TFS server, it should be the root TFS url, i.e. http://localhost:8080/tfs
+|Type |Required|Position|PipelineInput |
+|-------|--------|--------|---------------------|
+|`[Uri]`|false |4 |true (ByPropertyName)|
-
-> **Type**: ```[Uri]```
-
-> **Required**: false
-
-> **Position**: 4
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **NoCache**
-
If set, will not cache teams and projects in order to create argument completers.
If you are using a restricted Personal Access Token, this may prevent errors.
-
-
-> **Type**: ```[Switch]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[Switch]`|false |named |false |
---
+
### Outputs
* PSDevOps.Connection
-
-
-
---
+
### Syntax
```PowerShell
Connect-ADO [-Organization] [[-PersonalAccessToken] ] [-UseDefaultCredentials] [[-Credential] ] [[-Server] ] [-NoCache] []
```
----
diff --git a/docs/Connect-GitHub.md b/docs/Connect-GitHub.md
index 4cab2477..51b47ccc 100644
--- a/docs/Connect-GitHub.md
+++ b/docs/Connect-GitHub.md
@@ -1,149 +1,84 @@
Connect-GitHub
--------------
+
### Synopsis
Connects to GitHub
---
+
### Description
Connects to GitHub, automatically creating smart aliases for all GitHub URLs.
---
+
### Related Links
* [Invoke-GitHubRESTAPI](Invoke-GitHubRESTAPI.md)
-
-
---
+
### Examples
-#### EXAMPLE 1
+> EXAMPLE 1
+
```PowerShell
Connect-GitHub
```
---
+
### Parameters
#### **GitHubOpenAPIUrl**
-
A URL that contains the GitHub OpenAPI definition
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|false |1 |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: 1
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **PassThru**
-
If set, will output the dynamically imported module.
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[Switch]`|false |named |false |
-
-> **Type**: ```[Switch]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **Force**
-
If set, will force a reload of the module.
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[Switch]`|false |named |false |
-
-> **Type**: ```[Switch]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **PersonalAccessToken**
-
The personal access token used to connect to GitHub.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|false |2 |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: 2
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Owner**
-
If provided, will default the [owner] in GitHub API requests
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|false |3 |false |
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: 3
-
-> **PipelineInput**:false
-
-
-
----
#### **UserName**
-
If provided, will default the [username] in GitHub API requests
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|false |4 |false |
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: 4
-
-> **PipelineInput**:false
-
-
-
----
#### **Repo**
-
If provided, will default the [repo] in GitHub API requests
-
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: 5
-
-> **PipelineInput**:false
-
-
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|false |5 |false |
---
+
### Syntax
```PowerShell
Connect-GitHub [[-GitHubOpenAPIUrl] ] [-PassThru] [-Force] [[-PersonalAccessToken] ] [[-Owner] ] [[-UserName] ] [[-Repo] ] []
```
----
diff --git a/docs/Convert-ADOPipeline.md b/docs/Convert-ADOPipeline.md
index 3bf46cbd..94f3d054 100644
--- a/docs/Convert-ADOPipeline.md
+++ b/docs/Convert-ADOPipeline.md
@@ -1,26 +1,27 @@
Convert-ADOPipeline
-------------------
+
### Synopsis
Converts builds to Azure DevOps Pipelines
---
+
### Description
Converts builds TFS or "Classic" builds to Azure DevOps YAML Pipelines.
---
+
### Related Links
* [New-ADOPipeline](New-ADOPipeline.md)
-
-
* [Get-ADOTask](Get-ADOTask.md)
-
-
---
+
### Examples
-#### EXAMPLE 1
+> EXAMPLE 1
+
```PowerShell
$taskList = (Get-ADOTask -Server $tfsRootUrl -Org $projectCollectionName)
Get-ADOBuild -Definition -Server $tfsRootUrl -Org $projectCollection |
@@ -28,107 +29,56 @@ Get-ADOBuild -Definition -Server $tfsRootUrl -Org $projectCollection |
```
---
+
### Parameters
#### **BuildStep**
-
A list of build steps.
This will be automatically populated when piping in a TFS Build definition.
+|Type |Required|Position|PipelineInput |Aliases|
+|--------------|--------|--------|---------------------|-------|
+|`[PSObject[]]`|true |1 |true (ByPropertyName)|Build |
-
-> **Type**: ```[PSObject[]]```
-
-> **Required**: true
-
-> **Position**: 1
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **BuildVariable**
-
An object containing build variables.
This will be automatically populated when piping in a TFS build definition.
+|Type |Required|Position|PipelineInput |Aliases |
+|------------|--------|--------|---------------------|----------------------|
+|`[PSObject]`|false |2 |true (ByPropertyName)|Variable Variables|
-
-> **Type**: ```[PSObject]```
-
-> **Required**: false
-
-> **Position**: 2
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **TaskList**
-
A list of task definitions. This will normally be the output from Get-ADOTask.
+|Type |Required|Position|PipelineInput|
+|--------------|--------|--------|-------------|
+|`[PSObject[]]`|true |3 |false |
-
-> **Type**: ```[PSObject[]]```
-
-> **Required**: true
-
-> **Position**: 3
-
-> **PipelineInput**:false
-
-
-
----
#### **WhereFore**
-
A dictionary of conditional transformations.
+|Type |Required|Position|PipelineInput|Aliases |
+|---------------|--------|--------|-------------|-------------------------|
+|`[IDictionary]`|false |4 |false |WhereForeach WhereFor|
-
-> **Type**: ```[IDictionary]```
-
-> **Required**: false
-
-> **Position**: 4
-
-> **PipelineInput**:false
-
-
-
----
#### **Passthru**
-
If set, will output the dictionary used to create each pipeline.
If not set, will output the pipeline YAML.
-
-
-> **Type**: ```[Switch]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[Switch]`|false |named |false |
---
+
### Outputs
* [String](https://learn.microsoft.com/en-us/dotnet/api/System.String)
-
* [Management.Automation.PSObject](https://learn.microsoft.com/en-us/dotnet/api/System.Management.Automation.PSObject)
-
-
-
---
+
### Syntax
```PowerShell
Convert-ADOPipeline [-BuildStep] [[-BuildVariable] ] [-TaskList] [[-WhereFore] ] [-Passthru] []
```
----
diff --git a/docs/Convert-BuildStep.md b/docs/Convert-BuildStep.md
index 212b0ed9..e1dc5e3a 100644
--- a/docs/Convert-BuildStep.md
+++ b/docs/Convert-BuildStep.md
@@ -1,230 +1,118 @@
Convert-BuildStep
-----------------
+
### Synopsis
Converts Build Steps into build system input
---
+
### Description
Converts Build Steps defined in a PowerShell script into build steps in a build system
---
+
### Related Links
* [Import-BuildStep](Import-BuildStep.md)
-
-
* [Expand-BuildStep](Expand-BuildStep.md)
-
-
---
+
### Examples
-#### EXAMPLE 1
+> EXAMPLE 1
+
```PowerShell
Get-Command Convert-BuildStep | Convert-BuildStep
```
---
+
### Parameters
#### **Name**
-
The name of the build step
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ScriptBlock**
-
The Script Block that will be converted into a build step
+|Type |Required|Position|PipelineInput |
+|---------------|--------|--------|------------------------------|
+|`[ScriptBlock]`|false |named |true (ByValue, ByPropertyName)|
-
-> **Type**: ```[ScriptBlock]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByValue, ByPropertyName)
-
-
-
----
#### **Module**
-
The module that -ScriptBlock is declared in. If piping in a command, this will be bound automatically
+|Type |Required|Position|PipelineInput |
+|----------------|--------|--------|---------------------|
+|`[PSModuleInfo]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[PSModuleInfo]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Path**
-
The path to the file
+|Type |Required|Position|PipelineInput |Aliases |
+|----------|--------|--------|---------------------|--------|
+|`[String]`|false |named |true (ByPropertyName)|Fullname|
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Extension**
-
The extension of the file
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **InputParameter**
-
The name of parameters that should be supplied from event input.
Wildcards accepted.
+|Type |Required|Position|PipelineInput |Aliases |
+|---------------|--------|--------|---------------------|---------------|
+|`[IDictionary]`|false |named |true (ByPropertyName)|InputParameters|
-
-> **Type**: ```[IDictionary]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **VariableParameter**
-
The name of parameters that should be supplied from build variables.
Wildcards accepted.
+|Type |Required|Position|PipelineInput |Aliases |
+|------------|--------|--------|---------------------|------------------|
+|`[String[]]`|false |named |true (ByPropertyName)|VariableParameters|
-
-> **Type**: ```[String[]]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **EnvironmentParameter**
-
The name of parameters that should be supplied from the environment.
Wildcards accepted.
+|Type |Required|Position|PipelineInput |Aliases |
+|------------|--------|--------|---------------------|---------------------|
+|`[String[]]`|false |named |true (ByPropertyName)|EnvironmentParameters|
-
-> **Type**: ```[String[]]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **UniqueParameter**
-
The name of parameters that should be referred to uniquely.
For instance, if converting function foo($bar) {} and -UniqueParameter is 'bar'
The build parameter would be foo_bar.
+|Type |Required|Position|PipelineInput |Aliases |
+|------------|--------|--------|---------------------|----------------|
+|`[String[]]`|false |named |true (ByPropertyName)|UniqueParameters|
-
-> **Type**: ```[String[]]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ExcludeParameter**
-
The name of parameters that should be excluded.
+|Type |Required|Position|PipelineInput |Aliases |
+|------------|--------|--------|---------------------|-----------------|
+|`[String[]]`|false |named |true (ByPropertyName)|ExcludeParameters|
-
-> **Type**: ```[String[]]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **DefaultParameter**
-
Default parameters for a build step
+|Type |Required|Position|PipelineInput |
+|---------------|--------|--------|---------------------|
+|`[IDictionary]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[IDictionary]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **BuildSystem**
-
The build system. Currently supported options, ADO and GitHub. Defaulting to ADO.
-
-
-
Valid Values:
* ADOPipeline
@@ -232,43 +120,24 @@ Valid Values:
* GitHubWorkflow
* GitHubAction
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|false |named |false |
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **BuildOption**
-
Options for the build system. The can contain any additional parameters passed to the build system.
-
-
-> **Type**: ```[PSObject]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
+|Type |Required|Position|PipelineInput|
+|------------|--------|--------|-------------|
+|`[PSObject]`|false |named |false |
---
+
### Outputs
* [Collections.IDictionary](https://learn.microsoft.com/en-us/dotnet/api/System.Collections.IDictionary)
-
-
-
---
+
### Syntax
```PowerShell
Convert-BuildStep -Name [-ScriptBlock ] [-Module ] [-Path ] [-InputParameter ] [-VariableParameter ] [-EnvironmentParameter ] [-UniqueParameter ] [-ExcludeParameter ] [-DefaultParameter ] [-BuildSystem ] [-BuildOption ] []
@@ -276,4 +145,3 @@ Convert-BuildStep -Name [-ScriptBlock ] [-Module -Path -Extension [-InputParameter ] [-VariableParameter ] [-EnvironmentParameter ] [-UniqueParameter ] [-ExcludeParameter ] [-DefaultParameter ] [-BuildSystem ] [-BuildOption ] []
```
----
diff --git a/docs/Disable-ADOExtension.md b/docs/Disable-ADOExtension.md
index 0da72268..b9fb524d 100644
--- a/docs/Disable-ADOExtension.md
+++ b/docs/Disable-ADOExtension.md
@@ -1,142 +1,91 @@
Disable-ADOExtension
--------------------
+
### Synopsis
Disables Azure DevOps Extensions.
---
+
### Description
Disables one or more Azure DevOps Extensions.
---
+
### Related Links
* [Get-ADOExtension](Get-ADOExtension.md)
-
-
* [Enable-ADOExtension](Enable-ADOExtension.md)
-
-
---
+
### Examples
-#### EXAMPLE 1
+> EXAMPLE 1
+
```PowerShell
Disable-ADOExtension -Organization StartAutomating -PublisherID ms-samples -ExtensionID samples-contributions-guide
```
---
+
### Parameters
#### **Organization**
-
The Organization.
+|Type |Required|Position|PipelineInput |Aliases|
+|----------|--------|--------|---------------------|-------|
+|`[String]`|true |1 |true (ByPropertyName)|Org |
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: 1
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **PublisherID**
-
The Publisher of an Extension.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |2 |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: 2
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ExtensionID**
-
The name of the Extension.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |3 |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: 3
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Server**
-
The server. By default https://dev.azure.com/.
To use against TFS, provide the tfs server URL (e.g. http://tfsserver:8080/tfs).
+|Type |Required|Position|PipelineInput |
+|-------|--------|--------|---------------------|
+|`[Uri]`|false |4 |true (ByPropertyName)|
-
-> **Type**: ```[Uri]```
-
-> **Required**: false
-
-> **Position**: 4
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ApiVersion**
-
The api version. By default, 5.1-preview.
If targeting TFS, this will need to change to match your server version.
See: https://docs.microsoft.com/en-us/azure/devops/integrate/concepts/rest-api-versioning?view=azure-devops
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|false |5 |false |
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: 5
-
-> **PipelineInput**:false
-
-
-
----
#### **WhatIf**
-WhatIf is an automatic variable that is created when a command has ```[CmdletBinding(SupportsShouldProcess)]```.
-WhatIf is used to see what would happen, or return operations without executing them
#### **Confirm**
-Confirm is an automatic variable that is created when a command has ```[CmdletBinding(SupportsShouldProcess)]```.
-Confirm is used to -Confirm each operation.
-
+
If you pass ```-Confirm:$false``` you will not be prompted.
-
-
+
If the command sets a ```[ConfirmImpact("Medium")]``` which is lower than ```$confirmImpactPreference```, you will not be prompted unless -Confirm is passed.
---
+
### Outputs
* PSDevOps.InstalledExtension
-
-
-
---
+
### Syntax
```PowerShell
Disable-ADOExtension [-Organization] [-PublisherID] [-ExtensionID] [[-Server] ] [[-ApiVersion] ] [-WhatIf] [-Confirm] []
```
----
diff --git a/docs/Disconnect-ADO.md b/docs/Disconnect-ADO.md
index 2a206600..e22406b4 100644
--- a/docs/Disconnect-ADO.md
+++ b/docs/Disconnect-ADO.md
@@ -1,27 +1,31 @@
Disconnect-ADO
--------------
+
### Synopsis
Disconnects from Azure DevOps
---
+
### Description
Disconnects from Azure DevOps, clearing parameter value defaults and cached access tokens.
---
+
### Related Links
* [Connect-ADO](Connect-ADO.md)
-
-
---
+
### Examples
-#### EXAMPLE 1
+> EXAMPLE 1
+
```PowerShell
Disconnect-ADO
```
---
+
### Parameters
#### **WhatIf**
-WhatIf is an automatic variable that is created when a command has ```[CmdletBinding(SupportsShouldProcess)]```.
@@ -29,25 +33,21 @@ Disconnect-ADO
#### **Confirm**
-Confirm is an automatic variable that is created when a command has ```[CmdletBinding(SupportsShouldProcess)]```.
-Confirm is used to -Confirm each operation.
-
+
If you pass ```-Confirm:$false``` you will not be prompted.
-
-
+
If the command sets a ```[ConfirmImpact("Medium")]``` which is lower than ```$confirmImpactPreference```, you will not be prompted unless -Confirm is passed.
---
+
### Outputs
* [Nullable](https://learn.microsoft.com/en-us/dotnet/api/System.Nullable)
-
* [Management.Automation.PSObject](https://learn.microsoft.com/en-us/dotnet/api/System.Management.Automation.PSObject)
-
-
-
---
+
### Syntax
```PowerShell
Disconnect-ADO [-WhatIf] [-Confirm] []
```
----
diff --git a/docs/Disconnect-GitHub.md b/docs/Disconnect-GitHub.md
index ae73f7aa..48f59329 100644
--- a/docs/Disconnect-GitHub.md
+++ b/docs/Disconnect-GitHub.md
@@ -1,9 +1,11 @@
Disconnect-GitHub
-----------------
+
### Synopsis
Disconnects from GitHub
---
+
### Description
Disconnects from GitHub.
@@ -11,21 +13,22 @@ Disconnects from GitHub.
This unloads any dynamically imported commands and clears the cached PersonalAccessToken.
---
+
### Related Links
* [Connect-GitHub](Connect-GitHub.md)
-
-
---
+
### Examples
-#### EXAMPLE 1
+> EXAMPLE 1
+
```PowerShell
Disconnect-GitHub
```
---
+
### Syntax
```PowerShell
Disconnect-GitHub []
```
----
diff --git a/docs/Enable-ADOExtension.md b/docs/Enable-ADOExtension.md
index 2277086d..d8918620 100644
--- a/docs/Enable-ADOExtension.md
+++ b/docs/Enable-ADOExtension.md
@@ -1,142 +1,91 @@
Enable-ADOExtension
-------------------
+
### Synopsis
Enables Azure DevOps Extensions.
---
+
### Description
Enables one or more Azure DevOps Extensions.
---
+
### Related Links
* [Get-ADOExtension](Get-ADOExtension.md)
-
-
* [Disable-ADOExtension](Disable-ADOExtension.md)
-
-
---
+
### Examples
-#### EXAMPLE 1
+> EXAMPLE 1
+
```PowerShell
Enable-ADOExtension -Organization StartAutomating -PublisherID ms-samples -ExtensionID samples-contributions-guide
```
---
+
### Parameters
#### **Organization**
-
The Organization.
+|Type |Required|Position|PipelineInput |Aliases|
+|----------|--------|--------|---------------------|-------|
+|`[String]`|true |1 |true (ByPropertyName)|Org |
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: 1
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **PublisherID**
-
The Publisher of an Extension.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |2 |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: 2
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ExtensionID**
-
The name of the Extension.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |3 |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: 3
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Server**
-
The server. By default https://dev.azure.com/.
To use against TFS, provide the tfs server URL (e.g. http://tfsserver:8080/tfs).
+|Type |Required|Position|PipelineInput |
+|-------|--------|--------|---------------------|
+|`[Uri]`|false |4 |true (ByPropertyName)|
-
-> **Type**: ```[Uri]```
-
-> **Required**: false
-
-> **Position**: 4
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ApiVersion**
-
The api version. By default, 5.1-preview.
If targeting TFS, this will need to change to match your server version.
See: https://docs.microsoft.com/en-us/azure/devops/integrate/concepts/rest-api-versioning?view=azure-devops
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|false |5 |false |
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: 5
-
-> **PipelineInput**:false
-
-
-
----
#### **WhatIf**
-WhatIf is an automatic variable that is created when a command has ```[CmdletBinding(SupportsShouldProcess)]```.
-WhatIf is used to see what would happen, or return operations without executing them
#### **Confirm**
-Confirm is an automatic variable that is created when a command has ```[CmdletBinding(SupportsShouldProcess)]```.
-Confirm is used to -Confirm each operation.
-
+
If you pass ```-Confirm:$false``` you will not be prompted.
-
-
+
If the command sets a ```[ConfirmImpact("Medium")]``` which is lower than ```$confirmImpactPreference```, you will not be prompted unless -Confirm is passed.
---
+
### Outputs
* PSDevOps.InstalledExtension
-
-
-
---
+
### Syntax
```PowerShell
Enable-ADOExtension [-Organization] [-PublisherID] [-ExtensionID] [[-Server] ] [[-ApiVersion] ] [-WhatIf] [-Confirm] []
```
----
diff --git a/docs/Expand-BuildStep.md b/docs/Expand-BuildStep.md
index 382ace74..d0d45a13 100644
--- a/docs/Expand-BuildStep.md
+++ b/docs/Expand-BuildStep.md
@@ -1,159 +1,87 @@
Expand-BuildStep
----------------
+
### Synopsis
Expands Build Steps in a single build object
---
+
### Description
Component Files are .ps1 or datafiles within a directory that tells you what type they are.
---
+
### Related Links
* [Convert-BuildStep](Convert-BuildStep.md)
-
-
* [Import-BuildStep](Import-BuildStep.md)
-
-
---
+
### Examples
-#### EXAMPLE 1
+> EXAMPLE 1
+
```PowerShell
Expand-BuildStep -StepMap @{Steps='InstallPester','RunPester'}
```
---
+
### Parameters
#### **StepMap**
-
A map of step properties to underlying data.
Each key is the name of a property the output.
Each value may contain the name of another Step or StepMap
+|Type |Required|Position|PipelineInput|
+|---------------|--------|--------|-------------|
+|`[IDictionary]`|true |1 |false |
-
-> **Type**: ```[IDictionary]```
-
-> **Required**: true
-
-> **Position**: 1
-
-> **PipelineInput**:false
-
-
-
----
#### **Parent**
-
The immediate parent object
+|Type |Required|Position|PipelineInput|
+|------------|--------|--------|-------------|
+|`[PSObject]`|false |2 |false |
-
-> **Type**: ```[PSObject]```
-
-> **Required**: false
-
-> **Position**: 2
-
-> **PipelineInput**:false
-
-
-
----
#### **Root**
-
The absolute root object
+|Type |Required|Position|PipelineInput|
+|------------|--------|--------|-------------|
+|`[PSObject]`|false |3 |false |
-
-> **Type**: ```[PSObject]```
-
-> **Required**: false
-
-> **Position**: 3
-
-> **PipelineInput**:false
-
-
-
----
#### **Singleton**
-
If set, the component will be expanded as a singleton (single object)
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[Switch]`|false |named |false |
-
-> **Type**: ```[Switch]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **SingleItemName**
-
A list of item names that automatically become singletons
+|Type |Required|Position|PipelineInput|
+|------------|--------|--------|-------------|
+|`[String[]]`|false |4 |false |
-
-> **Type**: ```[String[]]```
-
-> **Required**: false
-
-> **Position**: 4
-
-> **PipelineInput**:false
-
-
-
----
#### **PluralItemName**
-
A list of item names that automatically become plurals
+|Type |Required|Position|PipelineInput|
+|------------|--------|--------|-------------|
+|`[String[]]`|false |5 |false |
-
-> **Type**: ```[String[]]```
-
-> **Required**: false
-
-> **Position**: 5
-
-> **PipelineInput**:false
-
-
-
----
#### **DictionaryItemName**
-
A list of item names that automatically become dictionaries.
+|Type |Required|Position|PipelineInput|
+|------------|--------|--------|-------------|
+|`[String[]]`|false |6 |false |
-
-> **Type**: ```[String[]]```
-
-> **Required**: false
-
-> **Position**: 6
-
-> **PipelineInput**:false
-
-
-
----
#### **BuildSystem**
-
The build system, either ADO or GitHub.
-
-
-
Valid Values:
* ADOPipeline
@@ -161,152 +89,72 @@ Valid Values:
* GitHubWorkflow
* GitHubAction
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|false |7 |false |
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: 7
-
-> **PipelineInput**:false
-
-
-
----
#### **VariableParameter**
-
The name of parameters that should be supplied from build variables.
Wildcards accepted.
+|Type |Required|Position|PipelineInput |Aliases |
+|------------|--------|--------|---------------------|------------------|
+|`[String[]]`|false |8 |true (ByPropertyName)|VariableParameters|
-
-> **Type**: ```[String[]]```
-
-> **Required**: false
-
-> **Position**: 8
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **InputParameter**
-
The name of parameters that should be supplied from webhook events.
Wildcards accepted.
+|Type |Required|Position|PipelineInput |Aliases |
+|---------------|--------|--------|---------------------|---------------|
+|`[IDictionary]`|false |9 |true (ByPropertyName)|InputParameters|
-
-> **Type**: ```[IDictionary]```
-
-> **Required**: false
-
-> **Position**: 9
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **EnvironmentParameter**
-
The name of parameters that should be supplied from the environment.
Wildcards accepted.
+|Type |Required|Position|PipelineInput |Aliases |
+|------------|--------|--------|---------------------|---------------------|
+|`[String[]]`|false |10 |true (ByPropertyName)|EnvironmentParameters|
-
-> **Type**: ```[String[]]```
-
-> **Required**: false
-
-> **Position**: 10
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **UniqueParameter**
-
The name of parameters that should be referred to uniquely.
For instance, if converting function foo($bar) {} and -UniqueParameter is 'bar'
The build parameter would be foo_bar.
+|Type |Required|Position|PipelineInput |Aliases |
+|------------|--------|--------|---------------------|----------------|
+|`[String[]]`|false |11 |true (ByPropertyName)|UniqueParameters|
-
-> **Type**: ```[String[]]```
-
-> **Required**: false
-
-> **Position**: 11
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ExcludeParameter**
-
The name of parameters that should be excluded.
+|Type |Required|Position|PipelineInput |Aliases |
+|------------|--------|--------|---------------------|-----------------|
+|`[String[]]`|false |12 |true (ByPropertyName)|ExcludeParameters|
-
-> **Type**: ```[String[]]```
-
-> **Required**: false
-
-> **Position**: 12
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **DefaultParameter**
-
A collection of default parameters.
+|Type |Required|Position|PipelineInput |
+|---------------|--------|--------|---------------------|
+|`[IDictionary]`|false |13 |true (ByPropertyName)|
-
-> **Type**: ```[IDictionary]```
-
-> **Required**: false
-
-> **Position**: 13
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **BuildOption**
-
Options for the build system. The can contain any additional parameters passed to the build system.
-
-
-> **Type**: ```[PSObject]```
-
-> **Required**: false
-
-> **Position**: 14
-
-> **PipelineInput**:false
-
-
+|Type |Required|Position|PipelineInput|
+|------------|--------|--------|-------------|
+|`[PSObject]`|false |14 |false |
---
+
### Outputs
* [Management.Automation.PSObject](https://learn.microsoft.com/en-us/dotnet/api/System.Management.Automation.PSObject)
-
-
-
---
+
### Syntax
```PowerShell
Expand-BuildStep [-StepMap] [[-Parent] ] [[-Root] ] [-Singleton] [[-SingleItemName] ] [[-PluralItemName] ] [[-DictionaryItemName] ] [[-BuildSystem] ] [[-VariableParameter] ] [[-InputParameter] ] [[-EnvironmentParameter] ] [[-UniqueParameter] ] [[-ExcludeParameter] ] [[-DefaultParameter] ] [[-BuildOption] ] []
```
----
diff --git a/docs/Get-ADOAgentPool.md b/docs/Get-ADOAgentPool.md
index 7b78987e..ca84a592 100644
--- a/docs/Get-ADOAgentPool.md
+++ b/docs/Get-ADOAgentPool.md
@@ -1,9 +1,11 @@
Get-ADOAgentPool
----------------
+
### Synopsis
Gets Azure DevOps Agent Pools
---
+
### Description
Gets Agent Pools and their associated queues from Azure DevOps.
@@ -15,191 +17,99 @@ Thus providing a project will return the queues associated with the project,
and just providing the organization will return all of the common pools.
---
+
### Related Links
* [https://docs.microsoft.com/en-us/rest/api/azure/devops/distributedtask/pools/get%20agent%20pools](https://docs.microsoft.com/en-us/rest/api/azure/devops/distributedtask/pools/get%20agent%20pools)
-
-
* [https://docs.microsoft.com/en-us/rest/api/azure/devops/distributedtask/queues/get%20agent%20queues](https://docs.microsoft.com/en-us/rest/api/azure/devops/distributedtask/queues/get%20agent%20queues)
-
-
* [https://docs.microsoft.com/en-us/rest/api/azure/devops/distributedtask/agents/list](https://docs.microsoft.com/en-us/rest/api/azure/devops/distributedtask/agents/list)
-
-
---
+
### Examples
-#### EXAMPLE 1
+> EXAMPLE 1
+
```PowerShell
Get-ADOAgentPool -Organization MyOrganization -PersonalAccessToken $pat
```
---
+
### Parameters
#### **Organization**
-
The Organization
+|Type |Required|Position|PipelineInput |Aliases|
+|----------|--------|--------|---------------------|-------|
+|`[String]`|true |named |true (ByPropertyName)|Org |
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **PoolID**
-
The Pool ID. When this is provided, will return agents associated with a given pool ID.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **AgentName**
-
If provided, will return agents of a given name.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **IncludeCapability**
-
If set, will return the capabilities of each returned agent.
+|Type |Required|Position|PipelineInput |Aliases |
+|----------|--------|--------|---------------------|-------------------------------------------|
+|`[Switch]`|false |named |true (ByPropertyName)|Capability Capabilities Environment|
-
-> **Type**: ```[Switch]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **IncludeLastCompletedRequest**
-
If set, will return the last completed request of each returned agent.
+|Type |Required|Position|PipelineInput |Aliases |
+|----------|--------|--------|---------------------|----------------------------------------------------|
+|`[Switch]`|false |named |true (ByPropertyName)|IncludeLastCompleted LastCompleted Completed|
-
-> **Type**: ```[Switch]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **IncludeAssignedRequest**
-
If set, will return the requests queued for an agent.
+|Type |Required|Position|PipelineInput |Aliases |
+|----------|--------|--------|---------------------|-------------------------------------------|
+|`[Switch]`|false |named |true (ByPropertyName)|IncludeAssigned IncludeQueue Queued|
-
-> **Type**: ```[Switch]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Project**
-
The project name or identifier. When this is provided, will return queues associated with the project.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Server**
-
The server. By default https://dev.azure.com/.
To use against TFS, provide the tfs server URL (e.g. http://tfsserver:8080/tfs).
+|Type |Required|Position|PipelineInput |
+|-------|--------|--------|---------------------|
+|`[Uri]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[Uri]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ApiVersion**
-
The api version. By default, 5.1.
If targeting TFS, this will need to change to match your server version.
See: https://docs.microsoft.com/en-us/azure/devops/integrate/concepts/rest-api-versioning?view=azure-devops
-
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|false |named |false |
---
+
### Outputs
* PSDevops.Pool
-
-
-
---
+
### Syntax
```PowerShell
Get-ADOAgentPool -Organization -PoolID [-AgentName ] [-IncludeCapability] [-IncludeLastCompletedRequest] [-IncludeAssignedRequest] [-Server ] [-ApiVersion ] []
@@ -210,4 +120,3 @@ Get-ADOAgentPool -Organization -Project [-Server ] [-ApiV
```PowerShell
Get-ADOAgentPool -Organization [-Server ] [-ApiVersion ] []
```
----
diff --git a/docs/Get-ADOAreaPath.md b/docs/Get-ADOAreaPath.md
index 93ff6358..7f2d6cb4 100644
--- a/docs/Get-ADOAreaPath.md
+++ b/docs/Get-ADOAreaPath.md
@@ -1,150 +1,89 @@
Get-ADOAreaPath
---------------
+
### Synopsis
Gets area paths
---
+
### Description
Get area paths from Azure DevOps
---
+
### Related Links
* [https://docs.microsoft.com/en-us/rest/api/azure/devops/wit/Classification%20Nodes/Get%20Classification%20Nodes?view=azure-devops-rest-5.1#get-the-root-area-tree](https://docs.microsoft.com/en-us/rest/api/azure/devops/wit/Classification%20Nodes/Get%20Classification%20Nodes?view=azure-devops-rest-5.1#get-the-root-area-tree)
-
-
* [Add-ADOAreaPath](Add-ADOAreaPath.md)
-
-
* [Remove-ADOAreaPath](Remove-ADOAreaPath.md)
-
-
---
+
### Examples
-#### EXAMPLE 1
+> EXAMPLE 1
+
```PowerShell
Get-ADOAreaPath -Organization StartAutomating -Project PSDevOps
```
---
+
### Parameters
#### **Organization**
-
The Organization
+|Type |Required|Position|PipelineInput |Aliases|
+|----------|--------|--------|---------------------|-------|
+|`[String]`|true |1 |true (ByPropertyName)|Org |
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: 1
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Project**
-
The project name or identifier.
+|Type |Required|Position|PipelineInput |Aliases |
+|----------|--------|--------|---------------------|---------|
+|`[String]`|true |2 |true (ByPropertyName)|ProjectID|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: 2
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **AreaPath**
-
The AreaPath
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|false |3 |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: 3
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Server**
-
The server. By default https://dev.azure.com/.
To use against TFS, provide the tfs server URL (e.g. http://tfsserver:8080/tfs).
+|Type |Required|Position|PipelineInput |
+|-------|--------|--------|---------------------|
+|`[Uri]`|false |4 |true (ByPropertyName)|
-
-> **Type**: ```[Uri]```
-
-> **Required**: false
-
-> **Position**: 4
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ApiVersion**
-
The api version. By default, 2.0.
If targeting TFS, this will need to change to match your server version.
See: https://docs.microsoft.com/en-us/azure/devops/integrate/concepts/rest-api-versioning?view=azure-devops
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|false |5 |false |
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: 5
-
-> **PipelineInput**:false
-
-
-
----
#### **Depth**
-
The depth of items to get. By default, one.
-
-
-> **Type**: ```[Int32]```
-
-> **Required**: false
-
-> **Position**: 6
-
-> **PipelineInput**:false
-
-
+|Type |Required|Position|PipelineInput|
+|---------|--------|--------|-------------|
+|`[Int32]`|false |6 |false |
---
+
### Outputs
* PSDevOps.AreaPath
-
-
-
---
+
### Syntax
```PowerShell
Get-ADOAreaPath [-Organization] [-Project] [[-AreaPath] ] [[-Server] ] [[-ApiVersion] ] [[-Depth] ] []
```
----
diff --git a/docs/Get-ADOArtifactFeed.md b/docs/Get-ADOArtifactFeed.md
index 618d09bc..c860ea7b 100644
--- a/docs/Get-ADOArtifactFeed.md
+++ b/docs/Get-ADOArtifactFeed.md
@@ -1,357 +1,167 @@
Get-ADOArtifactFeed
-------------------
+
### Synopsis
Gets artifact feeds from Azure DevOps
---
+
### Description
Gets artifact feeds from Azure DevOps. Artifact feeds can be used to publish packages.
---
+
### Related Links
* [https://docs.microsoft.com/en-us/rest/api/azure/devops/artifacts/feed%20%20management/get%20feeds?view=azure-devops-rest-5.1](https://docs.microsoft.com/en-us/rest/api/azure/devops/artifacts/feed%20%20management/get%20feeds?view=azure-devops-rest-5.1)
-
-
---
+
### Examples
-#### EXAMPLE 1
+> EXAMPLE 1
+
```PowerShell
Get-ADOArtifactFeed -Organization myOrganization -Project MyProject
```
---
+
### Parameters
#### **Organization**
-
The Organization
+|Type |Required|Position|PipelineInput |Aliases|
+|----------|--------|--------|---------------------|-------|
+|`[String]`|true |named |true (ByPropertyName)|Org |
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Project**
-
The Project
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **FeedID**
-
The name or ID of the feed.
+|Type |Required|Position|PipelineInput |Aliases |
+|----------|--------|--------|---------------------|----------------|
+|`[String]`|false |named |true (ByPropertyName)|fullyQualifiedId|
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **View**
-
If set, will Get Artifact Feed Views
+|Type |Required|Position|PipelineInput |Aliases|
+|----------|--------|--------|---------------------|-------|
+|`[Switch]`|true |named |true (ByPropertyName)|Views |
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Permission**
-
If set, will get artifact permissions
+|Type |Required|Position|PipelineInput |Aliases |
+|----------|--------|--------|---------------------|-----------|
+|`[Switch]`|true |named |true (ByPropertyName)|Permissions|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **RetentionPolicy**
-
If set, will get artifact retention policies
+|Type |Required|Position|PipelineInput |Aliases |
+|----------|--------|--------|---------------------|-----------------|
+|`[Switch]`|true |named |true (ByPropertyName)|RetentionPolicies|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **PackageVersionList**
-
If set, will list versions of a particular package.
+|Type |Required|Position|PipelineInput |Aliases |
+|----------|--------|--------|---------------------|------------------------------------------------|
+|`[Switch]`|true |named |true (ByPropertyName)|ListVersions ListVersion PackageVersions|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Provenance**
-
If set, will get provenance for a package version
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[Switch]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **VersionID**
-
A package version ID. Only required when getting version provenance.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **PackageList**
-
If set, will list packages within a feed.
+|Type |Required|Position|PipelineInput |Aliases |
+|----------|--------|--------|---------------------|-----------------------------------------|
+|`[Switch]`|true |named |true (ByPropertyName)|ListPackages ListPackage Packages|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **IncludeAllVersion**
-
If set, will include all versions of packages within a feed.
+|Type |Required|Position|PipelineInput |Aliases |
+|----------|--------|--------|---------------------|------------------|
+|`[Switch]`|false |named |true (ByPropertyName)|IncludeAllVersions|
-
-> **Type**: ```[Switch]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **IncludeDescription**
-
If set, will include descriptions of a package.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[Switch]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[Switch]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ProtocolType**
-
If provided, will return packages of a given protocol.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **NPM**
-
If set, will get information about a Node Package Manager module.
+|Type |Required|Position|PipelineInput |Aliases |
+|----------|--------|--------|---------------------|------------------|
+|`[Switch]`|true |named |true (ByPropertyName)|NodePackageManager|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **NuGet**
-
If set, will get information about a Nuget module.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[Switch]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Python**
-
If set, will get information about a Python module.
+|Type |Required|Position|PipelineInput |Aliases|
+|----------|--------|--------|---------------------|-------|
+|`[Switch]`|true |named |true (ByPropertyName)|PyPi |
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Universal**
-
If set, will get information about a Universal package module.
+|Type |Required|Position|PipelineInput |Aliases|
+|----------|--------|--------|---------------------|-------|
+|`[Switch]`|true |named |true (ByPropertyName)|UPack |
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **PackageName**
-
The Package Name. Must be used with -NPM, -NuGet, -Python, or -Universal.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **PackageVersion**
-
The Package Version. Must be used with -NPM, -NuGet, -Python, or -Universal.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **FeedRole**
-
The Feed Role
-
-
-
Valid Values:
* Administrator
@@ -359,134 +169,63 @@ Valid Values:
* Contributor
* Reader
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **PackageID**
-
A -PackageID. This can be used to get Packages -Metrics, -ListPackageVersion, or get -Provenance of a particular version.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Metric**
-
If set, will get package metrics.
+|Type |Required|Position|PipelineInput|Aliases|
+|----------|--------|--------|-------------|-------|
+|`[Switch]`|true |named |false |Metrics|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **IncludeDeleted**
-
If set, will include deleted feeds.
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[Switch]`|false |named |false |
-
-> **Type**: ```[Switch]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **Change**
-
If set, will get changes in artifact feeds.
+|Type |Required|Position|PipelineInput|Aliases|
+|----------|--------|--------|-------------|-------|
+|`[Switch]`|false |named |false |Changes|
-
-> **Type**: ```[Switch]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **Server**
-
The server. By default https://feeds.dev.azure.com/.
+|Type |Required|Position|PipelineInput|
+|-------|--------|--------|-------------|
+|`[Uri]`|false |named |false |
-
-> **Type**: ```[Uri]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **ApiVersion**
-
The api version. By default, 5.1-preview.
-
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|false |named |false |
---
+
### Outputs
* PSDevOps.ArtfiactFeed
-
* PSDevOps.ArtfiactFeed.View
-
* PSDevOps.ArtfiactFeed.Change
-
-
-
---
+
### Syntax
```PowerShell
Get-ADOArtifactFeed -Organization [-Project ] [-FeedID ] [-IncludeDeleted] [-Change] [-Server ] [-ApiVersion ] []
@@ -527,4 +266,3 @@ Get-ADOArtifactFeed -Organization [-Project ] [-FeedID
```PowerShell
Get-ADOArtifactFeed -Organization [-Project ] [-FeedID ] -PackageID -Metric [-IncludeDeleted] [-Change] [-Server ] [-ApiVersion ] []
```
----
diff --git a/docs/Get-ADOAuditLog.md b/docs/Get-ADOAuditLog.md
index 4c9d4be1..913f6e27 100644
--- a/docs/Get-ADOAuditLog.md
+++ b/docs/Get-ADOAuditLog.md
@@ -1,115 +1,70 @@
Get-ADOAuditLog
---------------
+
### Synopsis
Gets the Azure DevOps Audit Log
---
+
### Description
Gets the Azure DevOps Audit Log for a Given Organization
---
+
### Related Links
* [https://docs.microsoft.com/en-us/rest/api/azure/devops/audit/audit-log/query](https://docs.microsoft.com/en-us/rest/api/azure/devops/audit/audit-log/query)
-
-
---
+
### Examples
-#### EXAMPLE 1
+> EXAMPLE 1
+
```PowerShell
Get-ADOAuditLog
```
---
+
### Parameters
#### **Organization**
-
The Organization
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **BatchSize**
-
The size of the batch of audit log entries.
+|Type |Required|Position|PipelineInput |
+|---------|--------|--------|---------------------|
+|`[Int32]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[Int32]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **StartTime**
-
The start time.
+|Type |Required|Position|PipelineInput |
+|------------|--------|--------|---------------------|
+|`[DateTime]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[DateTime]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **EndTime**
-
The end time.
+|Type |Required|Position|PipelineInput |
+|------------|--------|--------|---------------------|
+|`[DateTime]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[DateTime]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ApiVersion**
-
The api-version. By default, 7.1-preview.1
-
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|false |named |true (ByPropertyName)|
---
+
### Syntax
```PowerShell
Get-ADOAuditLog -Organization [-BatchSize ] [-StartTime ] [-EndTime ] [-ApiVersion ] []
```
----
diff --git a/docs/Get-ADOBuild.md b/docs/Get-ADOBuild.md
index d8ad2ab9..a4389ef1 100644
--- a/docs/Get-ADOBuild.md
+++ b/docs/Get-ADOBuild.md
@@ -1,9 +1,11 @@
Get-ADOBuild
------------
+
### Synopsis
Gets Azure DevOps Builds, Definitions, and associated information.
---
+
### Description
Gets Azure DevOps Builds or Definitions and associated information.
@@ -31,501 +33,225 @@ Given a -Definition ID, we can get associated information:
|-DefinitionMetadata| Gets metadata about a build definition |
---
+
### Related Links
* [https://docs.microsoft.com/en-us/rest/api/azure/devops/build/builds/get?view=azure-devops-rest-5.1](https://docs.microsoft.com/en-us/rest/api/azure/devops/build/builds/get?view=azure-devops-rest-5.1)
-
-
* [https://docs.microsoft.com/en-us/rest/api/azure/devops/build/artifacts/list?view=azure-devops-rest-5.1](https://docs.microsoft.com/en-us/rest/api/azure/devops/build/artifacts/list?view=azure-devops-rest-5.1)
-
-
* [https://docs.microsoft.com/en-us/rest/api/azure/devops/build/builds/get%20build%20logs?view=azure-devops-rest-5.1](https://docs.microsoft.com/en-us/rest/api/azure/devops/build/builds/get%20build%20logs?view=azure-devops-rest-5.1)
-
-
* [https://docs.microsoft.com/en-us/rest/api/azure/devops/build/timeline/get?view=azure-devops-rest-5.1](https://docs.microsoft.com/en-us/rest/api/azure/devops/build/timeline/get?view=azure-devops-rest-5.1)
-
-
* [https://docs.microsoft.com/en-us/rest/api/azure/devops/build/properties/get%20build%20properties?view=azure-devops-rest-5.1](https://docs.microsoft.com/en-us/rest/api/azure/devops/build/properties/get%20build%20properties?view=azure-devops-rest-5.1)
-
-
* [https://docs.microsoft.com/en-us/rest/api/azure/devops/build/definitions/get?view=azure-devops-rest-5.1](https://docs.microsoft.com/en-us/rest/api/azure/devops/build/definitions/get?view=azure-devops-rest-5.1)
-
-
* [https://docs.microsoft.com/en-us/rest/api/azure/devops/build/properties/get%20definition%20properties?view=azure-devops-rest-5.1](https://docs.microsoft.com/en-us/rest/api/azure/devops/build/properties/get%20definition%20properties?view=azure-devops-rest-5.1)
-
-
* [https://docs.microsoft.com/en-us/rest/api/azure/devops/build/metrics/get%20definition%20metrics?view=azure-devops-rest-5.1](https://docs.microsoft.com/en-us/rest/api/azure/devops/build/metrics/get%20definition%20metrics?view=azure-devops-rest-5.1)
-
-
---
+
### Examples
-#### EXAMPLE 1
+> EXAMPLE 1
+
```PowerShell
Get-ADOBuild -Organization StartAutomating -Project PSDevOps
```
+> EXAMPLE 2
-#### EXAMPLE 2
```PowerShell
Get-ADOBuild -Organization StartAutomating -Project PSDevOps -Definition
```
---
+
### Parameters
#### **Organization**
-
The Organization
+|Type |Required|Position|PipelineInput |Aliases|
+|----------|--------|--------|---------------------|-------|
+|`[String]`|true |named |true (ByPropertyName)|Org |
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Project**
-
The Project
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Server**
-
The server. By default https://feeds.dev.azure.com/.
+|Type |Required|Position|PipelineInput |
+|-------|--------|--------|---------------------|
+|`[Uri]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[Uri]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ApiVersion**
-
The api version. By default, 5.1-preview.
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|false |named |false |
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **BuildID**
-
Build ID
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Detail**
-
If set
+|Type |Required|Position|PipelineInput|Aliases|
+|----------|--------|--------|-------------|-------|
+|`[Switch]`|false |named |false |Details|
-
-> **Type**: ```[Switch]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **BuildMetadata**
-
If set, returns system metadata about the -BuildID.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[Switch]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Artifact**
-
If set, will get artifacts from -BuildID.
+|Type |Required|Position|PipelineInput |Aliases |
+|----------|--------|--------|---------------------|---------|
+|`[Switch]`|true |named |true (ByPropertyName)|Artifacts|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Log**
-
If set, will get a list of logs associated with -BuildID
+|Type |Required|Position|PipelineInput|Aliases|
+|----------|--------|--------|-------------|-------|
+|`[Switch]`|true |named |false |Logs |
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **LogID**
-
If provided, will retreive the specific log content of -BuildID
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ChangeSet**
-
If set, will return the changeset associated with the build -BuildID.
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[Switch]`|true |named |false |
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **Report**
-
If set, will return the build report associated with -BuildID.
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[Switch]`|true |named |false |
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **Timeline**
-
If set, will return the timeline for build -BuildID
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[Switch]`|true |named |false |
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **CodeCoverage**
-
If set, will return the code coverage associated with -BuildID
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[Switch]`|true |named |false |
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **Definition**
-
If set, will get build definitions.
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[Switch]`|true |named |false |
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **DefinitionID**
-
If set, will get a specific build by definition ID
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Status**
-
If set, will get the status of a defined build.
+|Type |Required|Position|PipelineInput|Aliases |
+|----------|--------|--------|-------------|----------------|
+|`[Switch]`|true |named |false |DefinitionStatus|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **DefinitionMetadata**
-
If set, will get definition properties
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[Switch]`|true |named |false |
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **Revision**
-
If set, will get revisions to a build definition.
+|Type |Required|Position|PipelineInput|Aliases |
+|----------|--------|--------|-------------|--------------------------------------------------------|
+|`[Switch]`|true |named |false |DefinitionRevisions DefinitionRevision Revisions|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **Resource**
-
If set, will get authorized resources for a build definition.
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[Switch]`|true |named |false |
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **Metric**
-
If set, will get metrics about a build definition.
+|Type |Required|Position|PipelineInput|Aliases |
+|----------|--------|--------|-------------|--------------------------------------------------|
+|`[Switch]`|true |named |false |DefinitionMetric DefinitionMetrics Metrics|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **First**
-
If provided, will get the first N builds or build definitions
+|Type |Required|Position|PipelineInput|Aliases|
+|----------|--------|--------|-------------|-------|
+|`[UInt32]`|false |named |false |Top |
-
-> **Type**: ```[UInt32]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **BranchName**
-
If provided, will only return builds for a given branch.
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|false |named |false |
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **Tag**
-
If provided, will only return builds one of these tags.
+|Type |Required|Position|PipelineInput|
+|------------|--------|--------|-------------|
+|`[String[]]`|false |named |false |
-
-> **Type**: ```[String[]]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **After**
-
If provided, will only return builds queued after this point in time.
+|Type |Required|Position|PipelineInput|Aliases|
+|------------|--------|--------|-------------|-------|
+|`[DateTime]`|false |named |false |MinTime|
-
-> **Type**: ```[DateTime]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **Before**
-
If provided, will only return builds queued before this point in time.
+|Type |Required|Position|PipelineInput|Aliases|
+|------------|--------|--------|-------------|-------|
+|`[DateTime]`|false |named |false |MaxTime|
-
-> **Type**: ```[DateTime]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **BuildResult**
-
If provided, will only return builds with this result.
-
-
-
Valid Values:
* Canceled
@@ -534,146 +260,71 @@ Valid Values:
* Succeeded
* PartiallySucceeded
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|false |named |false |
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **DefinitionName**
-
Will only return build definitions with the specified name.
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|false |named |false |
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **BuiltAfter**
-
If provided, will only return build definitions that have been built after this date.
+|Type |Required|Position|PipelineInput|
+|------------|--------|--------|-------------|
+|`[DateTime]`|false |named |false |
-
-> **Type**: ```[DateTime]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **NotBuiltSince**
-
If provided, will only return build definitions that have not been built since this date.
+|Type |Required|Position|PipelineInput|Aliases |
+|------------|--------|--------|-------------|-------------|
+|`[DateTime]`|false |named |false |NotBuiltAfter|
-
-> **Type**: ```[DateTime]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **IncludeAllProperty**
-
If set, will return extended properities of a build definition.
+|Type |Required|Position|PipelineInput|Aliases |
+|----------|--------|--------|-------------|--------------------|
+|`[Switch]`|false |named |false |IncludeAllProperties|
-
-> **Type**: ```[Switch]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **IncludeLatestBuild**
-
If set, will include the latest build and latest completed build in a given build definition.
+|Type |Required|Position|PipelineInput|Aliases |
+|----------|--------|--------|-------------|-------------------|
+|`[Switch]`|false |named |false |IncludeLatestBuilds|
-
-> **Type**: ```[Switch]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **DefinitionYAML**
-
If provided, will return build definition YAML. No other information will be returned.
-
-
-> **Type**: ```[Switch]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[Switch]`|false |named |false |
---
+
### Outputs
* PSDevOps.Build
-
* PSDevOps.Build.Definition
-
* PSDevOps.Build.Timeline
-
* PSDevOps.Build.Change
-
* PSDevOps.Build.Report
-
* PSDevOps.Build.Artifact
-
* PSDevOps.Build.CodeCoverage
-
-
-
---
+
### Syntax
```PowerShell
Get-ADOBuild -Organization -Project [-Server ] [-ApiVersion ] [-First ] [-BranchName ] [-Tag ] [-After ] [-Before ] [-BuildResult ] []
@@ -726,4 +377,3 @@ Get-ADOBuild -Organization -Project [-Server ] [-ApiVersi
```PowerShell
Get-ADOBuild -Organization -Project [-Server ] [-ApiVersion ] -DefinitionID [-DefinitionYAML] []
```
----
diff --git a/docs/Get-ADODashboard.md b/docs/Get-ADODashboard.md
index 9f69f8d3..ade75bd5 100644
--- a/docs/Get-ADODashboard.md
+++ b/docs/Get-ADODashboard.md
@@ -1,178 +1,101 @@
Get-ADODashboard
----------------
+
### Synopsis
Gets Azure DevOps Dashboards
---
+
### Description
Gets Azure DevOps Team Dashboards and Widgets within a dashboard.
---
+
### Related Links
* [https://docs.microsoft.com/en-us/rest/api/azure/devops/dashboard/dashboards/list](https://docs.microsoft.com/en-us/rest/api/azure/devops/dashboard/dashboards/list)
-
-
---
+
### Examples
-#### EXAMPLE 1
+> EXAMPLE 1
+
```PowerShell
Get-ADOTeam -Organization MyOrganization -PersonalAccessToken $pat |
Get-ADODashboard
```
---
+
### Parameters
#### **Organization**
-
The Organization.
+|Type |Required|Position|PipelineInput |Aliases|
+|----------|--------|--------|---------------------|-------|
+|`[String]`|true |named |true (ByPropertyName)|Org |
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Project**
-
The Project.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Team**
-
The Team.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **DashboardID**
-
The DashboardID
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Widget**
-
If set, will widgets within a dashboard.
+|Type |Required|Position|PipelineInput |Aliases|
+|----------|--------|--------|---------------------|-------|
+|`[Switch]`|true |named |true (ByPropertyName)|Widgets|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **WidgetID**
-
The WidgetID. If provided, will get details about a given Azure DevOps Widget.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Server**
-
The server. By default https://dev.azure.com/.
To use against TFS, provide the tfs server URL (e.g. http://tfsserver:8080/tfs).
+|Type |Required|Position|PipelineInput |
+|-------|--------|--------|---------------------|
+|`[Uri]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[Uri]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ApiVersion**
-
The api version. By default, 5.1-preview.
If targeting TFS, this will need to change to match your server version.
See: https://docs.microsoft.com/en-us/azure/devops/integrate/concepts/rest-api-versioning?view=azure-devops
-
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|false |named |false |
---
+
### Outputs
* PSDevOps.Dashboard
-
* PSDevOps.Widget
-
-
-
---
+
### Syntax
```PowerShell
Get-ADODashboard -Organization -Project [-Team ] [-Server ] [-ApiVersion ] []
@@ -186,4 +109,3 @@ Get-ADODashboard -Organization -Project [-Team ] -Dash
```PowerShell
Get-ADODashboard -Organization -Project [-Team ] -DashboardID [-Server ] [-ApiVersion ] []
```
----
diff --git a/docs/Get-ADOExtension.md b/docs/Get-ADOExtension.md
index f2eedf73..0d7ab12b 100644
--- a/docs/Get-ADOExtension.md
+++ b/docs/Get-ADOExtension.md
@@ -1,367 +1,181 @@
Get-ADOExtension
----------------
+
### Synopsis
Gets Azure DevOps Extensions
---
+
### Description
Gets Extensions to Azure DevOps.
---
+
### Related Links
* [https://docs.microsoft.com/en-us/rest/api/azure/devops/extensionmanagement/installed%20extensions/list?view=azure-devops-rest-5.1](https://docs.microsoft.com/en-us/rest/api/azure/devops/extensionmanagement/installed%20extensions/list?view=azure-devops-rest-5.1)
-
-
* [https://docs.microsoft.com/en-us/rest/api/azure/devops/extensionmanagement/installed%20extensions/get?view=azure-devops-rest-5.1](https://docs.microsoft.com/en-us/rest/api/azure/devops/extensionmanagement/installed%20extensions/get?view=azure-devops-rest-5.1)
-
-
* [https://docs.microsoft.com/en-us/azure/devops/extend/develop/data-storage?view=azure-devops#how-settings-are-stored](https://docs.microsoft.com/en-us/azure/devops/extend/develop/data-storage?view=azure-devops#how-settings-are-stored)
-
-
---
+
### Examples
-#### EXAMPLE 1
+> EXAMPLE 1
+
```PowerShell
Get-ADOExtension -Organization StartAutomating
```
---
+
### Parameters
#### **Organization**
-
The organization.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ExtensionNameLike**
-
A wildcard of the extension name. Only extensions where the Extension Name or ID matches the wildcard will be returned.
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|false |named |false |
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **ExtensionNameMatch**
-
A regular expression of the extension name. Only extensions where the Extension Name or ID matches the wildcard will be returned.
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|false |named |false |
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **PublisherNameLike**
-
A wildcard of the publisher name. Only extensions where the Publisher Name or ID matches the wildcard will be returned.
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|false |named |false |
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **PublisherNameMatch**
-
A regular expression of the publisher name. Only extensions where the Publisher Name or ID matches the wildcard will be returned.
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|false |named |false |
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **PublisherID**
-
The Publisher of the Extension.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ExtensionID**
-
The Extension Identifier.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **DataCollection**
-
The data collection
+|Type |Required|Position|PipelineInput |Aliases |
+|----------|--------|--------|---------------------|-----------------------------------------------|
+|`[String]`|true |named |true (ByPropertyName)|TableName Table_Name DocumentCollection|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **DataID**
-
The data identifier
+|Type |Required|Position|PipelineInput |Aliases |
+|----------|--------|--------|---------------------|---------------------|
+|`[String]`|false |named |true (ByPropertyName)|RowKey DocumentID|
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ScopeType**
-
The scope type. By default, the value "default" (which maps to Project Collection)
-
-
-
Valid Values:
* Default
* Project
* User
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ScopeModifier**
-
The scope modifier. By default, the value "current" (which maps to the current project collection or project)
-
-
-
Valid Values:
* Current
* Me
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **AssetType**
-
A list of asset types
+|Type |Required|Position|PipelineInput|Aliases |
+|------------|--------|--------|-------------|----------|
+|`[String[]]`|false |named |false |AssetTypes|
-
-> **Type**: ```[String[]]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **IncludeDisabled**
-
If set, will include disabled extensions
+|Type |Required|Position|PipelineInput|Aliases |
+|----------|--------|--------|-------------|--------|
+|`[Switch]`|false |named |false |Disabled|
-
-> **Type**: ```[Switch]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **InstallationIssue**
-
If set, will include extension installation issues
+|Type |Required|Position|PipelineInput|Aliases |
+|----------|--------|--------|-------------|------------------------------------------------------|
+|`[Switch]`|false |named |false |IncludeInstallationIssue IncludeInstallationIssues|
-
-> **Type**: ```[Switch]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **IncludeError**
-
If set, will include errors
+|Type |Required|Position|PipelineInput|Aliases |
+|----------|--------|--------|-------------|-------------|
+|`[Switch]`|false |named |false |IncludeErrors|
-
-> **Type**: ```[Switch]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **Contribution**
-
If set, will expand contributions.
+|Type |Required|Position|PipelineInput|Aliases |
+|----------|--------|--------|-------------|-------------|
+|`[Switch]`|false |named |false |Contributions|
-
-> **Type**: ```[Switch]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **Server**
-
The server. By default https://dev.azure.com/.
To use against TFS, provide the tfs server URL (e.g. http://tfsserver:8080/tfs).
+|Type |Required|Position|PipelineInput |
+|-------|--------|--------|---------------------|
+|`[Uri]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[Uri]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ApiVersion**
-
The api version. By default, 5.1.
If targeting TFS, this will need to change to match your server version.
See: https://docs.microsoft.com/en-us/azure/devops/integrate/concepts/rest-api-versioning?view=azure-devops
-
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|false |named |false |
---
+
### Outputs
* PSDevOps.InstalledExtension
-
-
-
---
+
### Syntax
```PowerShell
Get-ADOExtension -Organization [-Server ] [-ApiVersion ] []
@@ -375,4 +189,3 @@ Get-ADOExtension -Organization [-ExtensionNameLike ] [-Extensio
```PowerShell
Get-ADOExtension -Organization -PublisherID -ExtensionID -DataCollection [-DataID ] [-ScopeType ] [-ScopeModifier ] [-Server ] [-ApiVersion ] []
```
----
diff --git a/docs/Get-ADOField.md b/docs/Get-ADOField.md
index d79aacd2..63187e24 100644
--- a/docs/Get-ADOField.md
+++ b/docs/Get-ADOField.md
@@ -1,182 +1,102 @@
Get-ADOField
------------
+
### Synopsis
Gets fields from Azure DevOps
---
+
### Description
Gets fields from Azure DevOps or Team Foundation Server.
---
+
### Related Links
* [New-ADOField](New-ADOField.md)
-
-
* [Remove-ADOField](Remove-ADOField.md)
-
-
* [https://docs.microsoft.com/en-us/rest/api/azure/devops/wit/fields/list](https://docs.microsoft.com/en-us/rest/api/azure/devops/wit/fields/list)
-
-
---
+
### Examples
-#### EXAMPLE 1
+> EXAMPLE 1
+
```PowerShell
Get-ADOField -Organization StartAutomating -Project PSDevOps
```
---
+
### Parameters
#### **Organization**
-
The Organization
+|Type |Required|Position|PipelineInput |Aliases|
+|----------|--------|--------|---------------------|-------|
+|`[String]`|true |named |true (ByPropertyName)|Org |
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Project**
-
The Project
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **FieldName**
-
The name of the field.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ProcessID**
-
The processs identifier. This is used to get field information related to a particular work process template.
+|Type |Required|Position|PipelineInput |Aliases|
+|----------|--------|--------|---------------------|-------|
+|`[String]`|true |named |true (ByPropertyName)|TypeID |
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **WorkItemTypeName**
-
The name of the work item type. This is used to get field information related to a particular work process template.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Server**
-
The server. By default https://dev.azure.com/.
To use against TFS, provide the tfs server URL (e.g. http://tfsserver:8080/tfs).
+|Type |Required|Position|PipelineInput |
+|-------|--------|--------|---------------------|
+|`[Uri]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[Uri]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Force**
-
If set, will force a refresh of the cached results.
+|Type |Required|Position|PipelineInput|Aliases|
+|----------|--------|--------|-------------|-------|
+|`[Switch]`|false |named |false |Refresh|
-
-> **Type**: ```[Switch]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **ApiVersion**
-
The api version. By default, 5.1.
If targeting TFS, this will need to change to match your server version.
See: https://docs.microsoft.com/en-us/azure/devops/integrate/concepts/rest-api-versioning?view=azure-devops
-
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|false |named |false |
---
+
### Outputs
* PSDevOps.Field
-
-
-
---
+
### Syntax
```PowerShell
Get-ADOField -Organization [-Project ] [-FieldName ] [-Server ] [-Force] [-ApiVersion ] []
@@ -184,4 +104,3 @@ Get-ADOField -Organization [-Project ] [-FieldName ] [-
```PowerShell
Get-ADOField -Organization [-Project ] [-FieldName ] -ProcessID -WorkItemTypeName [-Server ] [-Force] [-ApiVersion ] []
```
----
diff --git a/docs/Get-ADOIdentity.md b/docs/Get-ADOIdentity.md
index a6268791..20e717c2 100644
--- a/docs/Get-ADOIdentity.md
+++ b/docs/Get-ADOIdentity.md
@@ -1,161 +1,87 @@
Get-ADOIdentity
---------------
+
### Synopsis
Gets Azure DevOps Identities
---
+
### Description
Gets Identities from Azure Devops. Identities can be either users or groups.
---
+
### Related Links
* [Get-ADOUser](Get-ADOUser.md)
-
-
* [Get-ADOTeam](Get-ADOTeam.md)
-
-
* [https://docs.microsoft.com/en-us/rest/api/azure/devops/ims/identities/read%20identities](https://docs.microsoft.com/en-us/rest/api/azure/devops/ims/identities/read%20identities)
-
-
---
+
### Examples
-#### EXAMPLE 1
+> EXAMPLE 1
+
```PowerShell
Get-ADOIdentity -Organization StartAutomating -Filter 'GitHub'
```
---
+
### Parameters
#### **Organization**
-
The Organization.
+|Type |Required|Position|PipelineInput |Aliases|
+|----------|--------|--------|---------------------|-------|
+|`[String]`|true |1 |true (ByPropertyName)|Org |
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: 1
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **AceDictionary**
-
A dictionary of Access Control Entries
+|Type |Required|Position|PipelineInput |Aliases |
+|------------|--------|--------|---------------------|--------------|
+|`[PSObject]`|false |2 |true (ByPropertyName)|AcesDictionary|
-
-> **Type**: ```[PSObject]```
-
-> **Required**: false
-
-> **Position**: 2
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Descriptors**
-
A list of descriptors
+|Type |Required|Position|PipelineInput |Aliases|
+|------------|--------|--------|---------------------|-------|
+|`[String[]]`|false |3 |true (ByPropertyName)|Members|
-
-> **Type**: ```[String[]]```
-
-> **Required**: false
-
-> **Position**: 3
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **DescriptorBatchSize**
-
The maximum number of specific descriptors to request in one batch.
+|Type |Required|Position|PipelineInput|
+|---------|--------|--------|-------------|
+|`[Int32]`|false |4 |false |
-
-> **Type**: ```[Int32]```
-
-> **Required**: false
-
-> **Position**: 4
-
-> **PipelineInput**:false
-
-
-
----
#### **Membership**
-
If set, will get membership information.
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[Switch]`|false |named |false |
-
-> **Type**: ```[Switch]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **Recurse**
-
If set, will recursively expand any group memberships discovered.
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[Switch]`|false |named |false |
-
-> **Type**: ```[Switch]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **Filter**
-
The filter used for a query
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|false |5 |false |
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: 5
-
-> **PipelineInput**:false
-
-
-
----
#### **SearchType**
-
The search type. Can be: AccountName, DisplayName, MailAddress, General, LocalGroupName
-
-
-
Valid Values:
* AccountName
@@ -164,49 +90,28 @@ Valid Values:
* General
* LocalGroupName
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|false |6 |false |
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: 6
-
-> **PipelineInput**:false
-
-
-
----
#### **ApiVersion**
-
The api version. By default, 6.0.
This API does not exist in TFS.
-
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: 7
-
-> **PipelineInput**:false
-
-
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|false |7 |false |
---
+
### Outputs
* PSDevOps.Team
-
* PSDevOps.TeamMember
-
-
-
---
+
### Syntax
```PowerShell
Get-ADOIdentity [-Organization] [[-AceDictionary] ] [[-Descriptors] ] [[-DescriptorBatchSize] ] [-Membership] [-Recurse] [[-Filter] ] [[-SearchType] ] [[-ApiVersion] ] []
```
----
diff --git a/docs/Get-ADOIterationPath.md b/docs/Get-ADOIterationPath.md
index f18683a9..7204a955 100644
--- a/docs/Get-ADOIterationPath.md
+++ b/docs/Get-ADOIterationPath.md
@@ -1,146 +1,87 @@
Get-ADOIterationPath
--------------------
+
### Synopsis
Gets iteration paths
---
+
### Description
Get iteration paths from Azure DevOps
---
+
### Related Links
* [Get-ADOAreaPath](Get-ADOAreaPath.md)
-
-
* [https://docs.microsoft.com/en-us/rest/api/azure/devops/wit/Classification%20Nodes/Get%20Classification%20Nodes?view=azure-devops-rest-5.1#get-the-root-area-tree](https://docs.microsoft.com/en-us/rest/api/azure/devops/wit/Classification%20Nodes/Get%20Classification%20Nodes?view=azure-devops-rest-5.1#get-the-root-area-tree)
-
-
---
+
### Examples
-#### EXAMPLE 1
+> EXAMPLE 1
+
```PowerShell
Get-ADOIterationPath -Organization StartAutomating -Project PSDevOps
```
---
+
### Parameters
#### **Organization**
-
The Organization
+|Type |Required|Position|PipelineInput |Aliases|
+|----------|--------|--------|---------------------|-------|
+|`[String]`|true |1 |true (ByPropertyName)|Org |
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: 1
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Project**
-
The project name or identifier.
+|Type |Required|Position|PipelineInput |Aliases |
+|----------|--------|--------|---------------------|---------|
+|`[String]`|true |2 |true (ByPropertyName)|ProjectID|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: 2
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **IterationPath**
-
The IterationPath
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|false |3 |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: 3
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Server**
-
The server. By default https://dev.azure.com/.
To use against TFS, provide the tfs server URL (e.g. http://tfsserver:8080/tfs).
+|Type |Required|Position|PipelineInput |
+|-------|--------|--------|---------------------|
+|`[Uri]`|false |4 |true (ByPropertyName)|
-
-> **Type**: ```[Uri]```
-
-> **Required**: false
-
-> **Position**: 4
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ApiVersion**
-
The api version. By default, 2.0.
If targeting TFS, this will need to change to match your server version.
See: https://docs.microsoft.com/en-us/azure/devops/integrate/concepts/rest-api-versioning?view=azure-devops
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|false |5 |false |
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: 5
-
-> **PipelineInput**:false
-
-
-
----
#### **Depth**
-
The depth of items to get. By default, one.
-
-
-> **Type**: ```[Int32]```
-
-> **Required**: false
-
-> **Position**: 6
-
-> **PipelineInput**:false
-
-
+|Type |Required|Position|PipelineInput|
+|---------|--------|--------|-------------|
+|`[Int32]`|false |6 |false |
---
+
### Outputs
* PSDevOps.IterationPath
-
-
-
---
+
### Syntax
```PowerShell
Get-ADOIterationPath [-Organization] [-Project] [[-IterationPath] ] [[-Server] ] [[-ApiVersion] ] [[-Depth] ] []
```
----
diff --git a/docs/Get-ADOPermission.md b/docs/Get-ADOPermission.md
index 917b0459..c3531f7f 100644
--- a/docs/Get-ADOPermission.md
+++ b/docs/Get-ADOPermission.md
@@ -1,35 +1,34 @@
Get-ADOPermission
-----------------
+
### Synopsis
Gets Azure DevOps Permissions
---
+
### Description
Gets Azure DevOps security permissions.
---
+
### Related Links
* [https://docs.microsoft.com/en-us/rest/api/azure/devops/security/access%20control%20lists/query](https://docs.microsoft.com/en-us/rest/api/azure/devops/security/access%20control%20lists/query)
-
-
* [https://docs.microsoft.com/en-us/rest/api/azure/devops/security/security%20namespaces/query](https://docs.microsoft.com/en-us/rest/api/azure/devops/security/security%20namespaces/query)
-
-
* [https://docs.microsoft.com/en-us/azure/devops/organizations/security/namespace-reference](https://docs.microsoft.com/en-us/azure/devops/organizations/security/namespace-reference)
-
-
---
+
### Examples
-#### EXAMPLE 1
+> EXAMPLE 1
+
```PowerShell
Get-ADOPermission -Organization MyOrganization -Project MyProject -PersonalAccessToken $pat
```
+> EXAMPLE 2
-#### EXAMPLE 2
```PowerShell
Get-ADOProject -Organization MyOrganization -Project MyProject | # Get the project
Get-ADOTeam | # get the teams within the project
@@ -37,148 +36,68 @@ Get-ADOProject -Organization MyOrganization -Project MyProject | # Get the proje
```
---
+
### Parameters
#### **Organization**
-
The Organization.
+|Type |Required|Position|PipelineInput |Aliases|
+|----------|--------|--------|---------------------|-------|
+|`[String]`|true |named |true (ByPropertyName)|Org |
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **PermissionType**
-
If set, will list the type of permisssions.
+|Type |Required|Position|PipelineInput|Aliases |
+|----------|--------|--------|-------------|------------------------------------------------------------------|
+|`[Switch]`|false |named |false |SecurityNamespace ListPermissionType ListSecurityNamespace|
-
-> **Type**: ```[Switch]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **NamespaceID**
-
The Security Namespace ID.
For details about each namespace, see:
https://docs.microsoft.com/en-us/azure/devops/organizations/security/namespace-reference
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **SecurityToken**
-
The Security Token.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ProjectID**
-
The Project ID.
If this is provided without anything else, will get permissions for the projectID
+|Type |Required|Position|PipelineInput |Aliases|
+|----------|--------|--------|---------------------|-------|
+|`[String]`|true |named |true (ByPropertyName)|Project|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **TeamID**
-
If provided, will get permissions related to a given teamID. ( see Get-ADOTeam)
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **AreaPath**
-
If provided, will get permissions related to an Area Path. ( see Get-ADOAreaPath )
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **IterationPath**
-
If provided, will get permissions related to an Iteration Path. ( see Get-ADOIterationPath )
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Overview**
-
If set, will get common permissions related to a project.
These are:
* Builds
@@ -190,372 +109,162 @@ These are:
* Service Endpoints
* ServiceHooks
+|Type |Required|Position|PipelineInput |Aliases |
+|----------|--------|--------|---------------------|---------------|
+|`[Switch]`|true |named |true (ByPropertyName)|ProjectOverview|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Tagging**
-
If set, will get permissions for tagging related to the current project.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[Switch]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Analytics**
-
If set, will get permissions for analytics related to the current project.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[Switch]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ManageTFVC**
-
If set, will get permissions for Team Foundation Version Control related to the current project.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[Switch]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Plan**
-
If set, will get permissions for Delivery Plans.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[Switch]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Dashboard**
-
If set, will get dashboard permissions related to the current project.
+|Type |Required|Position|PipelineInput |Aliases |
+|----------|--------|--------|---------------------|----------|
+|`[Switch]`|true |named |true (ByPropertyName)|Dashboards|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ServiceEndpoint**
-
If set, will get all service endpoints permissions.
+|Type |Required|Position|PipelineInput |Aliases |
+|----------|--------|--------|---------------------|----------------|
+|`[Switch]`|true |named |true (ByPropertyName)|ServiceEndpoints|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **EndpointID**
-
If set, will get endpoint permissions related to a particular endpoint.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **DefinitionID**
-
The Build Definition ID
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **BuildPath**
-
The path to the build.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **BuildPermission**
-
If set, will get build and release permissions for a given project.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[Switch]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **RepositoryID**
-
If provided, will get build and release permissions for a given project's repositoryID
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **BranchName**
-
If provided, will get permissions for a given branch within a repository
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ProjectRepository**
-
If set, will get permissions for repositories within a project
+|Type |Required|Position|PipelineInput |Aliases |
+|----------|--------|--------|---------------------|-------------------|
+|`[Switch]`|true |named |true (ByPropertyName)|ProjectRepositories|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **AllRepository**
-
If set, will get permissions for repositories within a project
+|Type |Required|Position|PipelineInput |Aliases |
+|----------|--------|--------|---------------------|---------------|
+|`[Switch]`|true |named |true (ByPropertyName)|AllRepositories|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Descriptor**
-
The Descriptor
+|Type |Required|Position|PipelineInput |
+|------------|--------|--------|---------------------|
+|`[String[]]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[String[]]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Recurse**
-
If set and this is a hierarchical namespace, return child ACLs of the specified token.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[Switch]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[Switch]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **IncludeExtendedInfo**
-
If set, populate the extended information properties for the access control entries in the returned lists.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[Switch]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[Switch]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ExpandACL**
-
If set, will expand the ACE dictionary returned
+|Type |Required|Position|PipelineInput|Aliases|
+|----------|--------|--------|-------------|-------|
+|`[Switch]`|false |named |false |ACL |
-
-> **Type**: ```[Switch]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **Server**
-
The server. By default https://dev.azure.com/.
To use against TFS, provide the tfs server URL (e.g. http://tfsserver:8080/tfs).
+|Type |Required|Position|PipelineInput |
+|-------|--------|--------|---------------------|
+|`[Uri]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[Uri]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ApiVersion**
-
The api version. By default, 5.1-preview.
If targeting TFS, this will need to change to match your server version.
See: https://docs.microsoft.com/en-us/azure/devops/integrate/concepts/rest-api-versioning?view=azure-devops
-
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|false |named |false |
---
+
### Outputs
* PSDevOps.SecurityNamespace
-
* PSDevOps.AccessControlList
-
-
-
---
+
### Syntax
```PowerShell
Get-ADOPermission -Organization [-PermissionType] [-Descriptor ] [-Recurse] [-IncludeExtendedInfo] [-ExpandACL] [-Server ] [-ApiVersion ] []
@@ -611,4 +320,3 @@ Get-ADOPermission -Organization -ServiceEndpoint [-Descriptor [-BranchName ] -AllRepository [-Descriptor ] [-Recurse] [-IncludeExtendedInfo] [-ExpandACL] [-Server ] [-ApiVersion ] []
```
----
diff --git a/docs/Get-ADOPicklist.md b/docs/Get-ADOPicklist.md
index 599403de..1cb84a6b 100644
--- a/docs/Get-ADOPicklist.md
+++ b/docs/Get-ADOPicklist.md
@@ -1,9 +1,11 @@
Get-ADOPicklist
---------------
+
### Synopsis
Gets picklists from Azure DevOps.
---
+
### Description
Gets picklists from Azure DevOps.
@@ -11,144 +13,83 @@ Gets picklists from Azure DevOps.
Picklists are lists of values that can be associated with a field, for example, a list of T-shirt sizes.
---
+
### Related Links
* [https://docs.microsoft.com/en-us/rest/api/azure/devops/processes/lists/list](https://docs.microsoft.com/en-us/rest/api/azure/devops/processes/lists/list)
-
-
* [https://docs.microsoft.com/en-us/rest/api/azure/devops/processes/lists/get](https://docs.microsoft.com/en-us/rest/api/azure/devops/processes/lists/get)
-
-
---
+
### Examples
-#### EXAMPLE 1
+> EXAMPLE 1
+
```PowerShell
Get-ADOPicklist -Organization StartAutomating -PersonalAccessToken $pat
```
+> EXAMPLE 2
-#### EXAMPLE 2
```PowerShell
Get-ADOPicklist -Organization StartAutomating
```
---
+
### Parameters
#### **Organization**
-
The Organization
+|Type |Required|Position|PipelineInput |Aliases|
+|----------|--------|--------|---------------------|-------|
+|`[String]`|true |named |true (ByPropertyName)|Org |
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **PickListID**
-
The Picklist Identifier.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **PicklistName**
-
The name of the picklist
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Orphan**
-
If set, will return orphan picklists. These picklists are not associated with any field.
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[Switch]`|true |named |false |
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **Server**
-
The server. By default https://dev.azure.com/.
To use against TFS, provide the tfs server URL (e.g. http://tfsserver:8080/tfs).
+|Type |Required|Position|PipelineInput |
+|-------|--------|--------|---------------------|
+|`[Uri]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[Uri]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ApiVersion**
-
The api version. By default, 5.1-preview.
If targeting TFS, this will need to change to match your server version.
See: https://docs.microsoft.com/en-us/azure/devops/integrate/concepts/rest-api-versioning?view=azure-devops
-
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|false |named |false |
---
+
### Outputs
* PSDevOps.Project
-
* PSDevOps.Property
-
-
-
---
+
### Syntax
```PowerShell
Get-ADOPicklist -Organization [-PicklistName ] [-Server ] [-ApiVersion ] []
@@ -159,4 +100,3 @@ Get-ADOPicklist -Organization [-PicklistName ] -Orphan [-Server
```PowerShell
Get-ADOPicklist -Organization -PickListID [-PicklistName ] [-Server ] [-ApiVersion ] []
```
----
diff --git a/docs/Get-ADOProject.md b/docs/Get-ADOProject.md
index ad3a17a7..c978d474 100644
--- a/docs/Get-ADOProject.md
+++ b/docs/Get-ADOProject.md
@@ -1,396 +1,197 @@
Get-ADOProject
--------------
+
### Synopsis
Gets projects from Azure DevOps.
---
+
### Description
Gets projects from Azure DevOps or TFS.
---
+
### Related Links
* [https://docs.microsoft.com/en-us/rest/api/azure/devops/core/projects/list](https://docs.microsoft.com/en-us/rest/api/azure/devops/core/projects/list)
-
-
* [https://docs.microsoft.com/en-us/rest/api/azure/devops/wiki/wikis/list](https://docs.microsoft.com/en-us/rest/api/azure/devops/wiki/wikis/list)
-
-
---
+
### Examples
-#### EXAMPLE 1
+> EXAMPLE 1
+
```PowerShell
Get-ADOProject -Organization StartAutomating -PersonalAccessToken $pat
```
+> EXAMPLE 2
-#### EXAMPLE 2
```PowerShell
Get-ADOProject -Organization StartAutomating -Project PSDevOps
```
+> EXAMPLE 3
-#### EXAMPLE 3
```PowerShell
Get-ADOProject -Organization StartAutomating -Project PSDevOps |
Get-ADOProject -Metadata
```
---
+
### Parameters
#### **Project**
-
The project name.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ProjectID**
-
The project identifier.
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Metadata**
-
If set, will get project metadta
+|Type |Required|Position|PipelineInput|Aliases |
+|----------|--------|--------|-------------|-----------------------|
+|`[Switch]`|true |named |false |Property Properties|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **ProcessConfiguration**
-
If set, will return the process configuration of a project.
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[Switch]`|true |named |false |
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **PolicyConfiguration**
-
If set, will return the policy configuration of a project.
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[Switch]`|true |named |false |
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **PolicyType**
-
If set, will return the policy types available in a given project.
+|Type |Required|Position|PipelineInput|Aliases |
+|----------|--------|--------|-------------|-----------|
+|`[Switch]`|true |named |false |PolicyTypes|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **Plan**
-
If set, will return the plans related to a project.
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[Switch]`|true |named |false |
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **TestRun**
-
If set, will return the test runs associated with a project.
+|Type |Required|Position|PipelineInput|Aliases |
+|----------|--------|--------|-------------|--------|
+|`[Switch]`|true |named |false |TestRuns|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **TestPlan**
-
If set, will return the test plans associated with a project.
+|Type |Required|Position|PipelineInput|Aliases |
+|----------|--------|--------|-------------|---------|
+|`[Switch]`|true |named |false |TestPlans|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **TestVariable**
-
If set, will return the test variables associated with a project.
+|Type |Required|Position|PipelineInput|Aliases |
+|----------|--------|--------|-------------|-------------|
+|`[Switch]`|true |named |false |TestVariables|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **TestConfiguration**
-
If set, will return the test variables associated with a project.
+|Type |Required|Position|PipelineInput|Aliases |
+|----------|--------|--------|-------------|------------------|
+|`[Switch]`|true |named |false |TestConfigurations|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **PlanID**
-
If set, will a specific project plan.
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|true |named |false |
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **DeliveryTimeline**
-
If set, will return the project delivery timeline associated with a given planID.
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|true |named |false |
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **Wiki**
-
If set, will return any wikis associated with the project.
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[Switch]`|true |named |false |
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **Board**
-
If set, will return any boards associated with the project.
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[Switch]`|true |named |false |
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **Release**
-
If set, will return releases associated with the project.
+|Type |Required|Position|PipelineInput|Aliases |
+|----------|--------|--------|-------------|--------|
+|`[Switch]`|true |named |false |Releases|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **PendingApproval**
-
If set, will return pending approvals associated with the project.
+|Type |Required|Position|PipelineInput|Aliases |
+|----------|--------|--------|-------------|----------------|
+|`[Switch]`|true |named |false |PendingApprovals|
-
-> **Type**: ```[Switch]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
-
----
#### **Organization**
-
The Organization
+|Type |Required|Position|PipelineInput |Aliases|
+|----------|--------|--------|---------------------|-------|
+|`[String]`|true |named |true (ByPropertyName)|Org |
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Server**
-
The server. By default https://dev.azure.com/.
To use against TFS, provide the tfs server URL (e.g. http://tfsserver:8080/tfs).
+|Type |Required|Position|PipelineInput |
+|-------|--------|--------|---------------------|
+|`[Uri]`|false |named |true (ByPropertyName)|
-
-> **Type**: ```[Uri]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **ApiVersion**
-
The api version. By default, 5.1-preview.
If targeting TFS, this will need to change to match your server version.
See: https://docs.microsoft.com/en-us/azure/devops/integrate/concepts/rest-api-versioning?view=azure-devops
-
-
-> **Type**: ```[String]```
-
-> **Required**: false
-
-> **Position**: named
-
-> **PipelineInput**:false
-
-
+|Type |Required|Position|PipelineInput|
+|----------|--------|--------|-------------|
+|`[String]`|false |named |false |
---
+
### Outputs
* PSDevOps.Project
-
* PSDevOps.Property
-
-
-
---
+
### Syntax
```PowerShell
Get-ADOProject -Organization [-Server ] [-ApiVersion ] []
@@ -449,4 +250,3 @@ Get-ADOProject -ProjectID -Organization [-Server ] [-ApiV
```PowerShell
Get-ADOProject -PlanID -DeliveryTimeline -Organization [-Server ] [-ApiVersion ] []
```
----
diff --git a/docs/Get-ADORepository.md b/docs/Get-ADORepository.md
index 2ffedd0c..76eb0d3b 100644
--- a/docs/Get-ADORepository.md
+++ b/docs/Get-ADORepository.md
@@ -1,9 +1,11 @@
Get-ADORepository
-----------------
+
### Synopsis
Gets repositories from Azure DevOps
---
+
### Description
Gets the repositories from Azure DevOps.
@@ -16,7 +18,6 @@ You can get additional details by piping back into Get-ADORepository with a numb
* ```Get-ADORepository | Get-ADORepository -FileList # Lists files in a repository```
* ```Get-ADORepository | Get-ADORepository -GitRef # Lists git refs for a repository```
-
Azure DevOps repositories can have more than one type of SourceProvider.
To list the Source Providers, use -SourceProvider
@@ -24,149 +25,75 @@ To list the Source Providers, use -SourceProvider
We can get repositories for a given -ProviderName.
---
+
### Related Links
* [Remove-ADORepository](Remove-ADORepository.md)
-
-
* [https://docs.microsoft.com/en-us/rest/api/azure/devops/build/source%20providers/list%20repositories](https://docs.microsoft.com/en-us/rest/api/azure/devops/build/source%20providers/list%20repositories)
-
-
---
+
### Examples
-#### EXAMPLE 1
+> EXAMPLE 1
+
```PowerShell
Get-ADORepository -Organization StartAutomating -Project PSDevOps
```
---
+
### Parameters
#### **Organization**
-
The Organization
+|Type |Required|Position|PipelineInput |Aliases|
+|----------|--------|--------|---------------------|-------|
+|`[String]`|true |named |true (ByPropertyName)|Org |
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **Project**
-
The Project
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **RepositoryID**
-
The Repository ID
+|Type |Required|Position|PipelineInput |
+|----------|--------|--------|---------------------|
+|`[String]`|true |named |true (ByPropertyName)|
-
-> **Type**: ```[String]```
-
-> **Required**: true
-
-> **Position**: named
-
-> **PipelineInput**:true (ByPropertyName)
-
-
-
----
#### **CommitList**
-
If set, will list commits associated with a given repository.
+|Type |Required|Position|PipelineInput|Aliases |
+|----------|--------|--------|-------------|---------------------|
+|`[Switch]`|true |named |false |ListCommit