Public/Get-TaxEditorImage.ps1
|
# Copyright (c) 2026 Jeffrey Snover. All rights reserved. # Licensed under the MIT License. See LICENSE file in the project root. function Get-TaxEditorImage { <# .SYNOPSIS Lists GHCR image versions for the taxonomy editor. .DESCRIPTION Queries the GitHub Packages API for container image versions of the taxonomy editor. Returns typed GhcrImage objects with tags, digest, creation date, and known-good status. Requires GITHUB_TOKEN environment variable with read:packages scope. .PARAMETER Last Number of image versions to return (1-100). Default: 10. .PARAMETER Package GitHub package in owner/name format. Default: jpsnover/taxonomy-editor. .EXAMPLE Get-TaxEditorImage .EXAMPLE Get-TaxEditorImage -Last 5 | Where-Object IsKnownGood .LINK Show-AITriadHelp .LINK Deploy-TaxEditorImage .LINK Deploy-TaxEditorInfra .LINK Get-TaxEditorRevision .LINK Switch-TaxEditorRevision .LINK Test-TaxEditorInfra .LINK Invoke-TaxEditorSmokeTest #> [CmdletBinding()] param( [Parameter(Position = 0)] [ValidateRange(1, 100)] [int]$Last = 10, [Parameter()] [string]$Package = 'jpsnover/taxonomy-editor' ) Set-StrictMode -Version Latest $Parts = $Package -split '/', 2 $Owner = $Parts[0] $PkgName = $Parts[1] $Versions = Invoke-GitHubApi ` -Endpoint "/users/$Owner/packages/container/$PkgName/versions?per_page=$Last&state=active" ` -CallerName 'Get-TaxEditorImage' foreach ($V in $Versions) { $Tags = @() if ($V.PSObject.Properties['metadata'] -and $V.metadata.PSObject.Properties['container'] -and $V.metadata.container.PSObject.Properties['tags']) { $Tags = @($V.metadata.container.tags) } $Obj = [GhcrImage]::new() $Obj.Tags = $Tags $Obj.Digest = $V.name $Obj.CreatedAt = $V.created_at $Obj.IsKnownGood = 'known-good' -in $Tags $Obj } } |