71
71
72
72
[boolean ]$CloseAfterOpenForTesting = $false ,
73
73
74
- [boolean ]$OpenAsDraft = $false
74
+ [boolean ]$OpenAsDraft = $false ,
75
+
76
+ [boolean ]$AddBuildSummary = ($null -ne $env: SYSTEM_TEAMPROJECTID )
75
77
)
76
78
77
79
. (Join-Path $PSScriptRoot common.ps1)
@@ -88,9 +90,20 @@ catch {
88
90
$resp | Write-Verbose
89
91
90
92
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 "
92
98
# 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
+ }
94
107
}
95
108
else {
96
109
try {
@@ -106,33 +119,43 @@ else {
106
119
- AuthToken $AuthToken
107
120
108
121
$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 "
110
125
111
126
$prOwnerUser = $resp.user.login
112
127
113
128
# 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 "
115
130
116
131
# ensure that the user that was used to create the PR is not attempted to add as a reviewer
117
132
# we cast to an array to ensure that length-1 arrays actually stay as array values
118
133
$cleanedUsers = @ (SplitParameterArray - members $UserReviewers ) | ? { $_ -ne $prOwnerUser -and $null -ne $_ }
119
134
$cleanedTeamReviewers = @ (SplitParameterArray - members $TeamReviewers ) | ? { $_ -ne $prOwnerUser -and $null -ne $_ }
120
135
121
136
if ($cleanedUsers -or $cleanedTeamReviewers ) {
122
- Add-GitHubPullRequestReviewers - RepoOwner $RepoOwner - RepoName $RepoName - PrNumber $resp .number `
137
+ Add-GitHubPullRequestReviewers - RepoOwner $RepoOwner - RepoName $RepoName - PrNumber $prNumber `
123
138
- Users $cleanedUsers - Teams $cleanedTeamReviewers - AuthToken $AuthToken
124
139
}
125
140
126
141
if ($CloseAfterOpenForTesting ) {
127
142
$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."
129
144
}
130
145
else {
131
146
$prState = " open"
132
147
}
133
148
134
- Update-GitHubIssue - RepoOwner $RepoOwner - RepoName $RepoName - IssueNumber $resp .number `
149
+ Update-GitHubIssue - RepoOwner $RepoOwner - RepoName $RepoName - IssueNumber $prNumber `
135
150
- 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
+ }
136
159
}
137
160
catch {
138
161
LogError " Call to GitHub API failed with exception:`n $_ "
0 commit comments