Skip to content

feat: core types, API layer and stdin parser #2

@shouze

Description

@shouze

Summary

Core data model, GitHub REST API wrappers, and stdin input parsing.

Tasks

  • src/types.tsSearchResult, ParsedResults, EpicMetadata, EpicConfig, ChecklistItem, DiffResult, DispatchGroup, GitHub API types
  • src/api/api-utils.tsfetchWithRetry with rate-limit / 429 / 503 handling, paginatedFetch
  • src/api/github-api.tscreateIssue, updateIssue, getIssue, addComment, listLabels, listIssueTemplates, listOrgTeams, getTeamsForRepo, getCodeowners, searchIssues, createSubIssueLink
  • src/input/stdin.tsreadStdin, detectFormat, parseMarkdown, parseJson, parseResults

Input format

Markdown:

- [ ] `owner/repo` — `path:line` — text
# Replay:
github-code-search "TODO" --org acme

JSON: flat SearchResult[] or { items, replayCommand } wrapper.

Acceptance criteria

  • Unit tests in src/api/api-utils.test.ts and src/input/stdin.test.ts pass
  • Both markdown and JSON formats parse correctly

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or request

    Type

    No type
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions