collabSupport/utils/jiraBrowseUrl.js
jmcqueen 9282e9cd0d Link Jira poller summary tickets to browse URLs in Webex.
Wrap enriched and skipped ticket keys in markdown links using JIRA_BASE_URL so keys are clickable in the hourly poller room summary.

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-10 15:17:18 -04:00

34 lines
833 B
JavaScript

// 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}\``;
}