feat(forge-mcp): expose CI job logs and issue dependency graph #1159
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
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
charles/agent-hooks#1159
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
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?
As a dev / code-lead / reviewer agent, I want to read CI job logs and query the issue dependency graph via
forge-mcp, so that I can self-diagnose CI failures without operator intervention and check whether my assigned issue is blocked before starting work.Acceptance criteria
get_job_logsget_job_logs(owner?, repo?, forge?, run_id, job_idx)added toSPECSinapps/forge-mcp/src/tools.tsport.getJobLogs(repo, runId, jobIdx)(already implemented onForgePort)run_idandjob_idxare required integer args;owner/repo/forgeuse the standardrepoFragmentok()wraps so a missing run emits an MCP error, notnullget_job_logsadded toFORGE_TOOLS_ALLOWLISTinapps/server/src/domain/agent/mcp-config.tsget_blockers/get_blockedget_blockers(owner?, repo?, forge?, index)— delegates toport.getBlockers(repo, index)— returnsForgeIssueRef[]get_blocked(owner?, repo?, forge?, index)— delegates toport.getBlocked(repo, index)— returnsForgeIssueRef[]FORGE_TOOLS_ALLOWLISTadd_blockeradd_blocker(owner?, repo?, forge?, index, blocker)— delegates toport.addBlocker(repo, index, blocker)—blockeris an integer issue numberFORGE_TOOLS_ALLOWLISTTests
TOOL_NAMESlockstep assertion inapps/forge-mcp/src/tools.test.tsincludes all 4 new namesserver.test.tssurface count updated (35 → 39)mcp-config.test.tslockstep set updated to require the 4 new namesjust qapassesOut of scope
getJobLogs— adapters that lack the API surface can throw; cross-forge parity is a separate story.removeBlocker/ dependency bulk-edit — not needed now.repoHasWorkflowstool — utility guard, no agent use case yet.References
apps/forge-mcp/src/tools.ts— extendSPECSarrayapps/server/src/domain/agent/mcp-config.ts—FORGE_TOOLS_ALLOWLISTapps/server/src/infrastructure/forge/forgejo-port.tslines 374–386 —getBlockers,getBlocked,addBlocker,getJobLogs