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
9092if ($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}
95108else {
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