azure-sdk-for-cpp/eng/scripts/docs/Docs-Onboarding.ps1
Daniel Jurek 20ee0acdf5
learn.microsoft.com docs onboarding engsys (#6818)
* Add metadata fetching

* Update docindex.yml to use new params and variables

* Add onboarding logic and update .gitignore to allow eng/scripts/docs edits

* Test: point to different branch

* Skip onboarding legacy moniker

* Add docs to release process

* REVERT: Test eng/common changes to Update-DocsMsPackages.ps1

* Remove nightly branch work, those require hosted docs

* Make CHANGELOG.md comply with rules

* Fix relevant spelling issues

* TEST: Add GitHub token

* Branch

* push branch

* Set DefinitionId

* Test branch

* Token

* Remove unnecessary condition

* Commitish

* Specify monikers

* Revert test-related changes
2025-12-02 13:26:51 -08:00

61 lines
1.8 KiB
PowerShell

. "$PSScriptRoot/Docs-ToC.ps1"
# $SetDocsPackageOnboarding = "Set-${Language}-DocsPackageOnboarding"
function Set-cpp-DocsPackageOnboarding($moniker, $metadata, $docRepoLocation, $packageSourceOverride) {
$onboardingFile = GetOnboardingFile `
-docRepoLocation $docRepoLocation `
-moniker $moniker
$onboardingSpec = Get-Content $onboardingFile -Raw | ConvertFrom-Json -AsHashtable
$packagesToOnboard = @()
foreach ($package in $metadata) {
$packageSpec = [ordered]@{
name = $package.Name
tool = 'cpp-doxygen-1.9.1'
url = "https://azuresdkdocs.z19.web.core.windows.net/cpp/$($package.Name)/$($package.Version)/annotated.html"
}
$packagesToOnboard += $packageSpec
}
$onboardingSpec['packages'] = $packagesToOnboard
Set-Content `
-Path $onboardingFile `
-Value ($onboardingSpec | ConvertTo-Json -Depth 100)
}
# $GetDocsPackagesAlreadyOnboarded = "Get-${Language}-DocsPackagesAlreadyOnboarded"
function Get-cpp-DocsPackagesAlreadyOnboarded($docRepoLocation, $moniker) {
$packageOnboardingFile = GetOnboardingFile `
-docRepoLocation $DocRepoLocation `
-moniker $moniker
$onboardedPackages = @{}
$onboardingSpec = ConvertFrom-Json (Get-Content $packageOnboardingFile -Raw)
foreach ($spec in $onboardingSpec.packages) {
$packageInfo = GetPackageInfoFromDocsMsConfig $spec
$onboardedPackages[$packageInfo.Name] = $packageInfo
}
return $onboardedPackages
}
function GetPackageInfoFromDocsMsConfig($spec) {
if (!$spec) {
throw "Spec must not be empty"
}
# "https://azuresdkdocs.z19.web.core.windows.net/cpp/azure-security-attestation/1.1.0/annotated.html" => 1.1.0
$version = $spec.url.Split('/')[-2]
if (!$version) {
throw "Could not determine version from URL: $($spec.url)"
}
return @{
Name = $spec.name
Version = $version
}
}