in app/lib/issueEnhancer.ts [21:79]
static async enhanceJobWithIssueDetails(
originalDescription: string,
selectedRepo: string,
originalTitle?: string
): Promise<EnhancedJob> {
// Parse issue mentions from the description
const mentions = parseIssueMentions(originalDescription);
if (mentions.length === 0) {
// No issues mentioned, return as-is
return {
title: originalTitle || originalDescription.substring(0, 50),
description: originalDescription,
referencedIssues: [],
};
}
// Fetch all mentioned issues
const repoUrl = selectedRepo.includes("github.com")
? selectedRepo
: `https://github.com/${selectedRepo}`;
const issuePromises = mentions.map((mention) =>
GitHubService.getIssue(repoUrl, mention.number)
);
const issues = await Promise.all(issuePromises);
const validIssues = issues.filter(
(issue): issue is GitHubIssue => issue !== null
);
// Create enhanced description
let enhancedDescription = originalDescription;
let enhancedTitle = originalTitle;
// If we have valid issues, enhance the description
if (validIssues.length > 0) {
// Build the enhanced description with issue details
enhancedDescription = this.buildEnhancedDescription(
originalDescription,
validIssues,
mentions
);
// If no custom title provided, generate one based on issues
if (!enhancedTitle) {
enhancedTitle = this.generateTitleFromIssues(
originalDescription,
validIssues
);
}
}
return {
title: enhancedTitle || originalDescription.substring(0, 50),
description: enhancedDescription,
referencedIssues: validIssues,
};
}