Stream repository import progress
GET/api/repos/{owner}/{repo}/import-progress
streamRepositoryImportProgress
Streams `text/event-stream` while a repo's import is in flight — covering both the fetch phase (import worker pulling from the source forge, `phase = "fetch"`) and the ingest phase (`phase = "ingest"`, live object counters). Each `data:` payload is a JSON `ImportProgressResponse` snapshot. The stream terminates with a `done`/`failed` event as soon as the lifecycle reaches a terminal state. This is the SPA's only live channel — clients should not poll `import-status`.
Authentication optional — this operation also accepts anonymous requests. When authenticating, use a bearer token or a session cookie.
curl
curl -X GET 'https://neosource.dev/api/repos/OWNER/REPO/import-progress' \
-H 'Authorization: Bearer $NEOSOURCE_TOKEN'fetch
fetch("https://neosource.dev/api/repos/OWNER/REPO/import-progress", {
method: "GET",
headers: {
Authorization: "Bearer $NEOSOURCE_TOKEN",
},
});Path parameters
ownerrequiredRepository owner or organization slug.
reporequiredRepository name.
Responses
200Import progress SSE stream
text/event-stream
Standard errors
Bodies documented once for the whole API — see standard errors.
- 400Bad Request — one of: invalid_input
- 403Forbidden — one of: forbidden
- 404Not Found — one of: not_found
- 423Locked — one of: busy
- 429Rate limited — retry after the `Retry-After` header
- 500Internal server error
- 503Service temporarily unavailable / at capacity — retry after the `Retry-After` header
- 504Gateway timeout — the request exceeded the server's handling budget