Skip to content

Commit b8c2bb5

Browse files
azure-sdkhallipr
andauthored
Sync eng/common directory with azure-sdk-tools for PR 8324 (#35797)
* Reuse same branch name for previews of a PR * Default AddBuildSummary parameter using pipeline variable existence --------- Co-authored-by: Patrick Hallisey <[email protected]>
1 parent 74509c2 commit b8c2bb5

File tree

1 file changed

+31
-8
lines changed

1 file changed

+31
-8
lines changed

eng/common/scripts/Submit-PullRequest.ps1

Lines changed: 31 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -71,7 +71,9 @@ param(
7171

7272
[boolean]$CloseAfterOpenForTesting=$false,
7373

74-
[boolean]$OpenAsDraft=$false
74+
[boolean]$OpenAsDraft=$false,
75+
76+
[boolean]$AddBuildSummary=($null -ne $env:SYSTEM_TEAMPROJECTID)
7577
)
7678

7779
. (Join-Path $PSScriptRoot common.ps1)
@@ -88,9 +90,20 @@ catch {
8890
$resp | Write-Verbose
8991

9092
if ($resp.Count -gt 0) {
91-
LogDebug "Pull request already exists $($resp[0].html_url)"
93+
$existingPr = $resp[0]
94+
$existingUrl = $existingPr.html_url
95+
$existingNumber = $existingPr.number
96+
$existingTitle = $existingPr.title
97+
LogDebug "Pull request already exists $existingUrl"
9298
# setting variable to reference the pull request by number
93-
Write-Host "##vso[task.setvariable variable=Submitted.PullRequest.Number]$($resp[0].number)"
99+
Write-Host "##vso[task.setvariable variable=Submitted.PullRequest.Number]$existingNumber"
100+
if ($AddBuildSummary) {
101+
$summaryPath = New-TemporaryFile
102+
$summaryMarkdown = "**PR:** [Azure/$RepoName#$existingNumber]($existingUrl)"
103+
$summaryMarkdown += "`n**Title:** $existingTitle"
104+
$summaryMarkdown | Out-File $summaryPath
105+
Write-Host "##vso[task.addattachment type=Distributedtask.Core.Summary;name=Existing Pull Request;]$summaryPath"
106+
}
94107
}
95108
else {
96109
try {
@@ -106,33 +119,43 @@ else {
106119
-AuthToken $AuthToken
107120

108121
$resp | Write-Verbose
109-
LogDebug "Pull request created https://github.com/$RepoOwner/$RepoName/pull/$($resp.number)"
122+
$prNumber = $resp.number
123+
$prUrl = $resp.html_url
124+
LogDebug "Pull request created $prUrl"
110125

111126
$prOwnerUser = $resp.user.login
112127

113128
# setting variable to reference the pull request by number
114-
Write-Host "##vso[task.setvariable variable=Submitted.PullRequest.Number]$($resp.number)"
129+
Write-Host "##vso[task.setvariable variable=Submitted.PullRequest.Number]$prNumber"
115130

116131
# ensure that the user that was used to create the PR is not attempted to add as a reviewer
117132
# we cast to an array to ensure that length-1 arrays actually stay as array values
118133
$cleanedUsers = @(SplitParameterArray -members $UserReviewers) | ? { $_ -ne $prOwnerUser -and $null -ne $_ }
119134
$cleanedTeamReviewers = @(SplitParameterArray -members $TeamReviewers) | ? { $_ -ne $prOwnerUser -and $null -ne $_ }
120135

121136
if ($cleanedUsers -or $cleanedTeamReviewers) {
122-
Add-GitHubPullRequestReviewers -RepoOwner $RepoOwner -RepoName $RepoName -PrNumber $resp.number `
137+
Add-GitHubPullRequestReviewers -RepoOwner $RepoOwner -RepoName $RepoName -PrNumber $prNumber `
123138
-Users $cleanedUsers -Teams $cleanedTeamReviewers -AuthToken $AuthToken
124139
}
125140

126141
if ($CloseAfterOpenForTesting) {
127142
$prState = "closed"
128-
LogDebug "Updating https://github.com/$RepoOwner/$RepoName/pull/$($resp.number) state to closed because this was only testing."
143+
LogDebug "Updating $prUrl state to closed because this was only testing."
129144
}
130145
else {
131146
$prState = "open"
132147
}
133148

134-
Update-GitHubIssue -RepoOwner $RepoOwner -RepoName $RepoName -IssueNumber $resp.number `
149+
Update-GitHubIssue -RepoOwner $RepoOwner -RepoName $RepoName -IssueNumber $prNumber `
135150
-State $prState -Labels $PRLabels -Assignees $Assignees -AuthToken $AuthToken
151+
152+
if ($AddBuildSummary) {
153+
$summaryPath = New-TemporaryFile
154+
$summaryMarkdown = "**PR:** [Azure/$RepoName#$prNumber]($prUrl)"
155+
$summaryMarkdown += "`n**Title:** $PRTitle"
156+
$summaryMarkdown | Out-File $summaryPath
157+
Write-Host "##vso[task.addattachment type=Distributedtask.Core.Summary;name=Pull Request Created;]$summaryPath"
158+
}
136159
}
137160
catch {
138161
LogError "Call to GitHub API failed with exception:`n$_"

0 commit comments

Comments
 (0)