Sync eng/common directory with azure-sdk-tools repository (#50)
This commit is contained in:
Родитель
55fdc3572a
Коммит
9658c46310
|
@ -18,91 +18,53 @@ A personal access token
|
|||
#>
|
||||
[CmdletBinding(SupportsShouldProcess = $true)]
|
||||
param(
|
||||
[Parameter(Mandatory = $true)]
|
||||
$RepoOwner,
|
||||
[Parameter(Mandatory = $true)]
|
||||
$RepoOwner,
|
||||
|
||||
[Parameter(Mandatory = $true)]
|
||||
$RepoName,
|
||||
[Parameter(Mandatory = $true)]
|
||||
$RepoName,
|
||||
|
||||
[Parameter(Mandatory = $true)]
|
||||
$BaseBranch,
|
||||
[Parameter(Mandatory = $true)]
|
||||
$BaseBranch,
|
||||
|
||||
[Parameter(Mandatory = $true)]
|
||||
$PROwner,
|
||||
[Parameter(Mandatory = $true)]
|
||||
$PROwner,
|
||||
|
||||
[Parameter(Mandatory = $true)]
|
||||
$PRBranch,
|
||||
[Parameter(Mandatory = $true)]
|
||||
$PRBranch,
|
||||
|
||||
[Parameter(Mandatory = $true)]
|
||||
$AuthToken,
|
||||
[Parameter(Mandatory = $true)]
|
||||
$AuthToken,
|
||||
|
||||
[Parameter(Mandatory = $true)]
|
||||
$PRTitle,
|
||||
$PRBody = $PRTitle
|
||||
[Parameter(Mandatory = $true)]
|
||||
$PRTitle,
|
||||
$PRBody = $PRTitle
|
||||
)
|
||||
|
||||
$ErrorActionPreference = 'stop'
|
||||
Set-StrictMode -Version 1
|
||||
[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12
|
||||
$query = "state=open&head=${PROwner}:${PRBranch}&base=${BaseBranch}"
|
||||
|
||||
$headers = @{
|
||||
Authorization = "bearer $AuthToken"
|
||||
}
|
||||
|
||||
$query = 'query ($repoOwner: String!, $repoName: String!, $baseRefName: String!) {
|
||||
repository(owner: $repoOwner, name: $repoName) {
|
||||
pullRequests(baseRefName: $baseRefName, states: OPEN, first: 100) {
|
||||
totalCount
|
||||
nodes {
|
||||
number
|
||||
headRef {
|
||||
name
|
||||
repository {
|
||||
name
|
||||
owner {
|
||||
login
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}'
|
||||
|
||||
|
||||
$data = @{
|
||||
query = $query
|
||||
variables = @{
|
||||
repoOwner = $RepoOwner
|
||||
repoName = $RepoName
|
||||
baseRefName = $BaseBranch
|
||||
}
|
||||
}
|
||||
|
||||
$resp = Invoke-RestMethod -Method Post -Headers $headers `
|
||||
https://api.github.com/graphql `
|
||||
-Body ($data | ConvertTo-Json)
|
||||
$resp = Invoke-RestMethod "https://api.github.com/repos/$RepoOwner/$RepoName/pulls?$query"
|
||||
$resp | Write-Verbose
|
||||
|
||||
$matchingPr = $resp.data.repository.pullRequests.nodes `
|
||||
| ? { $_.headRef.name -eq $PRBranch -and $_.headRef.repository.owner.login -eq $PROwner } `
|
||||
| select -First 1
|
||||
|
||||
if ($matchingPr) {
|
||||
Write-Host -f green "Pull request already exists https://github.com/$RepoOwner/$RepoName/pull/$($matchingPr.number)"
|
||||
if ($resp.Count -gt 0) {
|
||||
Write-Host -f green "Pull request already exists $($resp[0].html_url)"
|
||||
}
|
||||
else {
|
||||
$data = @{
|
||||
title = $PRTitle
|
||||
head = "${PROwner}:${PRBranch}"
|
||||
base = $BaseBranch
|
||||
body = $PRBody
|
||||
maintainer_can_modify = $true
|
||||
}
|
||||
$headers = @{
|
||||
Authorization = "bearer $AuthToken"
|
||||
}
|
||||
|
||||
$resp = Invoke-RestMethod -Method POST -Headers $headers `
|
||||
https://api.github.com/repos/$RepoOwner/$RepoName/pulls `
|
||||
-Body ($data | ConvertTo-Json)
|
||||
$resp | Write-Verbose
|
||||
Write-Host -f green "Pull request created https://github.com/$RepoOwner/$RepoName/pull/$($resp.number)"
|
||||
$data = @{
|
||||
title = $PRTitle
|
||||
head = "${PROwner}:${PRBranch}"
|
||||
base = $BaseBranch
|
||||
body = $PRBody
|
||||
maintainer_can_modify = $true
|
||||
}
|
||||
|
||||
$resp = Invoke-RestMethod -Method POST -Headers $headers `
|
||||
https://api.github.com/repos/$RepoOwner/$RepoName/pulls `
|
||||
-Body ($data | ConvertTo-Json)
|
||||
$resp | Write-Verbose
|
||||
Write-Host -f green "Pull request created https://github.com/$RepoOwner/$RepoName/pull/$($resp.number)"
|
||||
}
|
||||
|
|
Загрузка…
Ссылка в новой задаче