<# .SYNOPSIS Prueft welche Unterseiten unter der Analyse-Stammseite existieren #> $ConfluenceUrl = "https://arija-confluence.jaas.service.deutschebahn.com" $SpaceKey = "BES" $ParentPageId = "581013135" $ApiBase = "$ConfluenceUrl/rest/api" $ScriptDir = Split-Path -Parent $MyInvocation.MyCommand.Path [Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls12 # Token aus .secrets laden $SecretsPath = Join-Path $ScriptDir "..\.secrets" $PAT = $null if (Test-Path $SecretsPath) { Get-Content $SecretsPath | ForEach-Object { if ($_ -match "^CONFLUENCE_TOKEN=(.+)$") { $val = $Matches[1].Trim() if ($val -ne "HIER_TOKEN_EINTRAGEN") { $PAT = $val } } } } if (-not $PAT) { $PAT = Read-Host "Confluence PAT" } $Headers = @{ "Authorization" = "Bearer $PAT"; "Content-Type" = "application/json" } Write-Host "=== Confluence Seiten-Check ===" -ForegroundColor Cyan Write-Host "Parent: $ParentPageId" Write-Host "" # Alle Unterseiten laden $Uri = "$ApiBase/content/$ParentPageId/child/page?limit=50&expand=version" try { $Resp = Invoke-WebRequest -Uri $Uri -Headers $Headers -UseBasicParsing -ErrorAction Stop $Data = $Resp.Content | ConvertFrom-Json Write-Host "Gefundene Unterseiten: $($Data.results.Count)" -ForegroundColor Green Write-Host "" Write-Host ("{0,-5} {1,-55} {2,-10} {3}" -f "Ver", "Titel", "ID", "Status") Write-Host ("-" * 90) $Data.results | Sort-Object { $_.title } | ForEach-Object { $ver = $_.version.number $title = $_.title $id = $_.id Write-Host ("{0,-5} {1,-55} {2,-10}" -f "v$ver", $title, $id) } } catch { Write-Host "FEHLER: $($_.Exception.Message)" -ForegroundColor Red } Write-Host "" Write-Host "=== Titel-Suche fuer Seiten 1-5 ===" -ForegroundColor Cyan $Titles = @( "1. Uebersicht und Gesamtbild", "2. Identifizierte Problemfelder", "3. Technische Roadmap 2026 - Zusammenfassung", "4. GitLab Projektlandschaft", "5. Abkuerzungsverzeichnis" ) foreach ($t in $Titles) { $SearchUri = "$ApiBase/content?spaceKey=$SpaceKey&title=$([Uri]::EscapeDataString($t))&type=page" try { $SearchResp = Invoke-WebRequest -Uri $SearchUri -Headers $Headers -UseBasicParsing -ErrorAction Stop $SearchData = $SearchResp.Content | ConvertFrom-Json if ($SearchData.results -and $SearchData.results.Count -gt 0) { Write-Host " GEFUNDEN: $t (ID: $($SearchData.results[0].id))" -ForegroundColor Green } else { Write-Host " NICHT GEFUNDEN: $t" -ForegroundColor Red } } catch { Write-Host " FEHLER bei: $t - $($_.Exception.Message)" -ForegroundColor Red } }