mirror of
				https://github.com/actions/node-versions.git
				synced 2025-10-26 07:16:42 +08:00 
			
		
		
		
	
		
			
				
	
	
		
			107 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			PowerShell
		
	
	
	
	
	
			
		
		
	
	
			107 lines
		
	
	
		
			3.6 KiB
		
	
	
	
		
			PowerShell
		
	
	
	
	
	
| <#
 | |
| .SYNOPSIS
 | |
| Create commit with all unstaged changes in repository and create pull-request
 | |
| 
 | |
| .PARAMETER RepositoryOwner
 | |
| Required parameter. The organization which tool repository belongs
 | |
| .PARAMETER RepositoryName
 | |
| Optional parameter. The name of tool repository
 | |
| .PARAMETER AccessToken
 | |
| Required parameter. PAT Token to authorize
 | |
| .PARAMETER BranchName
 | |
| Required parameter. The name of branch where changes will be pushed
 | |
| .PARAMETER CommitMessage
 | |
| Required parameter. The commit message to push changes
 | |
| .PARAMETER PullRequestTitle
 | |
| Required parameter. The title of pull-request
 | |
| .PARAMETER PullRequestBody
 | |
| Required parameter. The description of pull-request
 | |
| #>
 | |
| param (
 | |
|     [Parameter(Mandatory)] [string] $RepositoryOwner,
 | |
|     [Parameter(Mandatory)] [string] $RepositoryName,
 | |
|     [Parameter(Mandatory)] [string] $AccessToken,
 | |
|     [Parameter(Mandatory)] [string] $BranchName,
 | |
|     [Parameter(Mandatory)] [string] $CommitMessage,
 | |
|     [Parameter(Mandatory)] [string] $PullRequestTitle,
 | |
|     [Parameter(Mandatory)] [string] $PullRequestBody
 | |
| )
 | |
| 
 | |
| Import-Module (Join-Path $PSScriptRoot "github-api.psm1")
 | |
| Import-Module (Join-Path $PSScriptRoot "git.psm1")
 | |
| 
 | |
| function Update-PullRequest {
 | |
|     Param (
 | |
|         [Parameter(Mandatory=$true)]
 | |
|         [object] $GitHubApi,
 | |
|         [Parameter(Mandatory=$true)]
 | |
|         [string] $Title,
 | |
|         [Parameter(Mandatory=$true)]
 | |
|         [string] $Body,
 | |
|         [Parameter(Mandatory=$true)]
 | |
|         [string] $BranchName,
 | |
|         [Parameter(Mandatory=$true)]
 | |
|         [object] $PullRequest
 | |
|     )
 | |
| 
 | |
|     $updatedPullRequest = $GitHubApi.UpdatePullRequest($Title, $Body, $BranchName, $PullRequest.number)
 | |
| 
 | |
|     if (($updatedPullRequest -eq $null) -or ($updatedPullRequest.html_url -eq $null)) {
 | |
|         Write-Host "##vso[task.logissue type=error;] Unexpected error occurs while updating pull request."
 | |
|         exit 1
 | |
|     }
 | |
|     Write-host "##[section] Pull request updated: $($updatedPullRequest.html_url)"
 | |
| }
 | |
| 
 | |
| function Create-PullRequest {
 | |
|     Param (
 | |
|         [Parameter(Mandatory=$true)]
 | |
|         [object] $GitHubApi,
 | |
|         [Parameter(Mandatory=$true)]
 | |
|         [string] $Title,
 | |
|         [Parameter(Mandatory=$true)]
 | |
|         [string] $Body,
 | |
|         [Parameter(Mandatory=$true)]
 | |
|         [string] $BranchName
 | |
|     )
 | |
| 
 | |
|     $createdPullRequest = $GitHubApi.CreateNewPullRequest($Title, $Body, $BranchName)
 | |
| 
 | |
|     if (($createdPullRequest -eq $null) -or ($createdPullRequest.html_url -eq $null)) {
 | |
|         Write-Host "##vso[task.logissue type=error;] Unexpected error occurs while creating pull request."
 | |
|         exit 1
 | |
|     }
 | |
| 
 | |
|     Write-host "##[section] Pull request created: $($createdPullRequest.html_url)"
 | |
| }
 | |
| 
 | |
| Write-Host "Configure local git preferences"
 | |
| Git-ConfigureUser -Name "Service account" -Email "no-reply@microsoft.com"
 | |
| 
 | |
| Write-Host "Create branch: $BranchName"
 | |
| Git-CreateBranch -Name $BranchName
 | |
|     
 | |
| Write-Host "Create commit"
 | |
| Git-CommitAllChanges -Message $CommitMessage
 | |
| 
 | |
| Write-Host "Push branch: $BranchName"
 | |
| Git-PushBranch -Name $BranchName -Force $true
 | |
| 
 | |
| $gitHubApi = Get-GitHubApi -AccountName $RepositoryOwner -ProjectName $RepositoryName -AccessToken $AccessToken
 | |
| $pullRequest = $gitHubApi.GetPullRequest($BranchName, $RepositoryOwner)
 | |
| 
 | |
| if ($pullRequest.Count -gt 0) {
 | |
|     Write-Host "Update pull request"
 | |
|     Update-PullRequest -GitHubApi $gitHubApi `
 | |
|                        -Title $PullRequestTitle `
 | |
|                        -Body $PullRequestBody `
 | |
|                        -BranchName $BranchName `
 | |
|                        -PullRequest $pullRequest[0]
 | |
| } else {
 | |
|     Write-Host "Create pull request"
 | |
|     Create-PullRequest -GitHubApi $gitHubApi `
 | |
|                        -Title $PullRequestTitle `
 | |
|                        -Body $PullRequestBody `
 | |
|                        -BranchName $BranchName
 | |
| }
 |