Skip to content

feat(tracker): integrate GitHub native Dependencies API for blockedBy#170

Merged
keinstn merged 2 commits into
developfrom
agent/keinstn__baton-167
Jun 24, 2026
Merged

feat(tracker): integrate GitHub native Dependencies API for blockedBy#170
keinstn merged 2 commits into
developfrom
agent/keinstn__baton-167

Conversation

@keinstn

@keinstn keinstn commented Jun 24, 2026

Copy link
Copy Markdown
Owner

Summary

  • Implements fetchBlockedBy in src/tracker/github-projects.ts using GET /repos/{owner}/{repo}/issues/{n}/dependencies/blocked_by (API version 2026-03-10)
  • Populates blockedBy on each Issue returned by fetchIssuesByStates / fetchCandidateIssues, replacing the // Phase 1 stub that always returned []
  • Adds restBaseFromEndpoint and parseLinkNext helpers (same pattern as scripts/triage/fetcher.ts) for REST URL construction and Link-header pagination
  • Fetches are sequential (one per issue) to respect GitHub secondary rate limits; any REST failure degrades gracefully to blockedBy: [] per SPEC §4.1.1
  • BlockerRef.identifier uses <repoName>-<number> format (e.g. baton-149) extracted from repository_url

Closes #167

Test plan

  • npm run test — 342 tests pass (added 5 new blockedBy tests to test/tracker.test.ts)
  • npm run typecheck — no errors
  • npm run lint — no errors
  • Existing triage-fetcher.test.ts tests updated to account for the additional blocked_by REST calls that now precede sub_issues calls

🤖 Generated with Claude Code

Implements fetchBlockedBy using GET /repos/{owner}/{repo}/issues/{n}/dependencies/blocked_by
(API version 2026-03-10) and populates blockedBy on each Issue returned by
fetchIssuesByStates / fetchCandidateIssues. Fetches are sequential to respect
secondary rate limits and degrade gracefully to [] on any REST failure.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@keinstn

keinstn commented Jun 24, 2026

Copy link
Copy Markdown
Owner Author

[Baton Reviewer] PR #170 is ready for human review.
Managed by Baton; do not edit the marker line manually.

@keinstn keinstn self-assigned this Jun 24, 2026
Comment thread src/tracker/github-projects.ts Outdated
Comment thread src/tracker/github-projects.ts Outdated
…lockedBy

Pass AbortSignal.timeout(NETWORK_TIMEOUT_MS) to prevent stalled network
requests from blocking orchestrator ticks. Return [] on any mid-pagination
failure instead of partial blocker data that could mask open blockers.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@keinstn
keinstn merged commit ac18e77 into develop Jun 24, 2026
4 checks passed
@keinstn
keinstn deleted the agent/keinstn__baton-167 branch June 24, 2026 18:58
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(tracker): integrate GitHub native Dependencies API for blockedBy

1 participant