packages/utils/blueprint-cli/src/publish/set-catalog-version.ts (55 lines of code) (raw):

import axios from 'axios'; import pino from 'pino'; import { CodeCatalystAuthentication, generateHeaders } from './codecatalyst-authentication'; import { IdentityResponse } from './verify-identity'; /** * Sets this blueprint version as the catalog version */ export async function setCatalogVersion( log: pino.BaseLogger, endpoint: string, options: { blueprint: { space: string; version: string; package: string; }; auth: { authentication: CodeCatalystAuthentication; identity: IdentityResponse | undefined; }; }, ): Promise<void> { const authHeaders = { 'authority': endpoint, 'origin': `https://${endpoint}`, 'accept': 'application/json', 'content-type': 'application/json', ...generateHeaders(options.auth.authentication, options.auth.identity), }; try { const result = await axios.post( `https://${endpoint}/graphql?`, { operationName: 'UpdateBlueprintCatalogVersion', variables: { input: { spaceName: options.blueprint.space, name: options.blueprint.package, catalogVersion: options.blueprint.version, }, }, query: 'mutation UpdateBlueprintCatalogVersion($input: UpdateBlueprintCatalogVersionInput!) {\n updateBlueprintCatalogVersion(input: $input) {\n spaceName\n name\n displayName\n description\n latestVersion {\n blueprintVersionId\n version\n }\n catalogVersion {\n blueprintVersionId\n version\n }\n lastUpdatedTime\n }\n}', }, { headers: authHeaders, }, ); if (result.data.data.updateBlueprintCatalogVersion) { // the version exists log.warn(`Success: [${options.blueprint.package}] [${options.blueprint.version}] is available in space [${options.blueprint.space}] catalog.`); } } catch (error: any) { log.error(error); throw new Error( `Could not set catalog version ['${options.blueprint.package}'] ['${options.blueprint.version}'] in ['${options.blueprint.version}']`, ); } }