Commit Graph

17 Commits

Author SHA1 Message Date
6b30715fa1 Add integration tests for Spike PR→Discord bridge
Some checks failed
CI / test (pull_request) Has been cancelled
Move webhook tests to root tests/ dir and restructure to be non-flaky. Setup webhook capture server once via preload, tear down on process exit. Tests now clean up their own PRs in afterEach. Added bridge test to verify Spike PRs create Discord threads. Made Discord client login explicit via startDiscord(). Updated config with new dev Discord channel and Spike username mappings.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>
2026-03-10 09:16:52 -07:00
238df92888 Untangle Spike architecture with bridge pattern
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>
2026-03-09 15:23:11 -07:00
34de1f8e40 Much better 2025-11-12 16:38:33 -08:00
fd939af0b7 This is much better
Some checks are pending
CI / test (push) Waiting to run
2025-11-12 11:49:10 -08:00
59d51c4be4 cool dude 2025-11-07 14:40:11 -08:00
883c69d517 get that subdomain
Some checks are pending
CI / test (push) Waiting to run
2025-11-07 09:52:53 -08:00
3742a016aa Added cron 2025-07-25 14:15:23 -07:00
97a4c750ad overlay! 2025-07-21 12:03:31 -07:00
c0eb5b6bca Update package.json 2025-07-15 14:17:32 -07:00
a495a5c50c revive threads 2025-07-15 14:14:07 -07:00
6dbbd74c01 wip 2025-07-14 14:47:30 -07:00
21f336f78e Spike gets a facelift. 2025-06-26 11:50:03 -07:00
d21db3f186 Update package.json 2025-06-18 09:20:45 -07:00
007357445b new spike 2025-06-18 09:13:27 -07:00
Chris Wanstrath
b403c6d1d4 @the-rabbit-hole => @workshop 2025-06-16 22:16:00 -07:00
8cf11f6613 make it work 2025-06-16 10:12:09 -07:00
1b8b68a572 🆒 2025-06-16 09:27:35 -07:00