@redpanda-data/docs-extensions-and-macros
Version:
Antora extensions and macros developed for Redpanda documentation.
54 lines (45 loc) • 1.67 kB
JavaScript
const yaml = require('js-yaml');
const fs = require('fs');
const path = require('path');
const GetLatestConsoleVersion = require('../extensions/version-fetcher/get-latest-console-version.js');
const { getPrereleaseFromAntora } = require('../cli-utils/beta-from-antora.js');
/**
* Fetches and prints the latest Console version and Docker repo.
* @param {Object} options
* @param {boolean} options.beta - Return beta version if available
* @param {boolean} options.fromAntora - Derive beta flag from antora.yml
*/
module.exports = async function getConsoleVersion({ beta = false, fromAntora = false }) {
const owner = 'redpanda-data';
const repo = 'console';
const CONSOLE_DOCKER_REPO = repo;
// Determine whether to use beta based on antora.yml or flag
let useBeta = beta;
if (fromAntora) {
useBeta = getPrereleaseFromAntora();
}
// Initialize GitHub client
const { Octokit } = await import('@octokit/rest');
const octokit = process.env.REDPANDA_GITHUB_TOKEN
? new Octokit({ auth: process.env.REDPANDA_GITHUB_TOKEN })
: new Octokit();
// Fetch latest release info
let data;
try {
data = await GetLatestConsoleVersion(octokit, owner, repo);
} catch (err) {
console.error('Failed to fetch Console version:', err.message);
process.exit(1);
}
if (!data) {
console.error('No version data returned for Console');
process.exit(1);
}
// Select the version
const version = useBeta
? (data.latestBetaRelease || data.latestStableRelease)
: data.latestStableRelease;
console.log(`CONSOLE_VERSION=${version}`);
console.log(`CONSOLE_DOCKER_REPO=${CONSOLE_DOCKER_REPO}`);
};