Sync eng/common directory with azure-sdk-tools for PR 11974 (#6723)

* Add a script to update pull request URL in release plan from SDK generation pipeline
This commit is contained in:
Azure SDK Bot 2025-09-05 18:38:51 -07:00 committed by GitHub
parent 2d969df700
commit f550fd038e
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 74 additions and 0 deletions

View File

@ -1074,3 +1074,40 @@ function Update-ReleaseStatusInReleasePlan($releasePlanWorkItemId, $status, $ver
$workItem = UpdateWorkItem -id $releasePlanWorkItemId -fields $fields
Write-Host "Updated release status for [$LanguageShort] in Release Plan [$releasePlanWorkItemId]"
}
function Update-PullRequestInReleasePlan($releasePlanWorkItemId, $pullRequestUrl, $status, $languageName)
{
$devopsFieldLanguage = Get-LanguageDevOpsName -LanguageShort $languageName
if (!$devopsFieldLanguage)
{
Write-Host "Unsupported language to update release plan, language [$languageName]"
return $null
}
$fields = @()
$fields += "`"SDKPullRequestFor$($devopsFieldLanguage)=$pullRequestUrl`""
$fields += "`"SDKPullRequestStatusFor$($devopsFieldLanguage)=$status`""
Write-Host "Updating Release Plan [$releasePlanWorkItemId] with Pull Request URL for language [$languageName]."
$workItem = UpdateWorkItem -id $releasePlanWorkItemId -fields $fields
Write-Host "Updated Pull Request URL [$pullRequestUrl] for [$languageName] in Release Plan [$releasePlanWorkItemId]"
}
function Get-ReleasePlan-Link($releasePlanWorkItemId)
{
$fields = @()
$fields += "System.Id"
$fields += "System.Title"
$fields += "Custom.ReleasePlanLink"
$fields += "Custom.ReleasePlanSubmittedby"
$fieldList = ($fields | ForEach-Object { "[$_]"}) -join ", "
$query = "SELECT ${fieldList} FROM WorkItems WHERE [System.Id] = $releasePlanWorkItemId"
$workItem = Invoke-Query $fields $query
if (!$workItem)
{
Write-Host "Release plan with ID $releasePlanWorkItemId not found."
return $null
}
return $workItem["fields"]
}

View File

@ -0,0 +1,37 @@
param(
[Parameter(Mandatory = $true)]
$ReleasePlanWorkItemId,
[Parameter(Mandatory = $true)]
$PullRequestUrl,
[Parameter(Mandatory = $true)]
$Status,
[Parameter(Mandatory = $true)]
$LanguageName
)
<#
.SYNOPSIS
Updates the pull request URL and status in the specified release plan work item for a given programming language.
.PARAMETER ReleasePlanWorkItemId
The ID of the release plan work item to update.
.PARAMETER PullRequestUrl
The URL of the pull request to set in the release plan.
.PARAMETER Status
The status of the pull request.
.PARAMETER LanguageName
The programming language associated with the pull request.
#>
Set-StrictMode -Version 3
. (Join-Path $PSScriptRoot common.ps1)
. (Join-Path $PSScriptRoot Helpers DevOps-WorkItem-Helpers.ps1)
LogDebug "Updating pull request in release plan"
Update-PullRequestInReleasePlan $ReleasePlanWorkItemId $PullRequestUrl $Status $LanguageName
LogDebug "Updated pull request in release plan"