GithubMirror
Constants
GITHUB_API = "https://api.github.com"
VERSION = "0.1.0"
Instance methods
Enumerate every repo the token can see, following pagination to exhaustion Any API failure is fatal: abort rather than risk acting on a partial or empty list (can't list repos must never be read as not having any repos)
main
Sourcenow_iso
SourceReturns the rel="next" URL from a GitHub Link header, or nil when there's no next page (ending pagination loop)
read_token
Sourcerun_git(args : Array(String), env : Hash(String, String), timeout : Int32 | Nil) : Tuple(Bool, String)
Run a git subprocess with the given environment. Returns {success, error}.
TODO: cancel the timeout timer on completion before adding the concurrent clone pool. As written, a fast-finishing git leaves a fiber sleeping the full timeout; harmless when sequential, but N sleepers accumulate under concurrency. Replace with a Channel/select-based cancellation then.