Depends on: Issue 1, Issue 2
Implement the github Provider:
list(scope) — query github/issue scoped by scope.repositoryUrl,
extract the key from the enforced title prefix, map to WorkItem[]
comments(item) — issue/PR body as the first entry, then github/comment
github/review bodies scoped by .issue == item.externalId
assigneeRefs/reviewerRefs — reviewerRefs from github/review
authors; assigneeRefs needs verifying against real data first (see §3,
§7 — the cached schema doesn't obviously expose a distinct assignees
field, participants may be the closest proxy)
Acceptance criteria
Depends on: Issue 1, Issue 2
Implement the
githubProvider:list(scope)— querygithub/issuescoped byscope.repositoryUrl,extract the key from the enforced title prefix, map to
WorkItem[]comments(item)— issue/PR body as the first entry, thengithub/commentgithub/reviewbodies scoped by.issue == item.externalIdassigneeRefs/reviewerRefs—reviewerRefsfromgithub/reviewauthors;
assigneeRefsneeds verifying against real data first (see §3,§7 — the cached schema doesn't obviously expose a distinct
assigneesfield,
participantsmay be the closest proxy)Acceptance criteria
list()returns real PRs/issues for the pilot repo, keyed correctlywhen the title carries the
{KEY}prefixcomments()merges body +github/comment+github/reviewinchronological order
answer (which field, or "not available")