Title#
feat: add PlatformProvider interface and GitHubPlatformProvider (MT-1)
Problem#
No platform abstraction exists, making it impossible to swap the GitHub integration for other providers. This is the Wave 1 foundation for the multi-tenant initiative.
Task / Link#
Closes #345
Changes#
- Add
PlatformProviderinterface mirroring all 17 publicGitHubServicemethods +PLATFORM_PROVIDERinjection token - Add
GitHubPlatformProvider—@Injectable()delegation wrapper overGitHubService - Add
PlatformModule— importsGitHubModule, provides and exportsPLATFORM_PROVIDER - Add unit tests verifying delegation for all 17 methods
Notes#
- Pure additive change — no existing files modified except a pre-existing test fix
setProjectItemStatusis optional on the interface (matches existing service semantics)- Fixed pre-existing
watchdog.service.spec.tsfailures: productionSTUCK_THRESHOLD_MSenv var was leaking into tests; pinned thresholds inbeforeAll/afterAll
Testing#
- Unit tests:
npm run test -- --testPathPatterns=platform— 20/20 pass - Lint:
npm run lint— zero warnings/errors