Sync eng/common directory with azure-sdk-tools for PR 8324 (#5671)

* Reuse same branch name for previews of a PR

* Default AddBuildSummary parameter using pipeline variable existence

---------

Co-authored-by: Patrick Hallisey <pahallis@microsoft.com>
This commit is contained in:
Azure SDK Bot 2024-05-30 10:39:42 -07:00 committed by GitHub
parent f1d95520d1
commit cee9b6ab5e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -71,7 +71,9 @@ param(
[boolean]$CloseAfterOpenForTesting=$false,
[boolean]$OpenAsDraft=$false
[boolean]$OpenAsDraft=$false,
[boolean]$AddBuildSummary=($null -ne $env:SYSTEM_TEAMPROJECTID)
)
. (Join-Path $PSScriptRoot common.ps1)
@ -88,9 +90,20 @@ catch {
$resp | Write-Verbose
if ($resp.Count -gt 0) {
LogDebug "Pull request already exists $($resp[0].html_url)"
$existingPr = $resp[0]
$existingUrl = $existingPr.html_url
$existingNumber = $existingPr.number
$existingTitle = $existingPr.title
LogDebug "Pull request already exists $existingUrl"
# setting variable to reference the pull request by number
Write-Host "##vso[task.setvariable variable=Submitted.PullRequest.Number]$($resp[0].number)"
Write-Host "##vso[task.setvariable variable=Submitted.PullRequest.Number]$existingNumber"
if ($AddBuildSummary) {
$summaryPath = New-TemporaryFile
$summaryMarkdown = "**PR:** [Azure/$RepoName#$existingNumber]($existingUrl)"
$summaryMarkdown += "`n**Title:** $existingTitle"
$summaryMarkdown | Out-File $summaryPath
Write-Host "##vso[task.addattachment type=Distributedtask.Core.Summary;name=Existing Pull Request;]$summaryPath"
}
}
else {
try {
@ -106,12 +119,14 @@ else {
-AuthToken $AuthToken
$resp | Write-Verbose
LogDebug "Pull request created https://github.com/$RepoOwner/$RepoName/pull/$($resp.number)"
$prNumber = $resp.number
$prUrl = $resp.html_url
LogDebug "Pull request created $prUrl"
$prOwnerUser = $resp.user.login
# setting variable to reference the pull request by number
Write-Host "##vso[task.setvariable variable=Submitted.PullRequest.Number]$($resp.number)"
Write-Host "##vso[task.setvariable variable=Submitted.PullRequest.Number]$prNumber"
# ensure that the user that was used to create the PR is not attempted to add as a reviewer
# we cast to an array to ensure that length-1 arrays actually stay as array values
@ -119,20 +134,28 @@ else {
$cleanedTeamReviewers = @(SplitParameterArray -members $TeamReviewers) | ? { $_ -ne $prOwnerUser -and $null -ne $_ }
if ($cleanedUsers -or $cleanedTeamReviewers) {
Add-GitHubPullRequestReviewers -RepoOwner $RepoOwner -RepoName $RepoName -PrNumber $resp.number `
Add-GitHubPullRequestReviewers -RepoOwner $RepoOwner -RepoName $RepoName -PrNumber $prNumber `
-Users $cleanedUsers -Teams $cleanedTeamReviewers -AuthToken $AuthToken
}
if ($CloseAfterOpenForTesting) {
$prState = "closed"
LogDebug "Updating https://github.com/$RepoOwner/$RepoName/pull/$($resp.number) state to closed because this was only testing."
LogDebug "Updating $prUrl state to closed because this was only testing."
}
else {
$prState = "open"
}
Update-GitHubIssue -RepoOwner $RepoOwner -RepoName $RepoName -IssueNumber $resp.number `
Update-GitHubIssue -RepoOwner $RepoOwner -RepoName $RepoName -IssueNumber $prNumber `
-State $prState -Labels $PRLabels -Assignees $Assignees -AuthToken $AuthToken
if ($AddBuildSummary) {
$summaryPath = New-TemporaryFile
$summaryMarkdown = "**PR:** [Azure/$RepoName#$prNumber]($prUrl)"
$summaryMarkdown += "`n**Title:** $PRTitle"
$summaryMarkdown | Out-File $summaryPath
Write-Host "##vso[task.addattachment type=Distributedtask.Core.Summary;name=Pull Request Created;]$summaryPath"
}
}
catch {
LogError "Call to GitHub API failed with exception:`n$_"