You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
RunSift's optional GitHub Actions collector needs a small, reusable GitHub API boundary instead of scattering HTTP/API behavior across run selection and evidence-download code.
This issue provides the transport and reliability layer used by #7 and #8 while keeping the analyzer itself fully offline and deterministic.
The integration is read-only by construction. It must not expose GitHub mutation operations.
Goals
centralize GitHub REST API request behavior behind a narrow adapter;
make pagination, rate limits, retries, timeouts, API-version headers, and errors consistent;
Add unit tests for pagination, timeout, rate-limit, retry, malformed-response, and redaction behavior
Add contract fixtures for representative GitHub API responses without requiring network access
Document the allowed read-only endpoint surface used by RunSift
Read-only endpoint boundary
Initial client capabilities should be limited to the endpoint families required by #7/#8, such as:
repository/workflow-run metadata needed for deterministic run selection;
workflow jobs for an explicitly selected run/attempt;
log/evidence retrieval needed to build the normalized local bundle.
Any new endpoint family requires an explicit product need and tests. Mutation endpoints such as rerun, dispatch, check creation, comments, repository changes, or workflow modification are out of scope.
Reliability requirements
Retries are bounded by attempt count and elapsed-time budget.
Pagination has explicit maximum pages/items so an unexpected repository cannot cause unbounded collection.
Rate-limit handling must prefer GitHub-provided reset/retry metadata when available rather than tight polling.
Retry behavior must remain deterministic in tests by injecting clock/sleep/jitter behavior where necessary.
Partial or malformed API responses must never be silently treated as complete evidence.
Problem statement
RunSift's optional GitHub Actions collector needs a small, reusable GitHub API boundary instead of scattering HTTP/API behavior across run selection and evidence-download code.
This issue provides the transport and reliability layer used by #7 and #8 while keeping the analyzer itself fully offline and deterministic.
The integration is read-only by construction. It must not expose GitHub mutation operations.
Goals
Checklist
Accept/User-AgentheadersRetry-Afterwithout aggressive pollingRead-only endpoint boundary
Initial client capabilities should be limited to the endpoint families required by #7/#8, such as:
Any new endpoint family requires an explicit product need and tests. Mutation endpoints such as rerun, dispatch, check creation, comments, repository changes, or workflow modification are out of scope.
Reliability requirements
Acceptance criteria
Dependencies / relationships
Non-goals