feat(forge): GitHub adapter for ForgePort (MF-1) #303
No reviewers
Labels
No labels
area:agents
area:dashboard
area:database
area:design
area:design-review
area:flows
area:infra
area:meta
area:security
area:sessions
area:webhook
area:workdir
security
type:bug
type:chore
type:meta
type:user-story
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/claude-hooks!303
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "dev/292"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
GitHub REST API v3 implementation of every
ForgePortmethod, pairing with Forgejo adapter behind the same hex boundary.Key divergences from
ForgejoAdapterdocumented in the adapter header:getBlockers/getBlockedparseDepends on #N/Blocks #Nbody-text markers;addBlockerappends the line. On Forgejo the native/dependencies+/blocksAPI is used instead.Bearerscheme vs. Forgejo'stokenscheme.X-RateLimit-Remaining: 0, waits untilX-RateLimit-Reset, retries once (max 70 s wait).Test plan
just qapasses (Biome lint/format + typecheck all clean)github-adapter.test.ts) — covers all ForgePort methods, CI status aggregation, dependency body parsing, rate-limit retry with fixture scenariosCloses #292
Document two behavioural divergences from the Forgejo adapter so callers treat the GitHub path as best-effort where it genuinely differs: - getAggregateStatus rolls up Check Runs only, not legacy /statuses — fine for Actions-based CI (the production case) but worth calling out vs. Forgejo's /combined surface. - listAccessibleRepos caps at 4×50 = 200 repos; noted so the next operator who hits the ceiling knows where to bump it. Header-comment only; no runtime change. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>d53b3e5f81b84a0ffe99