static async enhanceJobWithIssueDetails()

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,
    };
  }