Files
Cloud-20Engineering/Powershell/Lists/DevOps/PullRequests.ps1
Jurjen Ladenius b92ce8b218 Merged PR 52474: Created devops pull request list and SBOM based on SNYK dependencies download...
Created devops pull request list and SBOM based on SNYK dependencies downloads #86990

Related work items: #86990
2024-08-07 14:06:35 +00:00

56 lines
2.4 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] $date = Get-Date -Format "yyyy-MM-dd HHmm"
$fileName = ".\$date pull requests.csv"
Write-Host "========================================================================================================================================================================"
Write-Host "Creating repository 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)"
$Result += $pullRequest
}
$Result | Export-Csv -Path $fileName -Append -NoTypeInformation
}
Write-Host "========================================================================================================================================================================"
Write-Host "Done."