diff --git a/eng/common/scripts/update-docs-metadata.ps1 b/eng/common/scripts/update-docs-metadata.ps1 deleted file mode 100644 index 8c1ef52868d25..0000000000000 --- a/eng/common/scripts/update-docs-metadata.ps1 +++ /dev/null @@ -1,143 +0,0 @@ -# Note, due to how `Expand-Archive` is leveraged in this script, -# powershell core is a requirement for successful execution. -param ( - # arguments leveraged to parse and identify artifacts - [Parameter(Mandatory = $true)] - $ArtifactLocation, # the root of the artifact folder. DevOps $(System.ArtifactsDirectory) - [Parameter(Mandatory = $true)] - $WorkDirectory, # a clean folder that we can work in - [Parameter(Mandatory = $true)] - $ReleaseSHA, # the SHA for the artifacts. DevOps: $(Release.Artifacts..SourceVersion) or $(Build.SourceVersion) - [Parameter(Mandatory = $true)] - $RepoId, # full repo id. EG azure/azure-sdk-for-net DevOps: $(Build.Repository.Id). Used as a part of VerifyPackages - [Parameter(Mandatory = $true)] - $Repository, # EG: "Maven", "PyPI", "NPM" - - # arguments necessary to power the docs release - [Parameter(Mandatory = $true)] - $DocRepoLocation, # the location on disk where we have cloned the documentation repository - [Parameter(Mandatory = $true)] - $Language, # EG: js, java, dotnet. Used in language for the embedded readme. - [Parameter(Mandatory = $true)] - $Configs # The configuration elements informing important locations within the cloned doc repo -) - -. (Join-Path $PSScriptRoot common.ps1) - -$releaseReplaceRegex = "(https://github.com/$RepoId/(?:blob|tree)/)main" - -function GetMetaData { - if (Test-Path Variable:MetadataUri) { - $metadataResponse = Invoke-RestMethod -Uri $MetadataUri -method "GET" -MaximumRetryCount 3 -RetryIntervalSec 10 | ConvertFrom-Csv - } - else { - LogError "The variable '$MetadataUri' was not found." - } - - return $metadataResponse -} - -function GetAdjustedReadmeContent($pkgInfo){ - $date = Get-Date -Format "MM/dd/yyyy" - $service = "" - - # the namespace is not expected to be present for js. - $pkgId = $pkgInfo.PackageId.Replace("@azure/", "") - - try { - $metadata = GetMetaData - - $service = $metadata | ? { $_.Package -eq $pkgId } - - if ($service) { - $service = "$($service.ServiceName)".ToLower().Replace(" ", "") - } - } - catch { - Write-Host $_ - Write-Host "Unable to retrieve service metadata for packageId $($pkgInfo.PackageId)" - } - - $fileContent = $pkgInfo.ReadmeContent - - # only replace the version if the formatted header can be found - $titleRegex = "(\#\s+(?Azure .+? (?:client|plugin|shared) library for (?:JavaScript|Java|Python|\.NET|C)))" - $foundTitle = "" - if ($fileContent -match $titleRegex) { - $fileContent = $fileContent -replace $titleRegex, "`${0} - Version $($pkgInfo.PackageVersion) `n" - $foundTitle = $matches["filetitle"] - } - # Replace github main link with release tag. - $ReplacementPattern = "`${1}$($pkgInfo.Tag)" - $fileContent = $fileContent -replace $releaseReplaceRegex, $ReplacementPattern - - $header = "---`ntitle: $foundTitle`nkeywords: Azure, $Language, SDK, API, $($pkgInfo.PackageId), $service`nauthor: maggiepint`nms.author: magpint`nms.date: $date`nms.topic: reference`nms.prod: azure`nms.technology: azure`nms.devlang: $Language`nms.service: $service`n---`n" - - if ($fileContent) { - return "$header`n$fileContent" - } - else { - return "" - } -} - -$apiUrl = "https://api.github.com/repos/$repoId" -$pkgs = VerifyPackages -artifactLocation $ArtifactLocation ` - -workingDirectory $WorkDirectory ` - -apiUrl $apiUrl ` - -releaseSha $ReleaseSHA ` - -continueOnError $True - -$targets = ($Configs | ConvertFrom-Json).targets - -foreach ($config in $targets) { - if ($config.mode -eq "Preview") { $includePreview = $true } else { $includePreview = $false } - $pkgsFiltered = $pkgs | ? { $_.IsPrerelease -eq $includePreview} - $suffix = "" - if ($config.suffix) { - $suffix = $config.suffix - } - - if ($pkgsFiltered) { - Write-Host "Given the visible artifacts, $($config.mode) Readme updates against $($config.path_to_config) will be processed for the following packages." - Write-Host ($pkgsFiltered | % { $_.PackageId + " " + $_.PackageVersion }) - - foreach ($packageInfo in $pkgsFiltered) { - $readmeName = "$($packageInfo.DocsReadMeName.ToLower())-readme${suffix}.md" - $readmeFolder = Join-Path $DocRepoLocation $config.content_folder - $readmeLocation = Join-Path $readmeFolder $readmeName - - # what happens if this is the first time we've written to this folder? It won't exist. Resolve that. - if(!(Test-Path $readmeFolder)) { - New-Item -ItemType Directory -Force -Path $readmeFolder - } - - if ($packageInfo.ReadmeContent) { - $adjustedContent = GetAdjustedReadmeContent -pkgInfo $packageInfo - } - - if ($adjustedContent) { - try { - Push-Location $DocRepoLocation - Set-Content -Path $readmeLocation -Value $adjustedContent -Force - - Write-Host "Updated readme for $readmeName." - } catch { - Write-Host $_ - } finally { - Pop-Location - } - } else { - Write-Host "Unable to parse a header out of the readmecontent for PackageId $($packageInfo.PackageId)" - } - } - } - else { - Write-Host "No readmes discovered for $($config.mode) doc release under folder $ArtifactLocation." - } - - -} - - -