mirror of
https://dev.azure.com/effectory/Survey%20Software/_git/Cloud%20Engineering
synced 2026-02-27 18:52:18 +01:00
56 lines
2.5 KiB
PowerShell
56 lines
2.5 KiB
PowerShell
|
|
class PullRequest {
|
|
[string] $RepositoryId = ""
|
|
[string] $RepositoryName = ""
|
|
[string] $DefaultBranch = ""
|
|
[string] $RepositoryWebUrl = ""
|
|
[string] $PullRequestId = ""
|
|
[string] $PullRequestDate = ""
|
|
[string] $PullRequestName = ""
|
|
[string] $PullRequestCreatedBy = ""
|
|
[string] $PullRequestReviewers = ""
|
|
[string] $PullRequestStatus = ""
|
|
[string] $PullRequestWebUrl = ""
|
|
[string] $CompletionBypassReason = ""
|
|
}
|
|
|
|
[string] $date = Get-Date -Format "yyyy-MM-dd HHmm"
|
|
$fileName = ".\$date pull requests.csv"
|
|
|
|
Write-Host "========================================================================================================================================================================"
|
|
Write-Host "Creating pull request overview."
|
|
Write-Host "========================================================================================================================================================================"
|
|
|
|
$repos = az repos list --organization "https://dev.azure.com/effectory/" --project "survey software" | ConvertFrom-Json | Select-Object | Where-Object { $true -ne $_.isDisabled }
|
|
|
|
foreach ($repo in $repos)
|
|
{
|
|
$prs = az repos pr list --project "survey software" --repository "$($repo.name)" --organization "https://dev.azure.com/effectory/" --status all | ConvertFrom-Json | Select-Object
|
|
|
|
[PullRequest[]]$Result = @()
|
|
|
|
foreach ($pr in $prs)
|
|
{
|
|
[PullRequest] $pullRequest = [PullRequest]::new()
|
|
$pullRequest.RepositoryId = $repo.id
|
|
$pullRequest.RepositoryName = $repo.name
|
|
$pullRequest.DefaultBranch = $repo.defaultBranch
|
|
$pullRequest.RepositoryWebUrl = $repo.webUrl
|
|
$pullRequest.PullRequestId = $pr.pullRequestId
|
|
$pullRequest.PullRequestDate = $pr.creationDate
|
|
$pullRequest.PullRequestName = $pr.title
|
|
$pullRequest.PullRequestCreatedBy = $pr.createdBy.displayName
|
|
$pullRequest.PullRequestReviewers = $pr.reviewers | join-string -property displayName -Separator ','
|
|
$pullRequest.PullRequestStatus = $pr.status
|
|
$pullRequest.PullRequestWebUrl = "$($repo.webUrl)/pullrequest/$($pr.pullRequestId)"
|
|
$pullRequest.CompletionBypassReason = $pr.completionOptions.bypassReason
|
|
$Result += $pullRequest
|
|
}
|
|
|
|
$Result | Export-Csv -Path $fileName -Append -NoTypeInformation
|
|
}
|
|
|
|
|
|
|
|
Write-Host "========================================================================================================================================================================"
|
|
Write-Host "Done." |