{ "opencollection": "1.0.0", "info": { "name": "Superlog Management API keys GitHub integration API", "version": "1.0.0" }, "request": { "auth": { "type": "bearer", "token": "{{bearerToken}}" } }, "items": [ { "info": { "name": "GitHub integration", "type": "folder" }, "items": [ { "info": { "name": "Mint an org-scoped GitHub App install URL", "type": "http" }, "http": { "method": "POST", "url": "https://api.superlog.sh/api/v1/integrations/github/install-url" }, "docs": "Resulting install is owned by the org and can be granted to multiple projects. `return_url` host must be in the org's allowlist." }, { "info": { "name": "Mint a project-scoped GitHub App install URL", "type": "http" }, "http": { "method": "POST", "url": "https://api.superlog.sh/api/v1/projects/:projectId/integrations/github/install-url", "params": [ { "name": "projectId", "value": "", "type": "path" } ] }, "docs": "Resulting install is bound to one project and is NOT listed by `GET /api/v1/integrations/github/installations`." }, { "info": { "name": "List org-scoped GitHub installs", "type": "http" }, "http": { "method": "GET", "url": "https://api.superlog.sh/api/v1/integrations/github/installations" }, "docs": "Project-scoped installs and revoked / suspended installs are excluded." }, { "info": { "name": "List repos an install covers (live)", "type": "http" }, "http": { "method": "GET", "url": "https://api.superlog.sh/api/v1/integrations/github/installations/:installationRowId/repos", "params": [ { "name": "installationRowId", "value": "", "type": "path" } ] }, "docs": "Live call to GitHub. Capped at 1000 repos; `truncated=true` means more exist. You can still grant a beyond-cap repo by passing its numeric ID to the grant endpoint (O(1) lookup)." }, { "info": { "name": "List repo grants on a project", "type": "http" }, "http": { "method": "GET", "url": "https://api.superlog.sh/api/v1/projects/:projectId/github/repos", "params": [ { "name": "projectId", "value": "", "type": "path" } ] }, "docs": "Grants whose underlying install has been revoked are filtered out." }, { "info": { "name": "Grant a project access to a repo", "type": "http" }, "http": { "method": "POST", "url": "https://api.superlog.sh/api/v1/projects/:projectId/github/repos", "params": [ { "name": "projectId", "value": "", "type": "path" } ], "body": { "type": "json", "data": "{}" } }, "docs": "Validates the install belongs to this org and the repo is covered by it (live GitHub check) so a leaked management key can't grant access to arbitrary repo IDs." }, { "info": { "name": "Revoke a project's grant on a repo", "type": "http" }, "http": { "method": "DELETE", "url": "https://api.superlog.sh/api/v1/projects/:projectId/github/repos/:repoId", "params": [ { "name": "projectId", "value": "", "type": "path" }, { "name": "repoId", "value": "", "type": "path" } ] }, "docs": "Revoke a project's grant on a repo" } ] } ], "bundled": true }