/** * 发布上传的 OSS 命令行整理:把 ossutil 参数与凭据整理成可执行或可打印的形式, * 便于在 dry-run 下核对将要执行的上传,同时保证任何输出都不回显凭据明文。 */ const redactedCredential = ''; export function readReleaseDryRun(env = process.env) { const value = env.AGC_RELEASE_DRY_RUN?.trim().toLowerCase(); return value === '1' || value === 'true'; } function quoteArgument(value) { return /[\s"']/u.test(value) ? JSON.stringify(value) : value; } export function formatOssutilCommand({ binary, args, endpoint, credentials }) { const parts = [binary, ...args, '--endpoint', endpoint]; if (credentials) { parts.push( '--access-key-id', redactedCredential, '--access-key-secret', redactedCredential, ); } return parts.map(quoteArgument).join(' '); }