Skip to content

feat(mcp): ci_job_status tool — Actions history query - #689

Merged
matt82198 merged 5 commits into
mainfrom
feat/mcp-ci-status
Aug 4, 2026
Merged

matt82198 merged 5 commits into
mainfrom
feat/mcp-ci-status

Conversation

@matt82198

Copy link
Copy Markdown
Owner

Summary

Add ci_job_status tool to read-only MCP server for GitHub Actions workflow run history queries.

  • Queries run status, conclusion, duration, flake signal
  • Spawns gh run list via child_process (no shell:true, 10s timeout)
  • Parses deterministic JSON; errors → structured error JSON (no crash)
  • Test mocking via TEST_GH_MOCK_DATA env var

Test plan

  • ✓ Normal history: 3 runs, calculates avg_duration_s, failure_rate, flake_signal
  • ✓ Empty history: never_executed=true, failure_rate=0, flake_signal=0
  • ✓ gh failure: error field returned (structured), runs=[]
  • ✓ Tool registered in TOOLS array, appears in tools/list
  • ✓ All 316 node tests pass

Generated with Claude Code

Add ci_job_status tool to read-only MCP server for querying GitHub Actions
run history: status, conclusion, duration, flake signal. Tool spawns gh CLI
with 10s timeout (no shell:true), parses deterministic JSON, handles errors
gracefully. Includes test fixtures for normal history, empty history
(never_executed=true), and gh failure → structured error. All tests pass.

- mcp/server.mjs: Add getCIJobStatus() + tool registration
- mcp/CLAUDE.md: Document tool contract + test strategy
- tests/mcp-ci-status.test.mjs: 4 test cases (init, normal, empty, error)
- tests/mcp-fleet.test.mjs: Update tool count from 11 to 12

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
@matt82198 matt82198 added the merge-queue Queued for the merge-queue advancer daemon label Aug 3, 2026
matt82198 and others added 3 commits August 2, 2026 22:42
Pipe-join the sub-bullet field lists for fleet_instances,
fleet_multibox_summary, and ci_job_status into dense single lines.
No contract information removed.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This PR adds tests/mcp-ci-status.test.mjs; verify_test_suite_count.py
expects the documented count to match discovery.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@matt82198

Copy link
Copy Markdown
Owner Author

Evicted from the merge queue: batch #736 (integrate/q-1785730980) red with every member individually green

@matt82198 matt82198 added the merge-queue Queued for the merge-queue advancer daemon label Aug 3, 2026
@matt82198 matt82198 removed the queue-rejected Evicted from the merge queue (red or culprit) label Aug 4, 2026
@matt82198 matt82198 added queue-rejected Evicted from the merge queue (red or culprit) and removed merge-queue Queued for the merge-queue advancer daemon labels Aug 4, 2026
@matt82198

Copy link
Copy Markdown
Owner Author

Evicted from the merge queue: batch #766 (integrate/q-1785803317) red with every member individually green

@matt82198 matt82198 added merge-queue Queued for the merge-queue advancer daemon and removed queue-rejected Evicted from the merge queue (red or culprit) labels Aug 4, 2026
@matt82198
matt82198 merged commit bc611a1 into main Aug 4, 2026
12 checks passed
@matt82198
matt82198 deleted the feat/mcp-ci-status branch August 4, 2026 04:12
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

merge-queue Queued for the merge-queue advancer daemon

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant