Payload
{
"action": "opened",
"number": 18,
"pull_request": {
"url": "https://api.github.com/repos/darkmatter/centaur/pulls/18",
"id": 4092913203,
"node_id": "PR_kwDOTVFhj87z9OYz",
"html_url": "https://github.com/darkmatter/centaur/pull/18",
"diff_url": "https://github.com/darkmatter/centaur/pull/18.diff",
"patch_url": "https://github.com/darkmatter/centaur/pull/18.patch",
"issue_url": "https://api.github.com/repos/darkmatter/centaur/issues/18",
"number": 18,
"state": "open",
"locked": false,
"title": "feat(slackbotv2): add /collab command for native OMP room control",
"user": {
"login": "czxtm",
"id": 1325802,
"node_id": "MDQ6VXNlcjEzMjU4MDI=",
"avatar_url": "https://avatars.githubusercontent.com/u/1325802?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/czxtm",
"html_url": "https://github.com/czxtm",
"followers_url": "https://api.github.com/users/czxtm/followers",
"following_url": "https://api.github.com/users/czxtm/following{/other_user}",
"gists_url": "https://api.github.com/users/czxtm/gists{/gist_id}",
"starred_url": "https://api.github.com/users/czxtm/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/czxtm/subscriptions",
"organizations_url": "https://api.github.com/users/czxtm/orgs",
"repos_url": "https://api.github.com/users/czxtm/repos",
"events_url": "https://api.github.com/users/czxtm/events{/privacy}",
"received_events_url": "https://api.github.com/users/czxtm/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"body": "## Summary\n\nThin Slack-side interception for the `/collab` command family (`/collab`, `/collab status`, `/collab stop`). Calls authenticated api-rs room control endpoints and renders exactly one copyable shell command: `omp join '<join_url>'` with POSIX single-quote escaping. Never spawns OMP or synthesizes the tailnet relay prefix — the capability URL comes verbatim from the resident OMP host via api-rs.\n\n## API Contract\n\nCoordinated with **CollabRoomLifecycle** (centaur-3w2.6) and **ResidentOmpHost** (centaur-3w2.5):\n\n| Route | Method | Response |\n|-------|--------|----------|\n| `/api/session/{thread_key}/collab/start` | POST | `{ok, thread_key, room: {active, join_url?, view_url?, web_url?, participants}}` |\n| `/api/session/{thread_key}/collab/status` | GET | `{ok, thread_key, room: CollabRoomState \\| null}` |\n| `/api/session/{thread_key}/collab/stop` | POST | `{ok, thread_key, stopped: boolean}` |\n\nErrors: 409 ownership conflict, 400 terminal session, standard ApiError JSON otherwise. `join_url` is a full `omp join`-capable tailnet URL — ingress forwards verbatim.\n\n## Behavior\n\n- **Start** (`/collab` or `/collab start`): starts or reuses the session's native OMP room. Posts exactly one command: `omp join '<join_url>'`. Repeated start reuses the same room.\n- **Status** (`/collab status`): posts the join command when a room is active, or `No active collaboration room.` when inactive.\n- **Stop** (`/collab stop`): closes the room. Idempotent — `stopped: false` means there was no room to close (posted as `No active collaboration room to close.`).\n- **Malformed args**: posts a usage hint without making an API call.\n- **Failures**: posts an explicit error message (`Collaboration command failed: ...`). No agent turn is spent on a failed collab command.\n- **No agent turn**: stop, status, and failures all short-circuit before normal agent execution.\n- **No raw control URL or browser link exposure**: only `omp join` command is posted. No `view_url`, `web_url`, or Console link.\n\n## Sample output\n\n```\nomp join 'https://relay.tailnet.test/r/room-abc.aGVsbG8='\n```\n\nWith embedded single quotes in the URL:\n```\nomp join 'https://relay.test/r/x'\\''y'\\''z'\n```\n\n## Files\n\n- `services/slackbotv2/src/collab-command.ts` (new) — command parser + join command renderer with POSIX single-quote escaping\n- `services/slackbotv2/src/session-api.ts` — `startCollabRoom`, `statusCollabRoom`, `stopCollabRoom` client functions + HTTP helpers + extended `apiSessionUrl` suffix union\n- `services/slackbotv2/src/types.ts` — `SlackbotV2Collab*` request/response types\n- `services/slackbotv2/src/index.ts` — `handleCollabCommand` interception in the dispatch chain (after stop, before subscribe/forward)\n- `services/slackbotv2/test/collab-command.test.ts` (new) — 41 tests\n\n## Tests\n\n```\nbun test services/slackbotv2/test/collab-command.test.ts\n→ 41 pass, 0 fail\n```\n\n```\npnpm --filter slackbotv2 run check:types\n→ Exited with code 0\n```\n\nNote: `overrides.test.ts` has 3 pre-existing failures on `origin/main` (unrelated to this change — verified by stashing and re-running).\n\n## Dependency\n\nDepends on centaur-3w2.6 (CollabRoomLifecycle) for the api-rs route implementations. The ingress client is wired and tested against the agreed contract; the routes themselves are being implemented in parallel.\n\nCloses centaur-3w2.7",
"created_at": "2026-07-20T16:55:47Z",
"updated_at": "2026-07-20T16:55:47Z",
"closed_at": null,
"merged_at": null,
"merge_commit_sha": null,
"assignees": [],
"requested_reviewers": [],
"requested_teams": [],
"labels": [],
"milestone": null,
"draft": false,
"commits_url": "https://api.github.com/repos/darkmatter/centaur/pulls/18/commits",
"review_comments_url": "https://api.github.com/repos/darkmatter/centaur/pulls/18/comments",
"review_comment_url": "https://api.github.com/repos/darkmatter/centaur/pulls/comments{/number}",
"comments_url": "https://api.github.com/repos/darkmatter/centaur/issues/18/comments",
"statuses_url": "https://api.github.com/repos/darkmatter/centaur/statuses/e75ad71293da6a508dd00809689bd5db147d981e",
"head": {
"label": "darkmatter:feat/omp-collab-command",
"ref": "feat/omp-collab-command",
"sha": "e75ad71293da6a508dd00809689bd5db147d981e",
"user": {
"login": "darkmatter",
"id": 17834193,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjE3ODM0MTkz",
"avatar_url": "https://avatars.githubusercontent.com/u/17834193?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/darkmatter",
"html_url": "https://github.com/darkmatter",
"followers_url": "https://api.github.com/users/darkmatter/followers",
"following_url": "https://api.github.com/users/darkmatter/following{/other_user}",
"gists_url": "https://api.github.com/users/darkmatter/gists{/gist_id}",
"starred_url": "https://api.github.com/users/darkmatter/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/darkmatter/subscriptions",
"organizations_url": "https://api.github.com/users/darkmatter/orgs",
"repos_url": "https://api.github.com/users/darkmatter/repos",
"events_url": "https://api.github.com/users/darkmatter/events{/privacy}",
"received_events_url": "https://api.github.com/users/darkmatter/received_events",
"type": "Organization",
"user_view_type": "public",
"site_admin": false
},
"repo": {
"id": 1297179023,
"node_id": "R_kgDOTVFhjw",
"name": "centaur",
"full_name": "darkmatter/centaur",
"private": false,
"owner": {
"login": "darkmatter",
"id": 17834193,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjE3ODM0MTkz",
"avatar_url": "https://avatars.githubusercontent.com/u/17834193?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/darkmatter",
"html_url": "https://github.com/darkmatter",
"followers_url": "https://api.github.com/users/darkmatter/followers",
"following_url": "https://api.github.com/users/darkmatter/following{/other_user}",
"gists_url": "https://api.github.com/users/darkmatter/gists{/gist_id}",
"starred_url": "https://api.github.com/users/darkmatter/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/darkmatter/subscriptions",
"organizations_url": "https://api.github.com/users/darkmatter/orgs",
"repos_url": "https://api.github.com/users/darkmatter/repos",
"events_url": "https://api.github.com/users/darkmatter/events{/privacy}",
"received_events_url": "https://api.github.com/users/darkmatter/received_events",
"type": "Organization",
"user_view_type": "public",
"site_admin": false
},
"html_url": "https://github.com/darkmatter/centaur",
"description": "Multiplayer, self-hosted, secure agents.",
"fork": true,
"url": "https://api.github.com/repos/darkmatter/centaur",
"forks_url": "https://api.github.com/repos/darkmatter/centaur/forks",
"keys_url": "https://api.github.com/repos/darkmatter/centaur/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/darkmatter/centaur/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/darkmatter/centaur/teams",
"hooks_url": "https://api.github.com/repos/darkmatter/centaur/hooks",
"issue_events_url": "https://api.github.com/repos/darkmatter/centaur/issues/events{/number}",
"events_url": "https://api.github.com/repos/darkmatter/centaur/events",
"assignees_url": "https://api.github.com/repos/darkmatter/centaur/assignees{/user}",
"branches_url": "https://api.github.com/repos/darkmatter/centaur/branches{/branch}",
"tags_url": "https://api.github.com/repos/darkmatter/centaur/tags",
"blobs_url": "https://api.github.com/repos/darkmatter/centaur/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/darkmatter/centaur/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/darkmatter/centaur/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/darkmatter/centaur/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/darkmatter/centaur/statuses/{sha}",
"languages_url": "https://api.github.com/repos/darkmatter/centaur/languages",
"stargazers_url": "https://api.github.com/repos/darkmatter/centaur/stargazers",
"contributors_url": "https://api.github.com/repos/darkmatter/centaur/contributors",
"subscribers_url": "https://api.github.com/repos/darkmatter/centaur/subscribers",
"subscription_url": "https://api.github.com/repos/darkmatter/centaur/subscription",
"commits_url": "https://api.github.com/repos/darkmatter/centaur/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/darkmatter/centaur/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/darkmatter/centaur/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/darkmatter/centaur/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/darkmatter/centaur/contents/{+path}",
"compare_url": "https://api.github.com/repos/darkmatter/centaur/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/darkmatter/centaur/merges",
"archive_url": "https://api.github.com/repos/darkmatter/centaur/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/darkmatter/centaur/downloads",
"issues_url": "https://api.github.com/repos/darkmatter/centaur/issues{/number}",
"pulls_url": "https://api.github.com/repos/darkmatter/centaur/pulls{/number}",
"milestones_url": "https://api.github.com/repos/darkmatter/centaur/milestones{/number}",
"notifications_url": "https://api.github.com/repos/darkmatter/centaur/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/darkmatter/centaur/labels{/name}",
"releases_url": "https://api.github.com/repos/darkmatter/centaur/releases{/id}",
"deployments_url": "https://api.github.com/repos/darkmatter/centaur/deployments",
"created_at": "2026-07-11T06:11:04Z",
"updated_at": "2026-07-20T16:26:24Z",
"pushed_at": "2026-07-20T16:55:27Z",
"git_url": "git://github.com/darkmatter/centaur.git",
"ssh_url": "org-17834193@github.com:darkmatter/centaur.git",
"clone_url": "https://github.com/darkmatter/centaur.git",
"svn_url": "https://github.com/darkmatter/centaur",
"homepage": "https://centaur.run",
"size": 40497,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Python",
"has_issues": false,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 2,
"license": {
"key": "other",
"name": "Other",
"spdx_id": "NOASSERTION",
"url": null,
"node_id": "MDc6TGljZW5zZTA="
},
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"has_pull_requests": true,
"pull_request_creation_policy": "all",
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 2,
"watchers": 0,
"default_branch": "main",
"allow_squash_merge": true,
"allow_merge_commit": true,
"allow_rebase_merge": true,
"allow_auto_merge": false,
"delete_branch_on_merge": false,
"allow_update_branch": false,
"use_squash_pr_title_as_default": false,
"squash_merge_commit_message": "COMMIT_MESSAGES",
"squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
"merge_commit_message": "PR_TITLE",
"merge_commit_title": "MERGE_MESSAGE"
}
},
"base": {
"label": "darkmatter:main",
"ref": "main",
"sha": "b46a1a0a640443522752ca05fc7d7e08888a1538",
"user": {
"login": "darkmatter",
"id": 17834193,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjE3ODM0MTkz",
"avatar_url": "https://avatars.githubusercontent.com/u/17834193?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/darkmatter",
"html_url": "https://github.com/darkmatter",
"followers_url": "https://api.github.com/users/darkmatter/followers",
"following_url": "https://api.github.com/users/darkmatter/following{/other_user}",
"gists_url": "https://api.github.com/users/darkmatter/gists{/gist_id}",
"starred_url": "https://api.github.com/users/darkmatter/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/darkmatter/subscriptions",
"organizations_url": "https://api.github.com/users/darkmatter/orgs",
"repos_url": "https://api.github.com/users/darkmatter/repos",
"events_url": "https://api.github.com/users/darkmatter/events{/privacy}",
"received_events_url": "https://api.github.com/users/darkmatter/received_events",
"type": "Organization",
"user_view_type": "public",
"site_admin": false
},
"repo": {
"id": 1297179023,
"node_id": "R_kgDOTVFhjw",
"name": "centaur",
"full_name": "darkmatter/centaur",
"private": false,
"owner": {
"login": "darkmatter",
"id": 17834193,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjE3ODM0MTkz",
"avatar_url": "https://avatars.githubusercontent.com/u/17834193?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/darkmatter",
"html_url": "https://github.com/darkmatter",
"followers_url": "https://api.github.com/users/darkmatter/followers",
"following_url": "https://api.github.com/users/darkmatter/following{/other_user}",
"gists_url": "https://api.github.com/users/darkmatter/gists{/gist_id}",
"starred_url": "https://api.github.com/users/darkmatter/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/darkmatter/subscriptions",
"organizations_url": "https://api.github.com/users/darkmatter/orgs",
"repos_url": "https://api.github.com/users/darkmatter/repos",
"events_url": "https://api.github.com/users/darkmatter/events{/privacy}",
"received_events_url": "https://api.github.com/users/darkmatter/received_events",
"type": "Organization",
"user_view_type": "public",
"site_admin": false
},
"html_url": "https://github.com/darkmatter/centaur",
"description": "Multiplayer, self-hosted, secure agents.",
"fork": true,
"url": "https://api.github.com/repos/darkmatter/centaur",
"forks_url": "https://api.github.com/repos/darkmatter/centaur/forks",
"keys_url": "https://api.github.com/repos/darkmatter/centaur/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/darkmatter/centaur/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/darkmatter/centaur/teams",
"hooks_url": "https://api.github.com/repos/darkmatter/centaur/hooks",
"issue_events_url": "https://api.github.com/repos/darkmatter/centaur/issues/events{/number}",
"events_url": "https://api.github.com/repos/darkmatter/centaur/events",
"assignees_url": "https://api.github.com/repos/darkmatter/centaur/assignees{/user}",
"branches_url": "https://api.github.com/repos/darkmatter/centaur/branches{/branch}",
"tags_url": "https://api.github.com/repos/darkmatter/centaur/tags",
"blobs_url": "https://api.github.com/repos/darkmatter/centaur/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/darkmatter/centaur/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/darkmatter/centaur/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/darkmatter/centaur/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/darkmatter/centaur/statuses/{sha}",
"languages_url": "https://api.github.com/repos/darkmatter/centaur/languages",
"stargazers_url": "https://api.github.com/repos/darkmatter/centaur/stargazers",
"contributors_url": "https://api.github.com/repos/darkmatter/centaur/contributors",
"subscribers_url": "https://api.github.com/repos/darkmatter/centaur/subscribers",
"subscription_url": "https://api.github.com/repos/darkmatter/centaur/subscription",
"commits_url": "https://api.github.com/repos/darkmatter/centaur/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/darkmatter/centaur/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/darkmatter/centaur/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/darkmatter/centaur/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/darkmatter/centaur/contents/{+path}",
"compare_url": "https://api.github.com/repos/darkmatter/centaur/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/darkmatter/centaur/merges",
"archive_url": "https://api.github.com/repos/darkmatter/centaur/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/darkmatter/centaur/downloads",
"issues_url": "https://api.github.com/repos/darkmatter/centaur/issues{/number}",
"pulls_url": "https://api.github.com/repos/darkmatter/centaur/pulls{/number}",
"milestones_url": "https://api.github.com/repos/darkmatter/centaur/milestones{/number}",
"notifications_url": "https://api.github.com/repos/darkmatter/centaur/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/darkmatter/centaur/labels{/name}",
"releases_url": "https://api.github.com/repos/darkmatter/centaur/releases{/id}",
"deployments_url": "https://api.github.com/repos/darkmatter/centaur/deployments",
"created_at": "2026-07-11T06:11:04Z",
"updated_at": "2026-07-20T16:26:24Z",
"pushed_at": "2026-07-20T16:55:27Z",
"git_url": "git://github.com/darkmatter/centaur.git",
"ssh_url": "org-17834193@github.com:darkmatter/centaur.git",
"clone_url": "https://github.com/darkmatter/centaur.git",
"svn_url": "https://github.com/darkmatter/centaur",
"homepage": "https://centaur.run",
"size": 40497,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Python",
"has_issues": false,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 2,
"license": {
"key": "other",
"name": "Other",
"spdx_id": "NOASSERTION",
"url": null,
"node_id": "MDc6TGljZW5zZTA="
},
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"has_pull_requests": true,
"pull_request_creation_policy": "all",
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 2,
"watchers": 0,
"default_branch": "main",
"allow_squash_merge": true,
"allow_merge_commit": true,
"allow_rebase_merge": true,
"allow_auto_merge": false,
"delete_branch_on_merge": false,
"allow_update_branch": false,
"use_squash_pr_title_as_default": false,
"squash_merge_commit_message": "COMMIT_MESSAGES",
"squash_merge_commit_title": "COMMIT_OR_PR_TITLE",
"merge_commit_message": "PR_TITLE",
"merge_commit_title": "MERGE_MESSAGE"
}
},
"_links": {
"self": {
"href": "https://api.github.com/repos/darkmatter/centaur/pulls/18"
},
"html": {
"href": "https://github.com/darkmatter/centaur/pull/18"
},
"issue": {
"href": "https://api.github.com/repos/darkmatter/centaur/issues/18"
},
"comments": {
"href": "https://api.github.com/repos/darkmatter/centaur/issues/18/comments"
},
"review_comments": {
"href": "https://api.github.com/repos/darkmatter/centaur/pulls/18/comments"
},
"review_comment": {
"href": "https://api.github.com/repos/darkmatter/centaur/pulls/comments{/number}"
},
"commits": {
"href": "https://api.github.com/repos/darkmatter/centaur/pulls/18/commits"
},
"statuses": {
"href": "https://api.github.com/repos/darkmatter/centaur/statuses/e75ad71293da6a508dd00809689bd5db147d981e"
}
},
"author_association": "MEMBER",
"auto_merge": null,
"assignee": null,
"active_lock_reason": null,
"merged": false,
"mergeable": null,
"rebaseable": null,
"mergeable_state": "unknown",
"merged_by": null,
"comments": 0,
"review_comments": 0,
"maintainer_can_modify": false,
"commits": 1,
"additions": 901,
"deletions": 2,
"changed_files": 5
},
"repository": {
"id": 1297179023,
"node_id": "R_kgDOTVFhjw",
"name": "centaur",
"full_name": "darkmatter/centaur",
"private": false,
"owner": {
"login": "darkmatter",
"id": 17834193,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjE3ODM0MTkz",
"avatar_url": "https://avatars.githubusercontent.com/u/17834193?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/darkmatter",
"html_url": "https://github.com/darkmatter",
"followers_url": "https://api.github.com/users/darkmatter/followers",
"following_url": "https://api.github.com/users/darkmatter/following{/other_user}",
"gists_url": "https://api.github.com/users/darkmatter/gists{/gist_id}",
"starred_url": "https://api.github.com/users/darkmatter/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/darkmatter/subscriptions",
"organizations_url": "https://api.github.com/users/darkmatter/orgs",
"repos_url": "https://api.github.com/users/darkmatter/repos",
"events_url": "https://api.github.com/users/darkmatter/events{/privacy}",
"received_events_url": "https://api.github.com/users/darkmatter/received_events",
"type": "Organization",
"user_view_type": "public",
"site_admin": false
},
"html_url": "https://github.com/darkmatter/centaur",
"description": "Multiplayer, self-hosted, secure agents.",
"fork": true,
"url": "https://api.github.com/repos/darkmatter/centaur",
"forks_url": "https://api.github.com/repos/darkmatter/centaur/forks",
"keys_url": "https://api.github.com/repos/darkmatter/centaur/keys{/key_id}",
"collaborators_url": "https://api.github.com/repos/darkmatter/centaur/collaborators{/collaborator}",
"teams_url": "https://api.github.com/repos/darkmatter/centaur/teams",
"hooks_url": "https://api.github.com/repos/darkmatter/centaur/hooks",
"issue_events_url": "https://api.github.com/repos/darkmatter/centaur/issues/events{/number}",
"events_url": "https://api.github.com/repos/darkmatter/centaur/events",
"assignees_url": "https://api.github.com/repos/darkmatter/centaur/assignees{/user}",
"branches_url": "https://api.github.com/repos/darkmatter/centaur/branches{/branch}",
"tags_url": "https://api.github.com/repos/darkmatter/centaur/tags",
"blobs_url": "https://api.github.com/repos/darkmatter/centaur/git/blobs{/sha}",
"git_tags_url": "https://api.github.com/repos/darkmatter/centaur/git/tags{/sha}",
"git_refs_url": "https://api.github.com/repos/darkmatter/centaur/git/refs{/sha}",
"trees_url": "https://api.github.com/repos/darkmatter/centaur/git/trees{/sha}",
"statuses_url": "https://api.github.com/repos/darkmatter/centaur/statuses/{sha}",
"languages_url": "https://api.github.com/repos/darkmatter/centaur/languages",
"stargazers_url": "https://api.github.com/repos/darkmatter/centaur/stargazers",
"contributors_url": "https://api.github.com/repos/darkmatter/centaur/contributors",
"subscribers_url": "https://api.github.com/repos/darkmatter/centaur/subscribers",
"subscription_url": "https://api.github.com/repos/darkmatter/centaur/subscription",
"commits_url": "https://api.github.com/repos/darkmatter/centaur/commits{/sha}",
"git_commits_url": "https://api.github.com/repos/darkmatter/centaur/git/commits{/sha}",
"comments_url": "https://api.github.com/repos/darkmatter/centaur/comments{/number}",
"issue_comment_url": "https://api.github.com/repos/darkmatter/centaur/issues/comments{/number}",
"contents_url": "https://api.github.com/repos/darkmatter/centaur/contents/{+path}",
"compare_url": "https://api.github.com/repos/darkmatter/centaur/compare/{base}...{head}",
"merges_url": "https://api.github.com/repos/darkmatter/centaur/merges",
"archive_url": "https://api.github.com/repos/darkmatter/centaur/{archive_format}{/ref}",
"downloads_url": "https://api.github.com/repos/darkmatter/centaur/downloads",
"issues_url": "https://api.github.com/repos/darkmatter/centaur/issues{/number}",
"pulls_url": "https://api.github.com/repos/darkmatter/centaur/pulls{/number}",
"milestones_url": "https://api.github.com/repos/darkmatter/centaur/milestones{/number}",
"notifications_url": "https://api.github.com/repos/darkmatter/centaur/notifications{?since,all,participating}",
"labels_url": "https://api.github.com/repos/darkmatter/centaur/labels{/name}",
"releases_url": "https://api.github.com/repos/darkmatter/centaur/releases{/id}",
"deployments_url": "https://api.github.com/repos/darkmatter/centaur/deployments",
"created_at": "2026-07-11T06:11:04Z",
"updated_at": "2026-07-20T16:26:24Z",
"pushed_at": "2026-07-20T16:55:27Z",
"git_url": "git://github.com/darkmatter/centaur.git",
"ssh_url": "org-17834193@github.com:darkmatter/centaur.git",
"clone_url": "https://github.com/darkmatter/centaur.git",
"svn_url": "https://github.com/darkmatter/centaur",
"homepage": "https://centaur.run",
"size": 40497,
"stargazers_count": 0,
"watchers_count": 0,
"language": "Python",
"has_issues": false,
"has_projects": true,
"has_downloads": true,
"has_wiki": true,
"has_pages": false,
"has_discussions": false,
"forks_count": 0,
"mirror_url": null,
"archived": false,
"disabled": false,
"open_issues_count": 2,
"license": {
"key": "other",
"name": "Other",
"spdx_id": "NOASSERTION",
"url": null,
"node_id": "MDc6TGljZW5zZTA="
},
"allow_forking": true,
"is_template": false,
"web_commit_signoff_required": false,
"has_pull_requests": true,
"pull_request_creation_policy": "all",
"topics": [],
"visibility": "public",
"forks": 0,
"open_issues": 2,
"watchers": 0,
"default_branch": "main",
"custom_properties": {}
},
"organization": {
"login": "darkmatter",
"id": 17834193,
"node_id": "MDEyOk9yZ2FuaXphdGlvbjE3ODM0MTkz",
"url": "https://api.github.com/orgs/darkmatter",
"repos_url": "https://api.github.com/orgs/darkmatter/repos",
"events_url": "https://api.github.com/orgs/darkmatter/events",
"hooks_url": "https://api.github.com/orgs/darkmatter/hooks",
"issues_url": "https://api.github.com/orgs/darkmatter/issues",
"members_url": "https://api.github.com/orgs/darkmatter/members{/member}",
"public_members_url": "https://api.github.com/orgs/darkmatter/public_members{/member}",
"avatar_url": "https://avatars.githubusercontent.com/u/17834193?v=4",
"description": ""
},
"enterprise": {
"id": 469843,
"slug": "darkmatter",
"name": "darkmatter",
"node_id": "E_kgDOAAcrUw",
"avatar_url": "https://avatars.githubusercontent.com/b/469843?v=4",
"description": "",
"website_url": "darkmatter.io",
"html_url": "https://github.com/enterprises/darkmatter",
"created_at": "2025-09-07T16:01:00Z",
"updated_at": "2026-07-07T15:59:26Z"
},
"sender": {
"login": "czxtm",
"id": 1325802,
"node_id": "MDQ6VXNlcjEzMjU4MDI=",
"avatar_url": "https://avatars.githubusercontent.com/u/1325802?v=4",
"gravatar_id": "",
"url": "https://api.github.com/users/czxtm",
"html_url": "https://github.com/czxtm",
"followers_url": "https://api.github.com/users/czxtm/followers",
"following_url": "https://api.github.com/users/czxtm/following{/other_user}",
"gists_url": "https://api.github.com/users/czxtm/gists{/gist_id}",
"starred_url": "https://api.github.com/users/czxtm/starred{/owner}{/repo}",
"subscriptions_url": "https://api.github.com/users/czxtm/subscriptions",
"organizations_url": "https://api.github.com/users/czxtm/orgs",
"repos_url": "https://api.github.com/users/czxtm/repos",
"events_url": "https://api.github.com/users/czxtm/events{/privacy}",
"received_events_url": "https://api.github.com/users/czxtm/received_events",
"type": "User",
"user_view_type": "public",
"site_admin": false
},
"installation": {
"id": 131074261,
"node_id": "MDIzOkludGVncmF0aW9uSW5zdGFsbGF0aW9uMTMxMDc0MjYx"
}
}