@oss-autopilot/core - v1.6.3
    Preparing search index...

    Class IssueDiscovery

    Multi-phase issue discovery engine that searches GitHub for contributable issues.

    Search phases (in priority order): 0. Repos where user has merged PRs (highest merge probability) 0.5. Preferred organizations

    1. Starred repos
    2. General label-filtered search
    3. Actively maintained repos

    Each candidate is vetted for claimability and scored 0-100 for viability.

    Index

    Constructors

    Properties

    rateLimitWarning: string | null = null

    Set after searchIssues() runs if rate limits affected the search (low pre-flight quota or mid-search rate limit hits).

    Methods

    • Fetch the authenticated user's starred repositories from GitHub. Updates the state manager with the list and timestamp.

      Returns Promise<string[]>

      Array of starred repo names in "owner/repo" format

    • Get starred repos, fetching from GitHub if cache is stale.

      Returns Promise<string[]>

      Array of starred repo names in "owner/repo" format

    • Save search results to ~/.oss-autopilot/found-issues.md. Results are sorted by viability score (highest first).

      Parameters

      Returns string

      Absolute path to the written file

    • Search for issues matching our criteria. Searches in priority order: merged-PR repos first (no label filter), then preferred organizations, then starred repos, then general search, then actively maintained repos. Filters out issues from low-scoring and excluded repos.

      Parameters

      • options: { labels?: string[]; languages?: string[]; maxResults?: number } = {}

        Search configuration

        • Optionallabels?: string[]

          Issue labels to search for

        • Optionallanguages?: string[]

          Programming languages to filter by

        • OptionalmaxResults?: number

          Maximum candidates to return (default: 10)

      Returns Promise<IssueCandidate[]>

      Scored and sorted issue candidates

      If no candidates found and no rate limits prevented the search

      import { IssueDiscovery, requireGitHubToken } from '@oss-autopilot/core';

      const discovery = new IssueDiscovery(requireGitHubToken());
      const candidates = await discovery.searchIssues({ maxResults: 5 });
      for (const c of candidates) {
      console.log(`${c.issue.repo}#${c.issue.number}: ${c.viabilityScore}/100`);
      }
    • Vet a specific issue for claimability and project health.

      Parameters

      • issueUrl: string

        Full GitHub issue URL

      Returns Promise<IssueCandidate>

      The vetted issue candidate with recommendation and scores

      If the URL is invalid or the issue cannot be fetched