utilities/pipelines/sharedScripts/teamLinter/Close-ResolvedGithubIssue.ps1 (26 lines of code) (raw):
function Close-ResolvedGithubIssue {
[CmdletBinding()]
[OutputType([System.String])]
param (
[Parameter(Mandatory)]
[string]$title
)
$issueList = gh issue list --limit 500 --json number,title,assignees,labels,id | ConvertFrom-Json
$issueDetails = $null
foreach ($issueItem in $issueList) {
if ($issueItem.title -eq $title) {
$issueDetails = "$($issueItem.number) | $($issueItem.title) | $($issueItem.assignees.login)"
$issueTitle = $($issueItem.title)
$issueNumber = $($issueItem.number)
Write-Output "Good News! Issue Found:: $($issueDetails).. Will proceed to close the issue"
if ($null -ne $issueDetails) {
gh issue close $issueNumber
Write-Output "Issue Closed: $($issueTitle)"
}
return $issueDetails
}
}
# If no match is found in the loop, return an empty string
Write-Output "No match found for: $($title)"
return $issueDetails
}