diff --git a/eng/common/scripts/Create-APIReview.ps1 b/eng/common/scripts/Create-APIReview.ps1 index 97f54fe42ff..cdf46718026 100644 --- a/eng/common/scripts/Create-APIReview.ps1 +++ b/eng/common/scripts/Create-APIReview.ps1 @@ -89,7 +89,7 @@ function Upload-SourceArtifact($filePath, $apiLabel, $releaseStatus, $packageVer return $StatusCode } -function Uploaded-ReviewTokenFile($packageName, $apiLabel, $releaseStatus, $reviewFileName, $packageVersion) +function Upload-ReviewTokenFile($packageName, $apiLabel, $releaseStatus, $reviewFileName, $packageVersion) { $params = "buildId=${BuildId}&artifactName=${ArtifactName}&originalFilePath=${packageName}&reviewFilePath=${reviewFileName}" $params += "&label=${apiLabel}&repoName=${RepoName}&packageName=${packageName}&project=internal&packageVersion=${packageVersion}" @@ -121,7 +121,7 @@ function Uploaded-ReviewTokenFile($packageName, $apiLabel, $releaseStatus, $revi return $StatusCode } -function GetAPI-TokenFileName($packageName) +function Get-APITokenFileName($packageName) { $reviewTokenFileName = "${packageName}_${LanguageShort}.json" $tokenFilePath = Join-Path $ArtifactPath $packageName $reviewTokenFileName @@ -142,10 +142,10 @@ function Submit-APIReview($packageInfo, $packagePath) # Get generated review token file if present # APIView processes request using different API if token file is already generated - $reviewTokenFileName = GetAPI-TokenFileName $packageName + $reviewTokenFileName = Get-APITokenFileName $packageName if ($reviewTokenFileName) { Write-Host "Uploading review token file $reviewTokenFileName to APIView." - return Uploaded-ReviewTokenFile $packageName $apiLabel $packageInfo.ReleaseStatus $reviewTokenFileName $packageInfo.Version + return Upload-ReviewTokenFile $packageName $apiLabel $packageInfo.ReleaseStatus $reviewTokenFileName $packageInfo.Version } else { Write-Host "Uploading $packagePath to APIView." diff --git a/eng/common/scripts/Helpers/ApiView-Helpers.ps1 b/eng/common/scripts/Helpers/ApiView-Helpers.ps1 index 6e94752101b..bf8b16a99e0 100644 --- a/eng/common/scripts/Helpers/ApiView-Helpers.ps1 +++ b/eng/common/scripts/Helpers/ApiView-Helpers.ps1 @@ -20,7 +20,7 @@ function MapLanguageName($language) return $lang } -function Check-ApiReviewStatus($packageName, $packageVersion, $language, $url, $apiKey) +function Check-ApiReviewStatus($packageName, $packageVersion, $language, $url, $apiKey, $apiApprovalStatus = $null, $packageNameStatus = $null) { # Get API view URL and API Key to check status Write-Host "Checking API review status" @@ -35,27 +35,35 @@ function Check-ApiReviewStatus($packageName, $packageVersion, $language, $url, $ packageVersion = $packageVersion } + if (!$apiApprovalStatus) { + $apiApprovalStatus = [PSCustomObject]@{ + IsApproved = $false + Details = "" + } + } + + if (!$packageNameStatus) { + $packageNameStatus = [PSCustomObject]@{ + IsApproved = $false + Details = "" + } + } + try { $response = Invoke-WebRequest $url -Method 'GET' -Headers $headers -Body $body - if ($response.StatusCode -eq '200') - { - Write-Host "API Review is approved for package $($packageName)" + Process-ReviewStatusCode -statusCode $response.StatusCode -packageName $packageName -apiApprovalStatus $apiApprovalStatus -packageNameStatus $packageNameStatus + if ($apiApprovalStatus.IsApproved) { + Write-Host $($apiApprovalStatus.Details) } - elseif ($response.StatusCode -eq '202') - { - Write-Host "Package name $($packageName) is not yet approved by an SDK API approver. Package name must be approved to release a beta version if $($packageName) was never released a stable version." - Write-Host "You can check http://aka.ms/azsdk/engsys/apireview/faq for more details on package name Approval." + else { + Write-warning $($apiApprovalStatus.Details) } - elseif ($response.StatusCode -eq '201') - { - Write-Warning "API Review is not approved for package $($packageName). Release pipeline will fail if API review is not approved for a stable version release." - Write-Host "You can check http://aka.ms/azsdk/engsys/apireview/faq for more details on API Approval." + if ($packageNameStatus.IsApproved) { + Write-Host $($packageNameStatus.Details) } - else - { - Write-Warning "API review status check returned unexpected response. $($response)" - Write-Host "You can check http://aka.ms/azsdk/engsys/apireview/faq for more details on API Approval." + else { + Write-warning $($packageNameStatus.Details) } } catch @@ -64,10 +72,10 @@ function Check-ApiReviewStatus($packageName, $packageVersion, $language, $url, $ } } -function Process-ReviewStatusCode($statusCode, $packageName, $apiApprovalStat, $packageNameStat) +function Process-ReviewStatusCode($statusCode, $packageName, $apiApprovalStatus, $packageNameStatus) { $apiApproved = $false - $apiApprovalDetails = "API Review is not approved for package $($packageName). Release pipeline will fail if API review is not approved for a GA version release." + $apiApprovalDetails = "API Review is not approved for package $($packageName). Release pipeline will fail if API review is not approved for a GA version release. You can check http://aka.ms/azsdk/engsys/apireview/faq for more details on API Approval." $packageNameApproved = $false $packageNameApprovalDetails = "" @@ -104,9 +112,9 @@ function Process-ReviewStatusCode($statusCode, $packageName, $apiApprovalStat, $ } } - $apiApprovalStat.IsApproved = $apiApproved - $apiApprovalStat.Details = $apiApprovalDetails + $apiApprovalStatus.IsApproved = $apiApproved + $apiApprovalStatus.Details = $apiApprovalDetails - $packageNameStat.IsApproved = $packageNameApproved - $packageNameStat.Details = $packageNameApprovalDetails + $packageNameStatus.IsApproved = $packageNameApproved + $packageNameStatus.Details = $packageNameApprovalDetails } \ No newline at end of file