// utils/jiraBrowseUrl.js // // Build user-facing Jira browse URLs for Webex markdown links. // API calls may use JIRA_CLOUD_ID; browse links always need JIRA_BASE_URL. const ISSUE_KEY_RE = /^[A-Z][A-Z0-9]+-\d+$/; /** * @param {string} issueKey * @returns {string|null} */ export function getJiraBrowseUrl(issueKey) { const key = String(issueKey || '').trim(); if (!key || !ISSUE_KEY_RE.test(key)) return null; const base = process.env.JIRA_BASE_URL?.replace(/\/$/, ''); if (!base) return null; return `${base}/browse/${key}`; } /** * @param {string} issueKey * @returns {string} */ export function formatJiraIssueMarkdownLink(issueKey) { const key = String(issueKey || '').trim(); if (!key) return '—'; const url = getJiraBrowseUrl(key); if (url) return `[${key}](${url})`; return `\`${key}\``; }