Split the monolithic gitea/helpers.ts (which had Discord imports and created circular dependencies) into three focused libs: 1. **gitea/** — Pure API client: fetchPR, fetchReviewComments, convertUsername, threadName. No side effects or external deps. 2. **discord/** — Discord client setup: bot login, event listeners, slash commands. Now isolated from Gitea internals. 3. **bridge/** — New integration layer: webhook handler, DB mappings (Gitea PR ↔ Discord thread), Discord helpers, and createPRComment. Dependencies now flow one direction: bridge → gitea and bridge → discord. No circular imports. Added: - Barrel exports (index.ts) for each lib with public API - README.md for each lib documenting the barrel exports - Comprehensive spike README.md with setup guide and architecture explanation - Integration tests for webhooks (callback-based, no race conditions) - Unit tests for pure API functions - CLAUDE.md with links to each lib's README This architecture makes it possible for AI to understand a lib by reading just its README, keeping context focused and small. Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
18 lines
257 B
Plaintext
18 lines
257 B
Plaintext
# Discord bot
|
|
DISCORD_TOKEN=
|
|
DISCORD_CLIENT_ID=
|
|
|
|
# Gitea
|
|
GITEA_API_TOKEN=
|
|
|
|
# Server
|
|
PORT=3000
|
|
NODE_ENV=
|
|
DATA_DIR=
|
|
|
|
# Testing
|
|
TEST_GITEA_API_TOKEN_COREY=
|
|
TEST_GITEA_API_TOKEN_SPIKE=
|
|
TEST_REPO_COREY=probablycorey/ignore-me
|
|
TEST_REPO_SPIKE=Spike/ignore-me-too
|