-
Notifications
You must be signed in to change notification settings - Fork 9
Closed
Description
Summary
Add the core formatting infrastructure: a formatIssueId method on the IssueTracker interface and a static utility on IssueTrackerFactory.
Context
This is the foundation for provider-aware issue ID formatting (Epic #595). All other issues depend on this one.
Files to Modify
src/lib/IssueTracker.ts— AddformatIssueId(identifier: string | number): stringto interfacesrc/lib/GitHubService.ts— Implement:return `#${identifier}`src/lib/LinearService.ts— Implement:return this.normalizeIdentifier(identifier)src/lib/providers/jira/JiraIssueTracker.ts— Implement:return this.normalizeIdentifier(identifier)src/lib/IssueTrackerFactory.ts— Add staticformatIssueId(providerType: IssueTrackerProviderType, identifier: string | number): string:'github'→`#${id}`'linear'/'jira'→String(id)(no prefix)- default →
`#${id}`
Acceptance Criteria
-
formatIssueIdmethod added toIssueTrackerinterface - All three providers implement
formatIssueIdcorrectly -
IssueTrackerFactory.formatIssueIdstatic method works without a provider instance - Unit tests cover each implementation:
- GitHub:
formatIssueId(123)→"#123",formatIssueId("456")→"#456" - Linear:
formatIssueId("eng-123")→"ENG-123" - Jira:
formatIssueId("qlh-4404")→"QLH-4404" - Factory: same expected behavior per provider type
- GitHub:
-
pnpm buildpasses -
pnpm testpasses
Dependencies
None — this is the foundation issue.
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels
Type
Projects
Status
Done