{ "openapi": "3.1.0", "info": { "title": "GitDataAI API", "description": "GitDataAI platform REST API", "version": "1.0.0" }, "paths": { "/api/v1/agent/conversations": { "get": { "tags": [ "agent" ], "operationId": "agent_list_all_conversations", "parameters": [ { "name": "wk", "in": "query", "description": "Filter by workspace name", "required": false, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ConversationWithSessionResponse" } } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/agent/conversations/{id}": { "get": { "tags": [ "agent" ], "operationId": "agent_get_conversation", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConversationResponse" } } } } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "agent" ], "operationId": "agent_delete_conversation", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "" } }, "security": [ { "session": [] } ] }, "patch": { "tags": [ "agent" ], "operationId": "agent_update_conversation", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateConversation" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConversationResponse" } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/agent/conversations/{id}/messages": { "get": { "tags": [ "agent" ], "operationId": "agent_list_messages", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "before", "in": "query", "required": false, "schema": { "type": "string", "format": "uuid" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "format": "int32", "minimum": 0 } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/MessageResponse" } } } } } }, "security": [ { "session": [] } ] }, "post": { "tags": [ "agent" ], "operationId": "agent_send_message", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentRunRequest" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentRunResponse" } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/agent/conversations/{id}/stream": { "post": { "tags": [ "agent" ], "operationId": "agent_stream_agent", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentRunRequest" } } }, "required": true }, "responses": { "200": { "description": "SSE stream" } }, "security": [ { "session": [] } ] } }, "/api/v1/agent/sessions": { "get": { "tags": [ "agent" ], "operationId": "agent_list_sessions", "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AgentSessionResponse" } } } } } }, "security": [ { "session": [] } ] }, "post": { "tags": [ "agent" ], "operationId": "agent_create_session", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateAgentSession" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentSessionResponse" } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/agent/sessions/{id}": { "get": { "tags": [ "agent" ], "operationId": "agent_get_session", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentSessionResponse" } } } } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "agent" ], "operationId": "agent_delete_session", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "" } }, "security": [ { "session": [] } ] }, "patch": { "tags": [ "agent" ], "operationId": "agent_update_session", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateAgentSession" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentSessionResponse" } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/agent/sessions/{session_id}/conversations": { "get": { "tags": [ "agent" ], "operationId": "agent_list_conversations", "parameters": [ { "name": "session_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ConversationResponse" } } } } } }, "security": [ { "session": [] } ] }, "post": { "tags": [ "agent" ], "operationId": "agent_create_conversation", "parameters": [ { "name": "session_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateConversation" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConversationResponse" } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/ai/models": { "get": { "tags": [ "ai" ], "operationId": "ai_list_models", "parameters": [ { "name": "enabled", "in": "query", "required": false, "schema": { "type": [ "boolean", "null" ] } }, { "name": "provider", "in": "query", "required": false, "schema": { "type": [ "string", "null" ], "format": "uuid" } }, { "name": "modality", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } }, { "name": "name", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AiModelListItem" } } } } }, "401": { "description": "Unauthorized" } }, "security": [ { "session": [] } ] } }, "/api/v1/ai/models/{id}": { "get": { "tags": [ "ai" ], "operationId": "ai_get_model", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AiModelResponse" } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/ai/models/{id}/card": { "get": { "tags": [ "ai" ], "operationId": "ai_get_card", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/AiModelCardResponse" } ] } } } }, "401": { "description": "Unauthorized" } }, "security": [ { "session": [] } ] } }, "/api/v1/ai/models/{id}/discussions": { "get": { "tags": [ "ai" ], "operationId": "ai_list_discussions", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AiDiscussionResponse" } } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/ai/models/{id}/likes": { "get": { "tags": [ "ai" ], "operationId": "ai_list_likes", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AiLikeResponse" } } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/ai/models/{id}/tags": { "get": { "tags": [ "ai" ], "operationId": "ai_list_tags", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "string" } } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/ai/models/{id}/versions": { "get": { "tags": [ "ai" ], "operationId": "ai_list_versions", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AiModelVersionResponse" } } } } }, "401": { "description": "Unauthorized" } }, "security": [ { "session": [] } ] } }, "/api/v1/ai/providers": { "get": { "tags": [ "ai" ], "operationId": "ai_list_providers", "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AiProviderResponse" } } } } }, "401": { "description": "Unauthorized" } }, "security": [ { "session": [] } ] } }, "/api/v1/ai/providers/{id}": { "get": { "tags": [ "ai" ], "operationId": "ai_get_provider", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AiProviderResponse" } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/auth/2fa": { "get": { "tags": [ "auth" ], "operationId": "auth_status_2fa", "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Get2FAStatusResponse" } } } } } }, "delete": { "tags": [ "auth" ], "operationId": "auth_disable_2fa", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Disable2FAParams" } } }, "required": true }, "responses": { "200": { "description": "" } } } }, "/api/v1/auth/2fa/backup-codes": { "post": { "tags": [ "auth" ], "operationId": "auth_regenerate_backup_codes", "requestBody": { "content": { "text/plain": { "schema": { "type": "string" } } }, "required": true }, "responses": { "200": { "description": "" } } } }, "/api/v1/auth/2fa/enable": { "post": { "tags": [ "auth" ], "operationId": "auth_enable_2fa", "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Enable2FAResponse" } } } } } } }, "/api/v1/auth/2fa/verify": { "post": { "tags": [ "auth" ], "operationId": "auth_verify_2fa", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Verify2FAParams" } } }, "required": true }, "responses": { "200": { "description": "" } } } }, "/api/v1/auth/captcha": { "get": { "tags": [ "auth" ], "operationId": "auth_captcha", "parameters": [ { "name": "w", "in": "query", "required": true, "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, { "name": "h", "in": "query", "required": true, "schema": { "type": "integer", "format": "int32", "minimum": 0 } }, { "name": "dark", "in": "query", "required": true, "schema": { "type": "boolean" } }, { "name": "rsa", "in": "query", "required": true, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CaptchaResponse" } } } } } } }, "/api/v1/auth/email": { "get": { "tags": [ "auth" ], "operationId": "auth_get_email", "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EmailResponse" } } } } } }, "post": { "tags": [ "auth" ], "operationId": "auth_email_change_request", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EmailChangeRequest" } } }, "required": true }, "responses": { "200": { "description": "" } } } }, "/api/v1/auth/email/verify": { "post": { "tags": [ "auth" ], "operationId": "auth_email_verify", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EmailVerifyRequest" } } }, "required": true }, "responses": { "200": { "description": "" } } } }, "/api/v1/auth/login": { "post": { "tags": [ "auth" ], "operationId": "auth_login", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LoginParams" } } }, "required": true }, "responses": { "200": { "description": "" } } } }, "/api/v1/auth/logout": { "post": { "tags": [ "auth" ], "operationId": "auth_logout", "responses": { "200": { "description": "" } } } }, "/api/v1/auth/me": { "get": { "tags": [ "auth" ], "operationId": "auth_me", "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContextMe" } } } } } } }, "/api/v1/auth/public-key": { "get": { "tags": [ "auth" ], "operationId": "auth_rsa", "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RsaResponse" } } } } } } }, "/api/v1/auth/register": { "post": { "tags": [ "auth" ], "operationId": "auth_register", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegisterParams" } } }, "required": true }, "responses": { "200": { "description": "" } } } }, "/api/v1/auth/reset-password/request": { "post": { "tags": [ "auth" ], "operationId": "auth_reset_password_request", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResetPasswordRequest" } } }, "required": true }, "responses": { "200": { "description": "" } } } }, "/api/v1/auth/reset-password/verify": { "post": { "tags": [ "auth" ], "operationId": "auth_reset_password_verify", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResetPasswordVerifyParams" } } }, "required": true }, "responses": { "200": { "description": "" } } } }, "/api/v1/search": { "get": { "tags": [ "search" ], "operationId": "search", "parameters": [ { "name": "q", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SearchResponse" } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/user/access-tokens": { "get": { "tags": [ "user" ], "operationId": "user_list_access_tokens", "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/UserAccessToken" } } } } } } }, "post": { "tags": [ "user" ], "operationId": "user_create_access_token", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateUserAccessToken" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreatedUserAccessToken" } } } } } } }, "/api/v1/user/access-tokens/{id}": { "put": { "tags": [ "user" ], "operationId": "user_update_access_token", "parameters": [ { "name": "id", "in": "path", "description": "Access token ID", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateUserAccessToken" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserAccessToken" } } } } } }, "delete": { "tags": [ "user" ], "operationId": "user_revoke_access_token", "parameters": [ { "name": "id", "in": "path", "description": "Access token ID", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "" } } } }, "/api/v1/user/avatar": { "post": { "tags": [ "user" ], "operationId": "user_upload_avatar", "requestBody": { "content": { "image/*": { "schema": { "type": "array", "items": { "type": "integer", "format": "int32", "minimum": 0 } } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AvatarUploadResponse" } } } }, "400": { "description": "Invalid file type or size" } } } }, "/api/v1/user/config": { "get": { "tags": [ "user" ], "operationId": "user_config", "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserConfigResponse" } } } } } } }, "/api/v1/user/config/accessibility": { "put": { "tags": [ "user" ], "operationId": "user_update_accessibility", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateUserAccessibilityConfig" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserAccessibilityConfig" } } } } } } }, "/api/v1/user/config/appearance": { "put": { "tags": [ "user" ], "operationId": "user_update_appearance", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateUserAppearanceConfig" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserAppearanceConfig" } } } } } } }, "/api/v1/user/config/notification": { "put": { "tags": [ "user" ], "operationId": "user_update_notification", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateUserNotificationConfig" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserNotificationConfig" } } } } } } }, "/api/v1/user/config/privacy": { "put": { "tags": [ "user" ], "operationId": "user_update_privacy", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateUserPrivacyConfig" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserPrivacyConfig" } } } } } } }, "/api/v1/user/config/profile": { "put": { "tags": [ "user" ], "operationId": "user_update_profile", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateUserProfileConfig" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserProfileConfig" } } } } } } }, "/api/v1/user/contribution-heatmap": { "get": { "tags": [ "user" ], "operationId": "user_contribution_heatmap", "parameters": [ { "name": "start_date", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } }, { "name": "end_date", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContributionHeatmapResponse" } } } } } } }, "/api/v1/user/contribution-heatmap/cache": { "delete": { "tags": [ "user" ], "operationId": "user_invalidate_chpc_cache", "responses": { "200": { "description": "" } } } }, "/api/v1/user/ssh-keys": { "get": { "tags": [ "user" ], "operationId": "user_list_ssh_keys", "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/UserSshKey" } } } } } } }, "post": { "tags": [ "user" ], "operationId": "user_add_ssh_key", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateUserSshKey" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserSshKey" } } } } } } }, "/api/v1/user/ssh-keys/{id}": { "put": { "tags": [ "user" ], "operationId": "user_update_ssh_key", "parameters": [ { "name": "id", "in": "path", "description": "SSH key ID", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateUserSshKey" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserSshKey" } } } } } }, "delete": { "tags": [ "user" ], "operationId": "user_revoke_ssh_key", "parameters": [ { "name": "id", "in": "path", "description": "SSH key ID", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "" } } } }, "/api/v1/users/avatar/{username}": { "get": { "tags": [ "users" ], "operationId": "users_user_avatar", "parameters": [ { "name": "username", "in": "path", "description": "Username", "required": true, "schema": { "type": "string" } } ], "responses": { "302": { "description": "Redirect to avatar image URL" }, "404": { "description": "User or avatar not found" } } } }, "/api/v1/users/blocked": { "get": { "tags": [ "users" ], "operationId": "users_blocked_list", "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/UserRelationCard" } } } } } } } }, "/api/v1/users/{username}/block": { "post": { "tags": [ "users" ], "operationId": "users_block_user", "parameters": [ { "name": "username", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserRelationStatus" } } } } } } }, "/api/v1/users/{username}/contribution-heatmap": { "get": { "tags": [ "users" ], "operationId": "users_user_chpc", "parameters": [ { "name": "username", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "start_date", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } }, { "name": "end_date", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContributionHeatmapResponse" } } } } } } }, "/api/v1/users/{username}/follow": { "post": { "tags": [ "users" ], "operationId": "users_follow_user", "parameters": [ { "name": "username", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserRelationStatus" } } } } } } }, "/api/v1/users/{username}/followers": { "get": { "tags": [ "users" ], "operationId": "users_followers", "parameters": [ { "name": "username", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/UserRelationCard" } } } } } } } }, "/api/v1/users/{username}/following": { "get": { "tags": [ "users" ], "operationId": "users_following", "parameters": [ { "name": "username", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/UserRelationCard" } } } } } } } }, "/api/v1/users/{username}/public": { "get": { "tags": [ "users" ], "operationId": "users_user_public", "parameters": [ { "name": "username", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PublicUserResponse" } } } } } } }, "/api/v1/users/{username}/relation": { "get": { "tags": [ "users" ], "operationId": "users_relation_status", "parameters": [ { "name": "username", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserRelationStatus" } } } } } } }, "/api/v1/users/{username}/relation-counts": { "get": { "tags": [ "users" ], "operationId": "users_relation_counts", "parameters": [ { "name": "username", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserRelationCounts" } } } } } } }, "/api/v1/users/{username}/summary": { "get": { "tags": [ "users" ], "operationId": "users_user_summary", "parameters": [ { "name": "username", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserSummaryResponse" } } } } } } }, "/api/v1/users/{username}/unblock": { "post": { "tags": [ "users" ], "operationId": "users_unblock_user", "parameters": [ { "name": "username", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserRelationStatus" } } } } } } }, "/api/v1/users/{username}/unfollow": { "post": { "tags": [ "users" ], "operationId": "users_unfollow_user", "parameters": [ { "name": "username", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserRelationStatus" } } } } } } }, "/api/v1/workspace": { "post": { "tags": [ "workspace" ], "operationId": "workspace_create_workspace", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateWorkspace" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceResponse" } } } }, "401": { "description": "Unauthorized" }, "409": { "description": "Workspace name already exists" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/join/my-applies": { "get": { "tags": [ "workspace" ], "operationId": "workspace_my_join_applies", "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/WorkspaceJoinApplyResponse" } } } } }, "401": { "description": "Unauthorized" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/my": { "get": { "tags": [ "workspace" ], "operationId": "workspace_my_workspaces", "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/WorkspaceResponse" } } } } }, "401": { "description": "Unauthorized" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}": { "get": { "tags": [ "workspace" ], "operationId": "workspace_get_workspace", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceResponse" } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Workspace not found" } }, "security": [ { "session": [] } ] }, "put": { "tags": [ "workspace" ], "operationId": "workspace_update_workspace", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateWorkspace" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceResponse" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" }, "404": { "description": "Workspace not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/avatar": { "get": { "tags": [ "workspace" ], "operationId": "workspace_get_avatar", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } } ], "responses": { "302": { "description": "Redirect to avatar image URL" }, "404": { "description": "Workspace or avatar not found" } } }, "post": { "tags": [ "workspace" ], "operationId": "workspace_upload_avatar", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "image/*": { "schema": { "type": "array", "items": { "type": "integer", "format": "int32", "minimum": 0 } } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AvatarUploadResponse" } } } }, "400": { "description": "Invalid file type or size" }, "403": { "description": "Permission denied" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/groups": { "get": { "tags": [ "workspace" ], "operationId": "workspace_list_groups", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/WorkspaceGroupResponse" } } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Workspace not found" } }, "security": [ { "session": [] } ] }, "post": { "tags": [ "workspace" ], "operationId": "workspace_create_group", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateWorkspaceGroup" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceGroupResponse" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/groups/{group_name}": { "put": { "tags": [ "workspace" ], "operationId": "workspace_update_group", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "group_name", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateWorkspaceGroup" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceGroupResponse" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" }, "404": { "description": "Group not found" } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "workspace" ], "operationId": "workspace_delete_group", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "group_name", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Group deleted" }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" }, "404": { "description": "Group not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/groups/{group_name}/members": { "get": { "tags": [ "workspace" ], "operationId": "workspace_list_group_members", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "group_name", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/WorkspaceMemberResponse" } } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Group not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/groups/{group_name}/members/{username}": { "post": { "tags": [ "workspace" ], "operationId": "workspace_add_group_member", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "group_name", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "username", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Member added to group" }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "workspace" ], "operationId": "workspace_remove_group_member", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "group_name", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "username", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Member removed from group" }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/issues": { "get": { "tags": [ "issues" ], "operationId": "issues_list_issues", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } }, { "name": "state", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } }, { "name": "label", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } }, { "name": "milestone", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } }, { "name": "assignee", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } }, { "name": "priority", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/IssueResponse" } } } } }, "401": { "description": "Unauthorized" } }, "security": [ { "session": [] } ] }, "post": { "tags": [ "issues" ], "operationId": "issues_create_issue", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateIssue" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IssueResponse" } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Workspace not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/issues/{number}": { "get": { "tags": [ "issues" ], "operationId": "issues_get_issue", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IssueResponse" } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Issue not found" } }, "security": [ { "session": [] } ] }, "put": { "tags": [ "issues" ], "operationId": "issues_update_issue", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateIssue" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IssueResponse" } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Issue not found" } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "issues" ], "operationId": "issues_delete_issue", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "Issue deleted" }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" }, "404": { "description": "Issue not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/issues/{number}/assignees": { "post": { "tags": [ "issues" ], "operationId": "issues_assign_user", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssignIssueUser" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/IssueAuthor" } } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Issue not found" } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "issues" ], "operationId": "issues_unassign_user", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/IssueAuthor" } } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Issue not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/issues/{number}/close": { "post": { "tags": [ "issues" ], "operationId": "issues_close_issue", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IssueResponse" } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Issue not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/issues/{number}/comments": { "get": { "tags": [ "issues" ], "operationId": "issues_list_comments", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "description": "Issue number", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/IssueCommentResponse" } } } } }, "401": { "description": "Unauthorized" } }, "security": [ { "session": [] } ] }, "post": { "tags": [ "issues" ], "operationId": "issues_create_comment", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "description": "Issue number", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateComment" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IssueCommentResponse" } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Issue not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/issues/{number}/comments/{comment_id}": { "put": { "tags": [ "issues" ], "operationId": "issues_update_comment", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } }, { "name": "comment_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateComment" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IssueCommentResponse" } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Comment not found" } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "issues" ], "operationId": "issues_delete_comment", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } }, { "name": "comment_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Comment deleted" }, "401": { "description": "Unauthorized" }, "404": { "description": "Comment not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/issues/{number}/comments/{comment_id}/reactions": { "post": { "tags": [ "issues" ], "operationId": "issues_add_comment_reaction", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "description": "Issue number", "required": true, "schema": { "type": "integer", "format": "int64" } }, { "name": "comment_id", "in": "path", "description": "Comment ID", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddReaction" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/IssueReactionResponse" } } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Comment not found" } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "issues" ], "operationId": "issues_remove_comment_reaction", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "description": "Issue number", "required": true, "schema": { "type": "integer", "format": "int64" } }, { "name": "comment_id", "in": "path", "description": "Comment ID", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/IssueReactionResponse" } } } } }, "401": { "description": "Unauthorized" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/issues/{number}/events": { "get": { "tags": [ "issues" ], "operationId": "issues_list_events", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "description": "Issue number", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/IssueEventResponse" } } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Issue not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/issues/{number}/labels": { "post": { "tags": [ "issues" ], "operationId": "issues_add_issue_label", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "description": "Issue number", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddIssueLabel" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LabelResponse" } } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Issue or label not found" } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "issues" ], "operationId": "issues_remove_issue_label", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "description": "Issue number", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LabelResponse" } } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Issue or label not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/issues/{number}/milestone": { "post": { "tags": [ "issues" ], "operationId": "issues_set_issue_milestone", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "description": "Issue number", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SetIssueMilestone" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/MilestoneResponse" } ] } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Issue or milestone not found" } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "issues" ], "operationId": "issues_clear_issue_milestone", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "description": "Issue number", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "Milestone cleared" }, "401": { "description": "Unauthorized" }, "404": { "description": "Issue not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/issues/{number}/pull-requests": { "post": { "tags": [ "issues" ], "operationId": "issues_bind_pull_request", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "description": "Issue number", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BindIssuePullRequest" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/IssuePullRequestResponse" } } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Issue or PR not found" } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "issues" ], "operationId": "issues_unbind_pull_request", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "description": "Issue number", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/IssuePullRequestResponse" } } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Issue or PR not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/issues/{number}/reactions": { "post": { "tags": [ "issues" ], "operationId": "issues_add_reaction", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "description": "Issue number", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddReaction" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/IssueReactionResponse" } } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Issue not found" } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "issues" ], "operationId": "issues_remove_reaction", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "description": "Issue number", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/IssueReactionResponse" } } } } }, "401": { "description": "Unauthorized" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/issues/{number}/reopen": { "post": { "tags": [ "issues" ], "operationId": "issues_reopen_issue", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IssueResponse" } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Issue not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/issues/{number}/repos": { "post": { "tags": [ "issues" ], "operationId": "issues_bind_repo", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "description": "Issue number", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BindIssueRepo" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/IssueRepoResponse" } } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Issue or repo not found" } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "issues" ], "operationId": "issues_unbind_repo", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "description": "Issue number", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/IssueRepoResponse" } } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Issue or repo not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/join-strategy": { "get": { "tags": [ "workspace" ], "operationId": "workspace_join_strategy", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceJoinStrategyResponse" } } } }, "404": { "description": "Workspace not found" } } }, "put": { "tags": [ "workspace" ], "operationId": "workspace_update_join_strategy", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateWorkspaceJoinStrategy" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceJoinStrategyResponse" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" }, "404": { "description": "Workspace not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/join/applies": { "get": { "tags": [ "workspace" ], "operationId": "workspace_list_join_applies", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } }, { "name": "status", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/WorkspaceJoinApplyResponse" } } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/join/applies/{username}/approve": { "post": { "tags": [ "workspace" ], "operationId": "workspace_approve_join", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "username", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApproveWorkspaceJoinApply" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceJoinApprovalResponse" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" }, "404": { "description": "Application not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/join/apply": { "post": { "tags": [ "workspace" ], "operationId": "workspace_apply_join", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateWorkspaceJoinApply" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceJoinApplyResponse" } } } }, "401": { "description": "Unauthorized" }, "409": { "description": "Already a member or pending application" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/join/cancel": { "post": { "tags": [ "workspace" ], "operationId": "workspace_cancel_join", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceJoinApplyResponse" } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Application not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/labels": { "get": { "tags": [ "issues" ], "operationId": "issues_list_labels", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LabelResponse" } } } } }, "401": { "description": "Unauthorized" } }, "security": [ { "session": [] } ] }, "post": { "tags": [ "issues" ], "operationId": "issues_create_label", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateLabel" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LabelResponse" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/labels/{label_id}": { "put": { "tags": [ "issues" ], "operationId": "issues_update_label", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "label_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateLabel" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LabelResponse" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" }, "404": { "description": "Label not found" } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "issues" ], "operationId": "issues_delete_label", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "label_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Label deleted" }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" }, "404": { "description": "Label not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/members": { "get": { "tags": [ "workspace" ], "operationId": "workspace_list_members", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/WorkspaceMemberResponse" } } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Workspace not found" } }, "security": [ { "session": [] } ] }, "post": { "tags": [ "workspace" ], "operationId": "workspace_add_member", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddWorkspaceMember" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceMemberResponse" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/members/{username}": { "put": { "tags": [ "workspace" ], "operationId": "workspace_update_member", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "username", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateWorkspaceMember" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WorkspaceMemberResponse" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "workspace" ], "operationId": "workspace_remove_member", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "username", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Member removed" }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/milestones": { "get": { "tags": [ "issues" ], "operationId": "issues_list_milestones", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/MilestoneResponse" } } } } }, "401": { "description": "Unauthorized" } }, "security": [ { "session": [] } ] }, "post": { "tags": [ "issues" ], "operationId": "issues_create_milestone", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateMilestone" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MilestoneResponse" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/milestones/{milestone_id}": { "put": { "tags": [ "issues" ], "operationId": "issues_update_milestone", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "milestone_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateMilestone" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MilestoneResponse" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" }, "404": { "description": "Milestone not found" } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "issues" ], "operationId": "issues_delete_milestone", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "milestone_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Milestone deleted" }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" }, "404": { "description": "Milestone not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos": { "get": { "tags": [ "git" ], "operationId": "git_list_repos", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } }, { "name": "visibility", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } }, { "name": "is_archived", "in": "query", "required": false, "schema": { "type": [ "boolean", "null" ] } }, { "name": "search", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/RepoResponse" } } } } }, "401": { "description": "Unauthorized" } }, "security": [ { "session": [] } ] }, "post": { "tags": [ "git" ], "operationId": "git_create_repo", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateRepo" } } }, "required": true }, "responses": { "200": { "description": "Repo created" }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" }, "409": { "description": "Repo name exists" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/clone": { "post": { "tags": [ "git" ], "operationId": "git_clone_repo", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CloneRepo" } } }, "required": true }, "responses": { "200": { "description": "Repo cloned" }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" }, "409": { "description": "Repo name exists" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}": { "get": { "tags": [ "git" ], "operationId": "git_get_repo", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepoResponse" } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Repo not found" } }, "security": [ { "session": [] } ] }, "put": { "tags": [ "git" ], "operationId": "git_update_repo", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateRepo" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepoResponse" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" }, "404": { "description": "Repo not found" } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "git" ], "operationId": "git_delete_repo", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Repo deleted" }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied - owner only" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/archive": { "post": { "tags": [ "git" ], "operationId": "git_archive_repo", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepoResponse" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/commits/{sha}/status": { "get": { "tags": [ "git" ], "operationId": "git_combined_status", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "sha", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CombinedCommitStatus" } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/commits/{sha}/statuses": { "get": { "tags": [ "git" ], "operationId": "git_list_statuses", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "sha", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/CommitStatusResponse" } } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/compare/{basehead}": { "get": { "tags": [ "git" ], "operationId": "git_compare", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "basehead", "in": "path", "description": "Comparison in format 'base...head'", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CompareResponse" } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/contents/{path}": { "get": { "tags": [ "git" ], "operationId": "git_get_contents", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "path", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "ref", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } }, { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContentResponse" } } } } }, "security": [ { "session": [] } ] }, "put": { "tags": [ "git" ], "operationId": "git_update_contents", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "path", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateContent" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContentResponse" } } } } }, "security": [ { "session": [] } ] }, "post": { "tags": [ "git" ], "operationId": "git_create_contents", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "path", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateContent" } } }, "required": true }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ContentResponse" } } } } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "git" ], "operationId": "git_delete_contents", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "path", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "message", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "sha", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "branch", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } }, { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "204": { "description": "" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/forks": { "get": { "tags": [ "git" ], "operationId": "git_list_forks", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ForkResponse" } } } } }, "401": { "description": "Unauthorized" } }, "security": [ { "session": [] } ] }, "post": { "tags": [ "git" ], "operationId": "git_create_fork", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateFork" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ForkResponse" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Cannot fork private repo" }, "409": { "description": "Fork already exists" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/git/archive": { "get": { "tags": [ "git" ], "operationId": "git_archive", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "format", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "tree", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } }, { "name": "prefix", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } }, { "name": "pathspec", "in": "query", "required": false, "schema": { "type": [ "array", "null" ], "items": { "type": "string" } } } ], "responses": { "200": { "description": "Archive download" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/git/blame": { "get": { "tags": [ "git" ], "operationId": "git_blame_file", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "path", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "rev", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } }, { "name": "start_line", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } }, { "name": "end_line", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } } ], "responses": { "200": { "description": "Blame result", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BlameFileResponseDto" } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/git/blobs": { "post": { "tags": [ "git" ], "operationId": "git_blob_upload", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BlobUploadBody" } } }, "required": true }, "responses": { "200": { "description": "Upload result", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BlobUploadResponseDto" } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/git/blobs/{oid}": { "get": { "tags": [ "git" ], "operationId": "git_blob_info", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "oid", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "path", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } } ], "responses": { "200": { "description": "Blob info", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BlobInfoResponse" } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/git/branches": { "get": { "tags": [ "git" ], "operationId": "git_list_branches", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } }, { "name": "summary", "in": "query", "required": false, "schema": { "type": "boolean" } }, { "name": "default_only", "in": "query", "required": false, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Branch list or summary", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BranchListResponseDto" } } } } }, "security": [ { "session": [] } ] }, "post": { "tags": [ "git" ], "description": "BranchForkParams { name, oid, force }", "operationId": "git_fork_branch", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object" } } }, "required": true }, "responses": { "200": { "description": "Branch created" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/git/branches/{name}": { "get": { "tags": [ "git" ], "operationId": "git_branch_info", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "name", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Branch info", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BranchInfoResponseDto" } } } } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "git" ], "operationId": "git_delete_branch", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "name", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "force", "in": "query", "required": false, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Branch deleted" } }, "security": [ { "session": [] } ] }, "patch": { "tags": [ "git" ], "operationId": "git_rename_branch", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "name", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RenameBranchBody" } } }, "required": true }, "responses": { "200": { "description": "Branch renamed" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/git/branches/{name}/ahead-behind": { "get": { "tags": [ "git" ], "operationId": "git_ahead_behind", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "name", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "remote_branch", "in": "query", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Ahead/behind counts", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BranchAheadBehindResponseDto" } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/git/branches/{name}/upstream": { "get": { "tags": [ "git" ], "operationId": "git_branch_upstream", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "name", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Upstream branch", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BranchUpstreamResponseDto" } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/git/commits": { "get": { "tags": [ "git" ], "operationId": "git_list_commits", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "summary", "in": "query", "required": false, "schema": { "type": "boolean" } }, { "name": "refs", "in": "query", "required": false, "schema": { "type": "boolean" } }, { "name": "prefix", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } } ], "responses": { "200": { "description": "Commit list / summary / refs / prefix", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommitHistoryResponseDto" } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/git/commits/cherry-pick": { "post": { "tags": [ "git" ], "description": "CommitCherryPickParams", "operationId": "git_cherry_pick", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object" } } }, "required": true }, "responses": { "200": { "description": "Cherry-pick result", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CherryPickResponseDto" } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/git/commits/history": { "get": { "tags": [ "git" ], "operationId": "git_commit_history", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int64", "minimum": 0 } }, { "name": "skip", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int64", "minimum": 0 } }, { "name": "sort", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32" } }, { "name": "branch", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } } ], "responses": { "200": { "description": "Commit history", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommitHistoryResponseDto" } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/git/commits/walk": { "post": { "tags": [ "git" ], "description": "CommitWalkParams", "operationId": "git_commit_walk", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object" } } }, "required": true }, "responses": { "200": { "description": "Walk result", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommitHistoryResponseDto" } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/git/commits/{oid}": { "get": { "tags": [ "git" ], "operationId": "git_commit_info", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "oid", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Commit info", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommitInfoResponseDto" } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/git/commits/{oid}/tree": { "get": { "tags": [ "git" ], "operationId": "git_tree_entry_by_path_from_commit", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "oid", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "path", "in": "query", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Tree entry", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TreeEntryByPathResponseDto" } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/git/contributors": { "get": { "tags": [ "git" ], "operationId": "git_list_contributors", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } } ], "responses": { "200": { "description": "Contributor list", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ContributorDto" } } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/git/diff": { "get": { "tags": [ "git" ], "operationId": "git_diff", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "old_oid", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } }, { "name": "new_oid", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } }, { "name": "old_tree", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } }, { "name": "new_tree", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } }, { "name": "tree_oid", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } }, { "name": "mode", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "path", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } } ], "responses": { "200": { "description": "Diff result" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/git/diff/branches": { "get": { "tags": [ "git" ], "operationId": "git_diff_branches", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "old_branch", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "new_branch", "in": "query", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Branch diff", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DiffResultDto" } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/git/languages": { "get": { "tags": [ "git" ], "operationId": "git_get_languages", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Language stats", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LanguageStatDto" } } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/git/readme": { "get": { "tags": [ "git" ], "operationId": "git_get_readme", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "README content", "content": { "application/json": { "schema": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/ReadmeDto" } ] } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/git/refs": { "get": { "tags": [ "git" ], "operationId": "git_list_refs", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "ref", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/GitRefResponse" } } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/git/star": { "get": { "tags": [ "git" ], "operationId": "git_star_status", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Star status" } }, "security": [ { "session": [] } ] }, "post": { "tags": [ "git" ], "operationId": "git_star_repo", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Star/unstar result" } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "git" ], "operationId": "git_unstar_repo", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Star/unstar result" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/git/tags": { "get": { "tags": [ "git" ], "operationId": "git_list_tags", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } }, { "name": "summary", "in": "query", "required": false, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Tag summary", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TagSummaryResponseDto" } } } } }, "security": [ { "session": [] } ] }, "post": { "tags": [ "git" ], "description": "TagInitParams { name, oid, message, tagger, force }", "operationId": "git_init_tag", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object" } } }, "required": true }, "responses": { "200": { "description": "Tag created", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TagInitResponseDto" } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/git/tags/{name}": { "get": { "tags": [ "git" ], "operationId": "git_tag_info", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "name", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Tag info", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TagInfoResponseDto" } } } } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "git" ], "operationId": "git_delete_tag", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "name", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Tag deleted" } }, "security": [ { "session": [] } ] }, "patch": { "tags": [ "git" ], "operationId": "git_update_tag", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "name", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object" } } }, "required": true }, "responses": { "200": { "description": "Tag message updated" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/git/trees/{oid}": { "get": { "tags": [ "git" ], "operationId": "git_tree_entries", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "oid", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "path", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } }, { "name": "last", "in": "query", "required": false, "schema": { "type": "boolean" } }, { "name": "resolve", "in": "query", "required": false, "schema": { "type": "boolean" } } ], "responses": { "200": { "description": "Tree entries", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TreeEntriesResponseDto" } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/git/trees/{tree_oid}/entries": { "get": { "tags": [ "git" ], "operationId": "git_tree_entry_by_path", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "tree_oid", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "path", "in": "query", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Tree entry", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TreeEntryByPathResponseDto" } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/git/watch": { "get": { "tags": [ "git" ], "operationId": "git_watch_status", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Watch status" } }, "security": [ { "session": [] } ] }, "post": { "tags": [ "git" ], "description": "WatchLevel {level: String}", "operationId": "git_watch_repo", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "object" } } }, "required": true }, "responses": { "200": { "description": "Watch result" } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "git" ], "operationId": "git_unwatch_repo", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "Watch result" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/protect": { "get": { "tags": [ "git" ], "operationId": "git_list_protects", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ProtectResponse" } } } } }, "401": { "description": "Unauthorized" } }, "security": [ { "session": [] } ] }, "post": { "tags": [ "git" ], "operationId": "git_create_protect", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateProtect" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProtectResponse" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/protect/{protect_id}": { "put": { "tags": [ "git" ], "operationId": "git_update_protect", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "protect_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateProtect" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProtectResponse" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" }, "404": { "description": "Rule not found" } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "git" ], "operationId": "git_delete_protect", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "protect_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Rule deleted" }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" }, "404": { "description": "Rule not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/pull-requests": { "get": { "tags": [ "pull_request" ], "operationId": "pull_request_list_prs", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "description": "Repo name", "required": true, "schema": { "type": "string" } }, { "name": "state", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } }, { "name": "author", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } }, { "name": "assignee", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } }, { "name": "label", "in": "query", "required": false, "schema": { "type": [ "string", "null" ] } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PullRequestResponse" } } } } }, "401": { "description": "Unauthorized" } }, "security": [ { "session": [] } ] }, "post": { "tags": [ "pull_request" ], "operationId": "pull_request_create_pr", "parameters": [ { "name": "wk", "in": "path", "description": "Workspace name", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "description": "Repo name", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreatePullRequest" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PullRequestResponse" } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Repo not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/pull-requests/{number}": { "get": { "tags": [ "pull_request" ], "operationId": "pull_request_get_pr", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PullRequestResponse" } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "PR not found" } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "pull_request" ], "operationId": "pull_request_delete_pr", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "PR deleted" }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" }, "404": { "description": "PR not found" } }, "security": [ { "session": [] } ] }, "patch": { "tags": [ "pull_request" ], "operationId": "pull_request_update_pr", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdatePullRequest" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PullRequestResponse" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Only author can update" }, "404": { "description": "PR not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/pull-requests/{number}/assignees": { "post": { "tags": [ "pull_request" ], "operationId": "pull_request_assign_user", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AssignPrUser" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/IssueAuthor" } } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "PR not found" } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "pull_request" ], "operationId": "pull_request_unassign_user", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/IssueAuthor" } } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "PR not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/pull-requests/{number}/comments": { "get": { "tags": [ "pull_request" ], "operationId": "pull_request_list_comments", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PullRequestCommentResponse" } } } } }, "401": { "description": "Unauthorized" } }, "security": [ { "session": [] } ] }, "post": { "tags": [ "pull_request" ], "operationId": "pull_request_create_comment", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreatePrComment" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PullRequestCommentResponse" } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "PR not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/pull-requests/{number}/comments/{comment_id}": { "put": { "tags": [ "pull_request" ], "operationId": "pull_request_update_comment", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } }, { "name": "comment_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdatePrComment" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PullRequestCommentResponse" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Only author can update" }, "404": { "description": "Comment not found" } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "pull_request" ], "operationId": "pull_request_delete_comment", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } }, { "name": "comment_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Comment deleted" }, "401": { "description": "Unauthorized" }, "404": { "description": "Comment not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/pull-requests/{number}/comments/{comment_id}/reactions": { "post": { "tags": [ "pull_request" ], "operationId": "pull_request_add_comment_reaction", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } }, { "name": "comment_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddPrReaction" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PullRequestReactionResponse" } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "Comment not found" } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "pull_request" ], "operationId": "pull_request_remove_comment_reaction", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } }, { "name": "comment_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Reaction removed" }, "401": { "description": "Unauthorized" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/pull-requests/{number}/labels": { "post": { "tags": [ "pull_request" ], "operationId": "pull_request_add_label", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddPrLabel" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LabelResponse" } } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "PR or label not found" } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "pull_request" ], "operationId": "pull_request_remove_label", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LabelResponse" } } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "PR or label not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/pull-requests/{number}/merge": { "get": { "tags": [ "pull_request" ], "operationId": "pull_request_merge_analysis", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "Merge analysis result" }, "401": { "description": "Unauthorized" }, "404": { "description": "PR not found" } }, "security": [ { "session": [] } ] }, "post": { "tags": [ "pull_request" ], "operationId": "pull_request_merge_pr", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MergePullRequest" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PullRequestResponse" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" }, "404": { "description": "PR not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/pull-requests/{number}/reactions": { "post": { "tags": [ "pull_request" ], "operationId": "pull_request_add_reaction", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddPrReaction" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PullRequestReactionResponse" } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "PR not found" } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "pull_request" ], "operationId": "pull_request_remove_reaction", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "Reaction removed" }, "401": { "description": "Unauthorized" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/pull-requests/{number}/review-comments": { "post": { "tags": [ "pull_request" ], "operationId": "pull_request_create_review_comment", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreatePrReviewComment" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PullRequestReviewCommentResponse" } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "PR not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/pull-requests/{number}/reviews": { "get": { "tags": [ "pull_request" ], "operationId": "pull_request_list_reviews", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/PullRequestReviewResponse" } } } } }, "401": { "description": "Unauthorized" } }, "security": [ { "session": [] } ] }, "post": { "tags": [ "pull_request" ], "operationId": "pull_request_create_review", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreatePrReview" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PullRequestReviewResponse" } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "PR not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/pull-requests/{number}/reviews/{review_id}/dismiss": { "post": { "tags": [ "pull_request" ], "operationId": "pull_request_dismiss_review", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } }, { "name": "review_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DismissPrReview" } } }, "required": true }, "responses": { "200": { "description": "Review dismissed" }, "401": { "description": "Unauthorized" }, "404": { "description": "Review not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/pull-requests/{number}/update-branch": { "post": { "tags": [ "pull_request" ], "operationId": "pull_request_update_branch", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "number", "in": "path", "required": true, "schema": { "type": "integer", "format": "int64" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PullRequestResponse" } } } }, "401": { "description": "Unauthorized" }, "404": { "description": "PR not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/releases": { "get": { "tags": [ "git" ], "operationId": "git_list_releases", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/ReleaseResponse" } } } } } }, "security": [ { "session": [] } ] }, "post": { "tags": [ "git" ], "operationId": "git_create_release", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateRelease" } } }, "required": true }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReleaseResponse" } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/releases/tags/{tag}": { "get": { "tags": [ "git" ], "operationId": "git_get_release_by_tag", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "tag", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReleaseResponse" } } } } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "git" ], "operationId": "git_delete_release_by_tag", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "tag", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "204": { "description": "" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/releases/{id}": { "get": { "tags": [ "git" ], "operationId": "git_get_release", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReleaseResponse" } } } } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "git" ], "operationId": "git_delete_release", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "" } }, "security": [ { "session": [] } ] }, "patch": { "tags": [ "git" ], "operationId": "git_update_release", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateRelease" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReleaseResponse" } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/statuses/{sha}": { "post": { "tags": [ "git" ], "operationId": "git_create_status", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "sha", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateCommitStatus" } } }, "required": true }, "responses": { "201": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CommitStatusResponse" } } } } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/topics": { "get": { "tags": [ "git" ], "operationId": "git_get_topics", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "string" } } } } }, "401": { "description": "Unauthorized" } }, "security": [ { "session": [] } ] }, "put": { "tags": [ "git" ], "operationId": "git_update_topics", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "type": "array", "items": { "type": "string" } } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "type": "string" } } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/transfer": { "post": { "tags": [ "git" ], "operationId": "git_transfer_repo", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TransferRepo" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RepoResponse" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied - owner only" }, "409": { "description": "Name conflict in target workspace" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/webhooks": { "get": { "tags": [ "git" ], "operationId": "git_list_webhooks", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/WebhookResponse" } } } } }, "401": { "description": "Unauthorized" } }, "security": [ { "session": [] } ] }, "post": { "tags": [ "git" ], "operationId": "git_create_webhook", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateWebhook" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WebhookResponse" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/webhooks/{webhook_id}": { "put": { "tags": [ "git" ], "operationId": "git_update_webhook", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "webhook_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateWebhook" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/WebhookResponse" } } } }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" }, "404": { "description": "Webhook not found" } }, "security": [ { "session": [] } ] }, "delete": { "tags": [ "git" ], "operationId": "git_delete_webhook", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "webhook_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Webhook deleted" }, "401": { "description": "Unauthorized" }, "403": { "description": "Permission denied" }, "404": { "description": "Webhook not found" } }, "security": [ { "session": [] } ] } }, "/api/v1/workspace/{wk}/repos/{repo}/webhooks/{webhook_id}/deliveries": { "get": { "tags": [ "git" ], "operationId": "git_list_deliveries", "parameters": [ { "name": "wk", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "repo", "in": "path", "required": true, "schema": { "type": "string" } }, { "name": "webhook_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 } } ], "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/WebhookDeliveryResponse" } } } } }, "401": { "description": "Unauthorized" } }, "security": [ { "session": [] } ] } }, "/api/v1/ws/articles/{article_id}/comments": { "get": { "tags": [ "channel" ], "operationId": "channel_article_comment_list", "parameters": [ { "name": "before", "in": "query", "required": false, "schema": { "type": [ "string", "null" ], "format": "uuid" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int64" } }, { "name": "article_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Comment list" } } }, "post": { "tags": [ "channel" ], "operationId": "channel_article_comment_create", "parameters": [ { "name": "article_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ArticleCommentCreateRequest" } } }, "required": true }, "responses": { "201": { "description": "Comment created" } } } }, "/api/v1/ws/articles/{article_id}/comments/{comment_id}": { "delete": { "tags": [ "channel" ], "operationId": "channel_article_comment_delete", "parameters": [ { "name": "article_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "comment_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "Comment deleted" } } } }, "/api/v1/ws/articles/{article_id}/like": { "post": { "tags": [ "channel" ], "operationId": "channel_article_like", "parameters": [ { "name": "article_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ArticleLikeRequest" } } }, "required": true }, "responses": { "200": { "description": "Like toggled" } } } }, "/api/v1/ws/articles/{article_id}/likes": { "get": { "tags": [ "channel" ], "operationId": "channel_article_liked_users", "parameters": [ { "name": "before", "in": "query", "required": false, "schema": { "type": [ "string", "null" ], "format": "uuid" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int64" } }, { "name": "article_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "List of users who liked" } } } }, "/api/v1/ws/categories/{category_id}": { "delete": { "tags": [ "channel" ], "operationId": "channel_category_delete", "parameters": [ { "name": "category_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "Category deleted" } } }, "patch": { "tags": [ "channel" ], "operationId": "channel_category_update", "parameters": [ { "name": "category_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CategoryUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "Category updated" } } } }, "/api/v1/ws/channels/{channel_id}/articles": { "get": { "tags": [ "channel" ], "operationId": "channel_article_list", "parameters": [ { "name": "before", "in": "query", "required": false, "schema": { "type": [ "string", "null" ], "format": "uuid" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int64" } }, { "name": "channel_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Article list (waterfall feed)" } } }, "post": { "tags": [ "channel" ], "operationId": "channel_article_create", "parameters": [ { "name": "channel_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ArticleCreateRequest" } } }, "required": true }, "responses": { "201": { "description": "Article created" } } } }, "/api/v1/ws/channels/{channel_id}/articles/{article_id}": { "get": { "tags": [ "channel" ], "operationId": "channel_article_get", "parameters": [ { "name": "channel_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "article_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Article detail" } } }, "delete": { "tags": [ "channel" ], "operationId": "channel_article_delete", "parameters": [ { "name": "channel_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "article_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "Article deleted" } } }, "patch": { "tags": [ "channel" ], "operationId": "channel_article_update", "parameters": [ { "name": "channel_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "article_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ArticleUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "Article updated" } } } }, "/api/v1/ws/csrf": { "get": { "tags": [ "channel" ], "operationId": "channel_csrf_token", "responses": { "200": { "description": "CSRF token" } } } }, "/api/v1/ws/custom-status": { "post": { "tags": [ "channel" ], "operationId": "channel_custom_status_update", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CustomStatusRequest" } } }, "required": true }, "responses": { "204": { "description": "Custom status updated" } } } }, "/api/v1/ws/invites": { "post": { "tags": [ "channel" ], "operationId": "channel_invite_create", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InviteCreateRequest" } } }, "required": true }, "responses": { "201": { "description": "Invite created" } } } }, "/api/v1/ws/invites/accept": { "post": { "tags": [ "channel" ], "operationId": "channel_invite_accept", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InviteAcceptRequest" } } }, "required": true }, "responses": { "200": { "description": "Invite accepted" } } } }, "/api/v1/ws/invites/{id}": { "delete": { "tags": [ "channel" ], "operationId": "channel_invite_revoke", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "Invite revoked" } } } }, "/api/v1/ws/messages/{message_id}": { "delete": { "tags": [ "channel" ], "operationId": "channel_revoke_message", "parameters": [ { "name": "message_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Message revoked" } } }, "patch": { "tags": [ "channel" ], "operationId": "channel_update_message", "parameters": [ { "name": "message_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateMessageRequest" } } }, "required": true }, "responses": { "200": { "description": "Message updated" } } } }, "/api/v1/ws/notifications/read-all": { "post": { "tags": [ "channel" ], "operationId": "channel_notification_mark_all_read", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NotificationMarkAllReadRequest" } } }, "required": true }, "responses": { "204": { "description": "All notifications marked read" } } } }, "/api/v1/ws/notifications/{id}": { "delete": { "tags": [ "channel" ], "operationId": "channel_notification_archive", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "Notification archived" } } } }, "/api/v1/ws/notifications/{id}/read": { "patch": { "tags": [ "channel" ], "operationId": "channel_notification_mark_read", "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "Notification marked read" } } } }, "/api/v1/ws/ping": { "get": { "tags": [ "channel" ], "operationId": "channel_ping", "responses": { "200": { "description": "Pong with protocol version" } } } }, "/api/v1/ws/presence": { "post": { "tags": [ "channel" ], "operationId": "channel_presence_update", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PresenceUpdateRequest" } } }, "required": true }, "responses": { "204": { "description": "Presence updated" } } } }, "/api/v1/ws/rooms": { "get": { "tags": [ "channel" ], "operationId": "channel_list_rooms", "responses": { "200": { "description": "List of rooms" } } }, "post": { "tags": [ "channel" ], "operationId": "channel_room_create", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RoomCreateRequest" } } }, "required": true }, "responses": { "201": { "description": "Room created" } } } }, "/api/v1/ws/rooms/{room_id}": { "get": { "tags": [ "channel" ], "operationId": "channel_room_get", "parameters": [ { "name": "room_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Room info" } } }, "delete": { "tags": [ "channel" ], "operationId": "channel_room_delete", "parameters": [ { "name": "room_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "Room deleted" } } }, "patch": { "tags": [ "channel" ], "operationId": "channel_room_update", "parameters": [ { "name": "room_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RoomUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "Room updated" } } } }, "/api/v1/ws/rooms/{room_id}/dnd": { "patch": { "tags": [ "channel" ], "operationId": "channel_dnd_update", "parameters": [ { "name": "room_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DndRequest" } } }, "required": true }, "responses": { "204": { "description": "DND updated" } } } }, "/api/v1/ws/rooms/{room_id}/drafts": { "put": { "tags": [ "channel" ], "operationId": "channel_draft_save", "parameters": [ { "name": "room_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DraftSaveRequest" } } }, "required": true }, "responses": { "204": { "description": "Draft saved" } } }, "delete": { "tags": [ "channel" ], "operationId": "channel_draft_clear", "parameters": [ { "name": "room_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "Draft cleared" } } } }, "/api/v1/ws/rooms/{room_id}/members": { "post": { "tags": [ "channel" ], "operationId": "channel_access_grant", "parameters": [ { "name": "room_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccessRequest" } } }, "required": true }, "responses": { "204": { "description": "Access granted" } } } }, "/api/v1/ws/rooms/{room_id}/members/{user_id}": { "delete": { "tags": [ "channel" ], "operationId": "channel_access_revoke", "parameters": [ { "name": "room_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "user_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "Access revoked" } } } }, "/api/v1/ws/rooms/{room_id}/messages": { "get": { "tags": [ "channel" ], "operationId": "channel_list_messages", "parameters": [ { "name": "before_seq", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int64" } }, { "name": "after_seq", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int64" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int64", "minimum": 0 } }, { "name": "room_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Message list" } } }, "post": { "tags": [ "channel" ], "operationId": "channel_create_message", "parameters": [ { "name": "room_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateMessageRequest" } } }, "required": true }, "responses": { "201": { "description": "Message created" } } } }, "/api/v1/ws/rooms/{room_id}/messages/around": { "get": { "tags": [ "channel" ], "operationId": "channel_messages_around", "parameters": [ { "name": "seq", "in": "query", "required": true, "schema": { "type": "integer", "format": "int64" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int64", "minimum": 0 } }, { "name": "thread", "in": "query", "required": false, "schema": { "type": [ "string", "null" ], "format": "uuid" } }, { "name": "room_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Messages around seq" } } } }, "/api/v1/ws/rooms/{room_id}/messages/missed": { "get": { "tags": [ "channel" ], "operationId": "channel_missed_messages", "parameters": [ { "name": "after_seq", "in": "query", "required": true, "schema": { "type": "integer", "format": "int64" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int64" } }, { "name": "room_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Missed messages" } } } }, "/api/v1/ws/rooms/{room_id}/pins": { "post": { "tags": [ "channel" ], "operationId": "channel_pin_add", "parameters": [ { "name": "room_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PinRequest" } } }, "required": true }, "responses": { "204": { "description": "Message pinned" } } }, "delete": { "tags": [ "channel" ], "operationId": "channel_pin_remove", "parameters": [ { "name": "room_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PinRequest" } } }, "required": true }, "responses": { "204": { "description": "Pin removed" } } } }, "/api/v1/ws/rooms/{room_id}/reactions": { "post": { "tags": [ "channel" ], "operationId": "channel_reaction_add", "parameters": [ { "name": "room_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReactionRequest" } } }, "required": true }, "responses": { "204": { "description": "Reaction added" } } }, "delete": { "tags": [ "channel" ], "operationId": "channel_reaction_remove", "parameters": [ { "name": "room_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReactionRequest" } } }, "required": true }, "responses": { "204": { "description": "Reaction removed" } } } }, "/api/v1/ws/rooms/{room_id}/read-receipt": { "post": { "tags": [ "channel" ], "operationId": "channel_read_receipt", "parameters": [ { "name": "room_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ReadReceiptRequest" } } }, "required": true }, "responses": { "200": { "description": "Read receipt saved" } } } }, "/api/v1/ws/rooms/{room_id}/screen-share": { "post": { "tags": [ "channel" ], "operationId": "channel_screen_share", "parameters": [ { "name": "room_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ScreenShareRequest" } } }, "required": true }, "responses": { "204": { "description": "Screen share toggled" } } } }, "/api/v1/ws/rooms/{room_id}/subscribe": { "post": { "tags": [ "channel" ], "operationId": "channel_subscribe", "parameters": [ { "name": "room_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "Subscribed, user room cache refreshed" } } }, "delete": { "tags": [ "channel" ], "operationId": "channel_unsubscribe", "parameters": [ { "name": "room_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "Unsubscribed" } } } }, "/api/v1/ws/rooms/{room_id}/threads": { "post": { "tags": [ "channel" ], "operationId": "channel_thread_create", "parameters": [ { "name": "room_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ThreadCreateRequest" } } }, "required": true }, "responses": { "201": { "description": "Thread created" } } } }, "/api/v1/ws/rooms/{room_id}/typing": { "post": { "tags": [ "channel" ], "operationId": "channel_typing", "parameters": [ { "name": "room_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TypingRequest" } } }, "required": true }, "responses": { "204": { "description": "Typing indicator broadcasted" } } } }, "/api/v1/ws/rooms/{room_id}/voice/deaf": { "post": { "tags": [ "channel" ], "operationId": "channel_voice_deaf", "parameters": [ { "name": "room_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VoiceDeafRequest" } } }, "required": true }, "responses": { "204": { "description": "Deaf toggled" } } } }, "/api/v1/ws/rooms/{room_id}/voice/join": { "post": { "tags": [ "channel" ], "operationId": "channel_voice_join", "parameters": [ { "name": "room_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "Joined voice channel" } } } }, "/api/v1/ws/rooms/{room_id}/voice/leave": { "post": { "tags": [ "channel" ], "operationId": "channel_voice_leave", "parameters": [ { "name": "room_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "Left voice channel" } } } }, "/api/v1/ws/rooms/{room_id}/voice/mute": { "post": { "tags": [ "channel" ], "operationId": "channel_voice_mute", "parameters": [ { "name": "room_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VoiceMuteRequest" } } }, "required": true }, "responses": { "204": { "description": "Mute toggled" } } } }, "/api/v1/ws/search": { "get": { "tags": [ "channel" ], "operationId": "channel_search", "parameters": [ { "name": "q", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "room", "in": "query", "required": false, "schema": { "type": [ "string", "null" ], "format": "uuid" } }, { "name": "limit", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int64", "minimum": 0 } }, { "name": "offset", "in": "query", "required": false, "schema": { "type": [ "integer", "null" ], "format": "int64", "minimum": 0 } } ], "responses": { "200": { "description": "Search results" } } } }, "/api/v1/ws/threads/{thread_id}/archive": { "patch": { "tags": [ "channel" ], "operationId": "channel_thread_archive", "parameters": [ { "name": "thread_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Thread archived" } } } }, "/api/v1/ws/threads/{thread_id}/resolve": { "patch": { "tags": [ "channel" ], "operationId": "channel_thread_resolve", "parameters": [ { "name": "thread_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "200": { "description": "Thread resolved" } } } }, "/api/v1/ws/token": { "post": { "tags": [ "channel" ], "operationId": "channel_generate_token", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TokenRequest" } } }, "required": true }, "responses": { "200": { "description": "", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TokenResponse" } } } } } } }, "/api/v1/ws/users/summary/{username}": { "get": { "tags": [ "channel" ], "operationId": "channel_user_summary", "parameters": [ { "name": "username", "in": "path", "required": true, "schema": { "type": "string" } } ], "responses": { "200": { "description": "User summary" } } } }, "/api/v1/ws/workspaces/{workspace_id}/bans": { "post": { "tags": [ "channel" ], "operationId": "channel_ban_create", "parameters": [ { "name": "workspace_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BanCreateRequest" } } }, "required": true }, "responses": { "201": { "description": "User banned" } } } }, "/api/v1/ws/workspaces/{workspace_id}/bans/{user_id}": { "delete": { "tags": [ "channel" ], "operationId": "channel_ban_remove", "parameters": [ { "name": "workspace_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } }, { "name": "user_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "responses": { "204": { "description": "User unbanned" } } } }, "/api/v1/ws/workspaces/{workspace_id}/categories": { "post": { "tags": [ "channel" ], "operationId": "channel_category_create", "parameters": [ { "name": "workspace_id", "in": "path", "required": true, "schema": { "type": "string", "format": "uuid" } } ], "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CategoryCreateRequest" } } }, "required": true }, "responses": { "201": { "description": "Category created" } } } } }, "components": { "schemas": { "AccessRequest": { "type": "object", "required": [ "user" ], "properties": { "user": { "type": "string", "format": "uuid" } } }, "AddIssueLabel": { "type": "object", "required": [ "label_id" ], "properties": { "label_id": { "type": "string", "format": "uuid" } } }, "AddPrLabel": { "type": "object", "required": [ "label_id" ], "properties": { "label_id": { "type": "string", "format": "uuid" } } }, "AddPrReaction": { "type": "object", "required": [ "reaction" ], "properties": { "reaction": { "type": "string" } } }, "AddReaction": { "type": "object", "required": [ "reaction" ], "properties": { "reaction": { "type": "string" } } }, "AddWorkspaceMember": { "type": "object", "required": [ "username" ], "properties": { "admin": { "type": [ "boolean", "null" ] }, "username": { "type": "string" } } }, "AgentCostInfo": { "type": "object", "required": [ "amount", "currency" ], "properties": { "amount": { "type": "string" }, "currency": { "type": "string" } } }, "AgentRunRequest": { "type": "object", "required": [ "session_id", "input" ], "properties": { "conversation_id": { "type": [ "string", "null" ], "format": "uuid" }, "input": { "type": "string" }, "max_steps": { "type": [ "integer", "null" ], "minimum": 0 }, "session_id": { "type": "string", "format": "uuid" }, "stream": { "type": "boolean" }, "timeout_secs": { "type": [ "integer", "null" ], "format": "int64", "minimum": 0 } } }, "AgentRunResponse": { "type": "object", "required": [ "message_id", "conversation_id", "output", "steps", "usage" ], "properties": { "conversation_id": { "type": "string", "format": "uuid" }, "cost": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/AgentCostInfo" } ] }, "message_id": { "type": "string", "format": "uuid" }, "output": { "type": "string" }, "steps": { "type": "array", "items": { "$ref": "#/components/schemas/AgentStepInfo" } }, "usage": { "$ref": "#/components/schemas/AgentUsageInfo" } } }, "AgentSessionResponse": { "type": "object", "required": [ "id", "name", "agent_kind", "visibility", "version", "enabled", "created_at", "updated_at" ], "properties": { "agent_kind": { "type": "string" }, "created_at": { "type": "string", "format": "date-time" }, "description": { "type": [ "string", "null" ] }, "enabled": { "type": "boolean" }, "id": { "type": "string", "format": "uuid" }, "iteration_budget": { "type": [ "integer", "null" ], "format": "int32" }, "max_output_tokens": { "type": [ "integer", "null" ], "format": "int32" }, "memory_provider": { "type": [ "string", "null" ] }, "model_version": { "type": [ "string", "null" ], "format": "uuid" }, "name": { "type": "string" }, "parent_session_id": { "type": [ "string", "null" ], "format": "uuid" }, "published_at": { "type": [ "string", "null" ], "format": "date-time" }, "source": { "type": [ "string", "null" ] }, "system_prompt": { "type": [ "string", "null" ] }, "temperature": { "type": [ "number", "null" ], "format": "float" }, "tool_policy": { "type": [ "string", "null" ] }, "toolset_json": { "type": [ "string", "null" ] }, "updated_at": { "type": "string", "format": "date-time" }, "user": { "type": [ "string", "null" ], "format": "uuid" }, "variables": { "type": [ "string", "null" ] }, "version": { "type": "integer", "format": "int32" }, "visibility": { "type": "string" }, "wk": { "type": [ "string", "null" ], "format": "uuid" } } }, "AgentStepInfo": { "type": "object", "required": [ "index", "tool_calls" ], "properties": { "assistant": { "type": [ "string", "null" ] }, "index": { "type": "integer", "minimum": 0 }, "reflection": { "type": [ "string", "null" ] }, "tool_calls": { "type": "array", "items": { "$ref": "#/components/schemas/AgentToolCallInfo" } } } }, "AgentToolCallInfo": { "type": "object", "required": [ "id", "name", "arguments" ], "properties": { "arguments": {}, "elapsed_ms": { "type": [ "integer", "null" ], "format": "int64" }, "error": { "type": [ "string", "null" ] }, "id": { "type": "string" }, "name": { "type": "string" }, "output": {} } }, "AgentUsageInfo": { "type": "object", "required": [ "input_tokens", "output_tokens", "total_tokens" ], "properties": { "input_tokens": { "type": "integer", "format": "int64" }, "output_tokens": { "type": "integer", "format": "int64" }, "total_tokens": { "type": "integer", "format": "int64" } } }, "AiDiscussionResponse": { "type": "object", "required": [ "id", "author", "body", "created_at", "updated_at" ], "properties": { "author": { "$ref": "#/components/schemas/IssueAuthor" }, "body": { "type": "string" }, "created_at": { "type": "string" }, "id": { "type": "string" }, "parent": { "type": [ "string", "null" ], "format": "uuid" }, "updated_at": { "type": "string" } } }, "AiLikeResponse": { "type": "object", "required": [ "user", "created_at" ], "properties": { "created_at": { "type": "string" }, "user": { "$ref": "#/components/schemas/IssueAuthor" } } }, "AiModelCardResponse": { "type": "object", "properties": { "eval_summary": { "type": [ "string", "null" ] }, "limitations": { "type": [ "string", "null" ] }, "metadata": { "type": [ "string", "null" ] }, "overview": { "type": [ "string", "null" ] }, "safety_notes": { "type": [ "string", "null" ] }, "strengths": { "type": [ "string", "null" ] } } }, "AiModelListItem": { "type": "object", "required": [ "id", "name", "display_name", "modality", "provider_name", "enabled", "created_at", "updated_at" ], "properties": { "context_window": { "type": [ "integer", "null" ], "format": "int32" }, "created_at": { "type": "string" }, "description": { "type": [ "string", "null" ] }, "display_name": { "type": "string" }, "enabled": { "type": "boolean" }, "id": { "type": "string" }, "input_token_limit": { "type": [ "integer", "null" ], "format": "int32" }, "modality": { "type": "string" }, "name": { "type": "string" }, "output_token_limit": { "type": [ "integer", "null" ], "format": "int32" }, "provider_logo_url": { "type": [ "string", "null" ] }, "provider_name": { "type": "string" }, "updated_at": { "type": "string" } } }, "AiModelResponse": { "type": "object", "required": [ "id", "name", "display_name", "modality", "enabled", "public", "provider_name", "versions", "tags", "like_count", "created_at", "updated_at" ], "properties": { "card": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/AiModelCardResponse" } ] }, "context_window": { "type": [ "integer", "null" ], "format": "int32" }, "created_at": { "type": "string" }, "description": { "type": [ "string", "null" ] }, "display_name": { "type": "string" }, "enabled": { "type": "boolean" }, "id": { "type": "string" }, "input_token_limit": { "type": [ "integer", "null" ], "format": "int32" }, "like_count": { "type": "integer", "format": "int64" }, "modality": { "type": "string" }, "name": { "type": "string" }, "output_token_limit": { "type": [ "integer", "null" ], "format": "int32" }, "provider_logo_url": { "type": [ "string", "null" ] }, "provider_name": { "type": "string" }, "public": { "type": "boolean" }, "tags": { "type": "array", "items": { "type": "string" } }, "updated_at": { "type": "string" }, "versions": { "type": "array", "items": { "$ref": "#/components/schemas/AiModelVersionResponse" } } } }, "AiModelVersionResponse": { "type": "object", "required": [ "id", "version", "provider_model_name", "enabled" ], "properties": { "cached_input_price_per_million": { "type": [ "string", "null" ] }, "deprecated_at": { "type": [ "string", "null" ] }, "enabled": { "type": "boolean" }, "id": { "type": "string" }, "input_price_per_million": { "type": [ "string", "null" ] }, "output_price_per_million": { "type": [ "string", "null" ] }, "provider_model_name": { "type": "string" }, "released_at": { "type": [ "string", "null" ] }, "training_cutoff": { "type": [ "string", "null" ] }, "version": { "type": "string" } } }, "AiProviderResponse": { "type": "object", "required": [ "id", "name", "enabled", "created_at", "updated_at" ], "properties": { "base_url": { "type": [ "string", "null" ] }, "created_at": { "type": "string" }, "enabled": { "type": "boolean" }, "id": { "type": "string" }, "logo_url": { "type": [ "string", "null" ] }, "name": { "type": "string" }, "updated_at": { "type": "string" }, "website_url": { "type": [ "string", "null" ] } } }, "ApproveWorkspaceJoinApply": { "type": "object", "required": [ "approved" ], "properties": { "approved": { "type": "boolean" }, "reason": { "type": [ "string", "null" ] } } }, "ArticleCommentCreateRequest": { "type": "object", "required": [ "content" ], "properties": { "content": { "type": "string" }, "parent": { "type": [ "string", "null" ], "format": "uuid" } } }, "ArticleCreateRequest": { "type": "object", "required": [ "title", "content" ], "properties": { "content": { "type": "string" }, "content_type": { "type": [ "string", "null" ] }, "cover_url": { "type": [ "string", "null" ] }, "status": { "type": [ "string", "null" ] }, "summary": { "type": [ "string", "null" ] }, "tags": { "type": [ "array", "null" ], "items": { "type": "string" } }, "title": { "type": "string" } } }, "ArticleLikeRequest": { "type": "object", "required": [ "like" ], "properties": { "like": { "type": "boolean" } } }, "ArticleUpdateRequest": { "type": "object", "properties": { "content": { "type": [ "string", "null" ] }, "content_type": { "type": [ "string", "null" ] }, "cover_url": { "type": [ "string", "null" ] }, "is_pinned": { "type": [ "boolean", "null" ] }, "status": { "type": [ "string", "null" ] }, "summary": { "type": [ "string", "null" ] }, "tags": { "type": [ "array", "null" ], "items": { "type": "string" } }, "title": { "type": [ "string", "null" ] } } }, "AssignIssueUser": { "type": "object", "required": [ "username" ], "properties": { "username": { "type": "string" } } }, "AssignPrUser": { "type": "object", "required": [ "username" ], "properties": { "username": { "type": "string" } } }, "AvatarUploadResponse": { "type": "object", "required": [ "avatar_url" ], "properties": { "avatar_url": { "type": "string" } } }, "BanCreateRequest": { "type": "object", "required": [ "user" ], "properties": { "expires_at": { "type": [ "string", "null" ], "format": "date-time" }, "reason": { "type": [ "string", "null" ] }, "user": { "type": "string", "format": "uuid" } } }, "BindIssuePullRequest": { "type": "object", "required": [ "pull_request_id" ], "properties": { "pull_request_id": { "type": "string", "format": "uuid" } } }, "BindIssueRepo": { "type": "object", "required": [ "repo_id" ], "properties": { "repo_id": { "type": "string", "format": "uuid" } } }, "BlameFileResponseDto": { "type": "object", "required": [ "hunks" ], "properties": { "hunks": { "type": "array", "items": { "$ref": "#/components/schemas/CommitBlameHunkDto" } } } }, "BlobInfoResponse": { "allOf": [ { "$ref": "#/components/schemas/BlobLoadResponseDto" }, { "type": "object", "required": [ "size", "is_binary" ], "properties": { "is_binary": { "type": "boolean" }, "size": { "type": "integer", "format": "int64", "minimum": 0 } } } ] }, "BlobLoadResponseDto": { "type": "object", "required": [ "blob" ], "properties": { "blob": { "type": "string" } } }, "BlobUploadBody": { "type": "object", "required": [ "path", "blob" ], "properties": { "blob": { "type": "array", "items": { "type": "integer", "format": "int32", "minimum": 0 } }, "path": { "type": "string" } } }, "BlobUploadResponseDto": { "type": "object", "properties": { "id": { "type": [ "string", "null" ] } } }, "BranchAheadBehindResponseDto": { "type": "object", "required": [ "ahead", "behind" ], "properties": { "ahead": { "type": "integer", "format": "int64", "minimum": 0 }, "behind": { "type": "integer", "format": "int64", "minimum": 0 } } }, "BranchInfoResponseDto": { "type": "object", "properties": { "branch": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/BranchListItemDto" } ] } } }, "BranchListItemDto": { "type": "object", "required": [ "name", "oid", "is_head", "is_remote", "is_current" ], "properties": { "is_current": { "type": "boolean" }, "is_head": { "type": "boolean" }, "is_remote": { "type": "boolean" }, "name": { "type": "string" }, "oid": { "type": "string" }, "upstream": { "type": [ "string", "null" ] } } }, "BranchListResponseDto": { "type": "object", "required": [ "branches" ], "properties": { "branches": { "type": "array", "items": { "$ref": "#/components/schemas/BranchListItemDto" } } } }, "BranchUpstreamResponseDto": { "type": "object", "required": [ "upstream_name" ], "properties": { "upstream_name": { "type": "string" } } }, "CaptchaQuery": { "type": "object", "required": [ "w", "h", "dark", "rsa" ], "properties": { "dark": { "type": "boolean" }, "h": { "type": "integer", "format": "int32", "minimum": 0 }, "rsa": { "type": "boolean" }, "w": { "type": "integer", "format": "int32", "minimum": 0 } } }, "CaptchaResponse": { "type": "object", "required": [ "base64", "req" ], "properties": { "base64": { "type": "string" }, "req": { "$ref": "#/components/schemas/CaptchaQuery" }, "rsa": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/RsaResponse" } ] } } }, "CategoryCreateRequest": { "type": "object", "required": [ "name" ], "properties": { "name": { "type": "string" }, "position": { "type": [ "integer", "null" ], "format": "int32" } } }, "CategoryUpdateRequest": { "type": "object", "properties": { "name": { "type": [ "string", "null" ] }, "position": { "type": [ "integer", "null" ], "format": "int32" } } }, "CherryPickResponseDto": { "type": "object", "properties": { "oid": { "type": [ "string", "null" ] } } }, "CloneRepo": { "type": "object", "required": [ "name", "source_url" ], "properties": { "description": { "type": [ "string", "null" ] }, "name": { "type": "string" }, "source_url": { "type": "string" }, "visibility": { "type": [ "string", "null" ] } } }, "CombinedCommitStatus": { "type": "object", "required": [ "sha", "state", "total_count", "statuses" ], "properties": { "sha": { "type": "string" }, "state": { "type": "string" }, "statuses": { "type": "array", "items": { "$ref": "#/components/schemas/CommitStatusResponse" } }, "total_count": { "type": "integer", "format": "int64" } } }, "CommitBlameHunkDto": { "type": "object", "required": [ "final_start_line", "final_lines", "orig_start_line", "orig_lines", "boundary" ], "properties": { "boundary": { "type": "boolean" }, "commit_oid": { "type": [ "string", "null" ] }, "final_lines": { "type": "integer", "format": "int32", "minimum": 0 }, "final_start_line": { "type": "integer", "format": "int32", "minimum": 0 }, "orig_lines": { "type": "integer", "format": "int32", "minimum": 0 }, "orig_path": { "type": [ "string", "null" ] }, "orig_start_line": { "type": "integer", "format": "int32", "minimum": 0 } } }, "CommitHistoryResponseDto": { "type": "object", "required": [ "commits" ], "properties": { "commits": { "type": "array", "items": { "$ref": "#/components/schemas/CommitMetaDto" } } } }, "CommitInfoResponseDto": { "type": "object", "properties": { "commit": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/CommitMetaDto" } ] } } }, "CommitMetaDto": { "type": "object", "required": [ "oid", "message", "summary", "parent_ids" ], "properties": { "author": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/CommitSignatureDto" } ] }, "committer": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/CommitSignatureDto" } ] }, "encoding": { "type": [ "string", "null" ] }, "message": { "type": "string" }, "oid": { "type": "string" }, "parent_ids": { "type": "array", "items": { "type": "string" } }, "summary": { "type": "string" }, "tree_id": { "type": [ "string", "null" ] } } }, "CommitSignatureDto": { "type": "object", "required": [ "name", "email", "time_secs", "offset_minutes" ], "properties": { "email": { "type": "string" }, "name": { "type": "string" }, "offset_minutes": { "type": "integer", "format": "int32" }, "time_secs": { "type": "integer", "format": "int64" } } }, "CommitStatusResponse": { "type": "object", "required": [ "id", "commit_sha", "state", "context", "creator", "created_at" ], "properties": { "commit_sha": { "type": "string" }, "context": { "type": "string" }, "created_at": { "type": "string", "format": "date-time" }, "creator": { "type": "string", "format": "uuid" }, "description": { "type": [ "string", "null" ] }, "id": { "type": "string", "format": "uuid" }, "state": { "type": "string" }, "target_url": { "type": [ "string", "null" ] } } }, "CompareCommit": { "type": "object", "required": [ "sha", "message" ], "properties": { "author_email": { "type": [ "string", "null" ] }, "author_name": { "type": [ "string", "null" ] }, "message": { "type": "string" }, "sha": { "type": "string" } } }, "CompareResponse": { "type": "object", "required": [ "base_commit", "head_commit", "ahead_by", "behind_by", "total_commits", "commits", "files_changed", "insertions", "deletions" ], "properties": { "ahead_by": { "type": "integer", "format": "int32" }, "base_commit": { "$ref": "#/components/schemas/CompareCommit" }, "behind_by": { "type": "integer", "format": "int32" }, "commits": { "type": "array", "items": { "$ref": "#/components/schemas/CompareCommit" } }, "deletions": { "type": "integer", "format": "int64", "minimum": 0 }, "files_changed": { "type": "integer", "format": "int64", "minimum": 0 }, "head_commit": { "$ref": "#/components/schemas/CompareCommit" }, "insertions": { "type": "integer", "format": "int64", "minimum": 0 }, "total_commits": { "type": "integer", "format": "int32" } } }, "ContentResponse": { "type": "object", "required": [ "path", "name", "type", "size" ], "properties": { "content": { "type": [ "string", "null" ] }, "encoding": { "type": [ "string", "null" ] }, "name": { "type": "string" }, "path": { "type": "string" }, "size": { "type": "integer", "format": "int64" }, "type": { "type": "string" } } }, "ContextMe": { "type": "object", "required": [ "id", "username", "has_unread_notifications", "language", "timezone" ], "properties": { "avatar_url": { "type": [ "string", "null" ] }, "display_name": { "type": [ "string", "null" ] }, "has_unread_notifications": { "type": "integer", "format": "int64", "minimum": 0 }, "id": { "type": "string", "format": "uuid" }, "language": { "type": "string" }, "timezone": { "type": "string" }, "username": { "type": "string" } } }, "ContributionHeatmapItem": { "type": "object", "required": [ "date", "count" ], "properties": { "count": { "type": "integer", "format": "int32" }, "date": { "type": "string" } } }, "ContributionHeatmapResponse": { "type": "object", "required": [ "username", "total_contributions", "heatmap", "start_date", "end_date" ], "properties": { "end_date": { "type": "string" }, "heatmap": { "type": "array", "items": { "$ref": "#/components/schemas/ContributionHeatmapItem" } }, "start_date": { "type": "string" }, "total_contributions": { "type": "integer", "format": "int64" }, "username": { "type": "string" } } }, "ContributorDto": { "type": "object", "required": [ "name", "email", "commit_count" ], "properties": { "commit_count": { "type": "integer", "format": "int64" }, "email": { "type": "string" }, "name": { "type": "string" }, "user_id": { "type": [ "string", "null" ] } } }, "ConversationResponse": { "type": "object", "required": [ "id", "session_id", "title", "created_by", "created_at", "updated_at" ], "properties": { "archived_at": { "type": [ "string", "null" ], "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "created_by": { "type": "string", "format": "uuid" }, "id": { "type": "string", "format": "uuid" }, "last_message_at": { "type": [ "string", "null" ], "format": "date-time" }, "session_id": { "type": "string", "format": "uuid" }, "title": { "type": "string" }, "updated_at": { "type": "string", "format": "date-time" } } }, "ConversationWithSessionResponse": { "type": "object", "required": [ "id", "session_id", "title", "created_by", "created_at", "updated_at" ], "properties": { "archived_at": { "type": [ "string", "null" ], "format": "date-time" }, "created_at": { "type": "string", "format": "date-time" }, "created_by": { "type": "string", "format": "uuid" }, "id": { "type": "string", "format": "uuid" }, "last_message_at": { "type": [ "string", "null" ], "format": "date-time" }, "session_id": { "type": "string", "format": "uuid" }, "session_name": { "type": [ "string", "null" ] }, "title": { "type": "string" }, "updated_at": { "type": "string", "format": "date-time" } } }, "CreateAgentSession": { "type": "object", "required": [ "name", "agent_kind", "model_version" ], "properties": { "agent_kind": { "type": "string" }, "description": { "type": [ "string", "null" ] }, "iteration_budget": { "type": [ "integer", "null" ], "format": "int32" }, "knowledge_base_ids": { "type": [ "array", "null" ], "items": { "type": "string", "format": "uuid" } }, "max_output_tokens": { "type": [ "integer", "null" ], "format": "int32" }, "memory_provider": { "type": [ "string", "null" ] }, "memory_provider_config": { "type": [ "string", "null" ] }, "model_version": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "source": { "type": [ "string", "null" ] }, "system_prompt": { "type": [ "string", "null" ] }, "temperature": { "type": [ "number", "null" ], "format": "float" }, "tool_policy": { "type": [ "string", "null" ] }, "toolset_json": { "type": [ "string", "null" ] }, "variables": { "type": [ "string", "null" ] }, "visibility": { "type": [ "string", "null" ] }, "wk": { "type": [ "string", "null" ] } } }, "CreateComment": { "type": "object", "required": [ "body" ], "properties": { "body": { "type": "string" } } }, "CreateCommitStatus": { "type": "object", "required": [ "state" ], "properties": { "context": { "type": [ "string", "null" ] }, "description": { "type": [ "string", "null" ] }, "state": { "type": "string" }, "target_url": { "type": [ "string", "null" ] } } }, "CreateContent": { "type": "object", "required": [ "message", "content" ], "properties": { "branch": { "type": [ "string", "null" ] }, "content": { "type": "string" }, "message": { "type": "string" } } }, "CreateConversation": { "type": "object", "required": [ "title" ], "properties": { "title": { "type": "string" } } }, "CreateFork": { "type": "object", "properties": { "name": { "type": [ "string", "null" ] }, "visibility": { "type": [ "string", "null" ] } } }, "CreateIssue": { "type": "object", "required": [ "title" ], "properties": { "body": { "type": [ "string", "null" ] }, "due_at": { "type": [ "string", "null" ] }, "priority": { "type": [ "string", "null" ] }, "title": { "type": "string" } } }, "CreateLabel": { "type": "object", "required": [ "name", "color" ], "properties": { "color": { "type": "string" }, "description": { "type": [ "string", "null" ] }, "name": { "type": "string" } } }, "CreateMessageRequest": { "type": "object", "required": [ "content" ], "properties": { "content": { "type": "string" }, "content_type": { "type": [ "string", "null" ] }, "in_reply_to": { "type": [ "string", "null" ], "format": "uuid" }, "thread": { "type": [ "string", "null" ], "format": "uuid" } } }, "CreateMilestone": { "type": "object", "required": [ "title" ], "properties": { "description": { "type": [ "string", "null" ] }, "due_at": { "type": [ "string", "null" ] }, "title": { "type": "string" } } }, "CreatePrComment": { "type": "object", "required": [ "body" ], "properties": { "body": { "type": "string" } } }, "CreatePrReview": { "type": "object", "required": [ "state" ], "properties": { "body": { "type": [ "string", "null" ] }, "commit_sha": { "type": [ "string", "null" ] }, "state": { "type": "string" } } }, "CreatePrReviewComment": { "type": "object", "required": [ "body", "path" ], "properties": { "body": { "type": "string" }, "commit_sha": { "type": [ "string", "null" ] }, "line": { "type": [ "integer", "null" ], "format": "int32" }, "path": { "type": "string" }, "side": { "type": [ "string", "null" ] } } }, "CreateProtect": { "type": "object", "required": [ "pattern" ], "properties": { "allow_deletions": { "type": [ "boolean", "null" ] }, "allow_force_pushes": { "type": [ "boolean", "null" ] }, "enforce_admins": { "type": [ "boolean", "null" ] }, "pattern": { "type": "string" }, "require_pull_request": { "type": [ "boolean", "null" ] }, "require_status_checks": { "type": [ "boolean", "null" ] }, "required_approvals": { "type": [ "integer", "null" ], "format": "int32" }, "required_status_contexts": { "type": [ "array", "null" ], "items": { "type": "string" } } } }, "CreatePullRequest": { "type": "object", "required": [ "title", "source_branch" ], "properties": { "body": { "type": [ "string", "null" ] }, "draft": { "type": [ "boolean", "null" ] }, "source_branch": { "type": "string" }, "source_repo": { "type": [ "string", "null" ] }, "target_branch": { "type": [ "string", "null" ] }, "title": { "type": "string" } } }, "CreateRelease": { "type": "object", "required": [ "tag_name", "name" ], "properties": { "body": { "type": [ "string", "null" ] }, "draft": { "type": "boolean" }, "name": { "type": "string" }, "prerelease": { "type": "boolean" }, "tag_name": { "type": "string" }, "target_commit_sha": { "type": [ "string", "null" ] } } }, "CreateRepo": { "type": "object", "required": [ "name" ], "properties": { "default_branch": { "type": [ "string", "null" ] }, "description": { "type": [ "string", "null" ] }, "enable_lfs": { "type": [ "boolean", "null" ] }, "initialize_with_readme": { "type": [ "boolean", "null" ] }, "name": { "type": "string" }, "visibility": { "type": [ "string", "null" ] } } }, "CreateUserAccessToken": { "type": "object", "required": [ "name", "scopes" ], "properties": { "expires_at": { "type": [ "string", "null" ] }, "name": { "type": "string" }, "scopes": { "type": "array", "items": { "type": "string" } } } }, "CreateUserSshKey": { "type": "object", "required": [ "title", "public_key" ], "properties": { "expires_at": { "type": [ "string", "null" ] }, "public_key": { "type": "string" }, "title": { "type": "string" } } }, "CreateWebhook": { "type": "object", "required": [ "url", "events" ], "properties": { "active": { "type": [ "boolean", "null" ] }, "events": { "type": "array", "items": { "type": "string" } }, "secret": { "type": [ "string", "null" ] }, "url": { "type": "string" } } }, "CreateWorkspace": { "type": "object", "required": [ "name" ], "properties": { "avatar_url": { "type": [ "string", "null" ] }, "description": { "type": [ "string", "null" ] }, "name": { "type": "string" } } }, "CreateWorkspaceGroup": { "type": "object", "required": [ "name" ], "properties": { "avatar_url": { "type": [ "string", "null" ] }, "name": { "type": "string" } } }, "CreateWorkspaceJoinApply": { "type": "object", "properties": { "answer": { "type": [ "string", "null" ] }, "message": { "type": [ "string", "null" ] } } }, "CreatedUserAccessToken": { "type": "object", "required": [ "token", "access_token" ], "properties": { "access_token": { "$ref": "#/components/schemas/UserAccessToken" }, "token": { "type": "string" } } }, "CustomStatusRequest": { "type": "object", "properties": { "emoji": { "type": [ "string", "null" ] }, "expires_at": { "type": [ "string", "null" ], "format": "date-time" }, "text": { "type": [ "string", "null" ] } } }, "DiffDeltaDto": { "type": "object", "required": [ "status", "nfiles", "hunks", "lines" ], "properties": { "hunks": { "type": "array", "items": { "$ref": "#/components/schemas/DiffHunkDto" } }, "lines": { "type": "array", "items": { "$ref": "#/components/schemas/DiffLineDto" } }, "new_file": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/DiffFileDto" } ] }, "nfiles": { "type": "integer", "format": "int32", "minimum": 0 }, "old_file": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/DiffFileDto" } ] }, "status": { "type": "integer", "format": "int32" } } }, "DiffFileDto": { "type": "object", "required": [ "size", "is_binary" ], "properties": { "is_binary": { "type": "boolean" }, "oid": { "type": [ "string", "null" ] }, "path": { "type": [ "string", "null" ] }, "size": { "type": "integer", "format": "int64", "minimum": 0 } } }, "DiffHunkDto": { "type": "object", "required": [ "old_start", "old_lines", "new_start", "new_lines", "header" ], "properties": { "header": { "type": "string" }, "new_lines": { "type": "integer", "format": "int32", "minimum": 0 }, "new_start": { "type": "integer", "format": "int32", "minimum": 0 }, "old_lines": { "type": "integer", "format": "int32", "minimum": 0 }, "old_start": { "type": "integer", "format": "int32", "minimum": 0 } } }, "DiffLineDto": { "type": "object", "required": [ "content", "origin", "num_lines", "content_offset" ], "properties": { "content": { "type": "string" }, "content_offset": { "type": "integer", "format": "int64" }, "new_lineno": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 }, "num_lines": { "type": "integer", "format": "int32", "minimum": 0 }, "old_lineno": { "type": [ "integer", "null" ], "format": "int32", "minimum": 0 }, "origin": { "type": "string" } } }, "DiffResultDto": { "type": "object", "required": [ "deltas" ], "properties": { "deltas": { "type": "array", "items": { "$ref": "#/components/schemas/DiffDeltaDto" } }, "stats": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/DiffStatsDto" } ] } } }, "DiffStatsDto": { "type": "object", "required": [ "files_changed", "insertions", "deletions" ], "properties": { "deletions": { "type": "integer", "format": "int64", "minimum": 0 }, "files_changed": { "type": "integer", "format": "int64", "minimum": 0 }, "insertions": { "type": "integer", "format": "int64", "minimum": 0 } } }, "Disable2FAParams": { "type": "object", "required": [ "code", "password" ], "properties": { "code": { "type": "string" }, "password": { "type": "string" } } }, "DismissPrReview": { "type": "object", "properties": { "dismiss_reason": { "type": [ "string", "null" ] } } }, "DndRequest": { "type": "object", "properties": { "dnd_end_hour": { "type": [ "integer", "null" ], "format": "int32" }, "dnd_start_hour": { "type": [ "integer", "null" ], "format": "int32" }, "do_not_disturb": { "type": [ "boolean", "null" ] } } }, "DraftSaveRequest": { "type": "object", "required": [ "content" ], "properties": { "content": { "type": "string" } } }, "EmailChangeRequest": { "type": "object", "required": [ "new_email", "password" ], "properties": { "new_email": { "type": "string" }, "password": { "type": "string" } } }, "EmailResponse": { "type": "object", "properties": { "email": { "type": [ "string", "null" ] } } }, "EmailVerifyRequest": { "type": "object", "required": [ "token" ], "properties": { "token": { "type": "string" } } }, "Enable2FAResponse": { "type": "object", "required": [ "secret", "qr_code", "backup_codes" ], "properties": { "backup_codes": { "type": "array", "items": { "type": "string" } }, "qr_code": { "type": "string" }, "secret": { "type": "string" } } }, "ForkResponse": { "type": "object", "required": [ "id", "name", "default_branch", "visibility", "source_repo", "forked_by", "created_at" ], "properties": { "created_at": { "type": "string" }, "default_branch": { "type": "string" }, "description": { "type": [ "string", "null" ] }, "forked_by": { "type": "string" }, "id": { "type": "string" }, "name": { "type": "string" }, "source_repo": { "type": "string" }, "visibility": { "type": "string" } } }, "Get2FAStatusResponse": { "type": "object", "required": [ "is_enabled", "has_backup_codes" ], "properties": { "has_backup_codes": { "type": "boolean" }, "is_enabled": { "type": "boolean" }, "method": { "type": [ "string", "null" ] } } }, "GitRefResponse": { "type": "object", "required": [ "name", "kind", "target_sha", "is_default", "is_protected" ], "properties": { "is_default": { "type": "boolean" }, "is_protected": { "type": "boolean" }, "kind": { "type": "string" }, "name": { "type": "string" }, "target_sha": { "type": "string" } } }, "InviteAcceptRequest": { "type": "object", "required": [ "code" ], "properties": { "code": { "type": "string" } } }, "InviteCreateRequest": { "type": "object", "required": [ "workspace" ], "properties": { "expires_at": { "type": [ "string", "null" ], "format": "date-time" }, "max_uses": { "type": [ "integer", "null" ], "format": "int32" }, "room": { "type": [ "string", "null" ], "format": "uuid" }, "workspace": { "type": "string", "format": "uuid" } } }, "IssueAuthor": { "type": "object", "required": [ "username" ], "properties": { "avatar_url": { "type": [ "string", "null" ] }, "display_name": { "type": [ "string", "null" ] }, "username": { "type": "string" } } }, "IssueCommentResponse": { "type": "object", "required": [ "id", "author", "body", "created_at", "updated_at" ], "properties": { "author": { "$ref": "#/components/schemas/IssueAuthor" }, "body": { "type": "string" }, "created_at": { "type": "string" }, "id": { "type": "string" }, "updated_at": { "type": "string" } } }, "IssueEventResponse": { "type": "object", "required": [ "event", "created_at" ], "properties": { "actor": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/IssueAuthor" } ] }, "created_at": { "type": "string" }, "event": { "type": "string" }, "from_value": { "type": [ "string", "null" ] }, "to_value": { "type": [ "string", "null" ] } } }, "IssuePullRequestResponse": { "type": "object", "required": [ "id", "number", "title", "state" ], "properties": { "id": { "type": "string" }, "number": { "type": "integer", "format": "int64" }, "state": { "type": "string" }, "title": { "type": "string" } } }, "IssueReactionResponse": { "type": "object", "required": [ "id", "user", "reaction", "created_at" ], "properties": { "created_at": { "type": "string" }, "id": { "type": "string" }, "reaction": { "type": "string" }, "user": { "$ref": "#/components/schemas/IssueAuthor" } } }, "IssueRepoResponse": { "type": "object", "required": [ "id", "name" ], "properties": { "id": { "type": "string" }, "name": { "type": "string" } } }, "IssueResponse": { "type": "object", "required": [ "number", "title", "state", "priority", "author", "created_at", "updated_at", "labels", "assignees", "repos", "pull_requests" ], "properties": { "assignees": { "type": "array", "items": { "$ref": "#/components/schemas/IssueAuthor" } }, "author": { "$ref": "#/components/schemas/IssueAuthor" }, "body": { "type": [ "string", "null" ] }, "closed_at": { "type": [ "string", "null" ] }, "closed_by": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/IssueAuthor" } ] }, "created_at": { "type": "string" }, "due_at": { "type": [ "string", "null" ] }, "labels": { "type": "array", "items": { "$ref": "#/components/schemas/LabelResponse" } }, "milestone": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/MilestoneResponse" } ] }, "number": { "type": "integer", "format": "int64" }, "priority": { "type": "string" }, "pull_requests": { "type": "array", "items": { "$ref": "#/components/schemas/IssuePullRequestResponse" } }, "repos": { "type": "array", "items": { "$ref": "#/components/schemas/IssueRepoResponse" } }, "state": { "type": "string" }, "title": { "type": "string" }, "updated_at": { "type": "string" } } }, "LabelResponse": { "type": "object", "required": [ "id", "name", "color" ], "properties": { "color": { "type": "string" }, "description": { "type": [ "string", "null" ] }, "id": { "type": "string" }, "name": { "type": "string" } } }, "LanguageStatDto": { "type": "object", "required": [ "language", "bytes", "percentage" ], "properties": { "bytes": { "type": "integer", "format": "int64" }, "language": { "type": "string" }, "percentage": { "type": "number", "format": "float" } } }, "LoginParams": { "type": "object", "required": [ "username", "password", "captcha" ], "properties": { "captcha": { "type": "string" }, "password": { "type": "string" }, "totp_code": { "type": [ "string", "null" ] }, "username": { "type": "string" } } }, "MergePullRequest": { "type": "object", "properties": { "commit_message": { "type": [ "string", "null" ] }, "commit_title": { "type": [ "string", "null" ] }, "method": { "type": [ "string", "null" ] } } }, "MessageResponse": { "type": "object", "required": [ "id", "conversation_id", "role", "content", "content_type", "status", "created_at", "updated_at" ], "properties": { "author": { "type": [ "string", "null" ], "format": "uuid" }, "content": { "type": "string" }, "content_type": { "type": "string" }, "conversation_id": { "type": "string", "format": "uuid" }, "created_at": { "type": "string", "format": "date-time" }, "id": { "type": "string", "format": "uuid" }, "model_invocation": { "type": [ "string", "null" ], "format": "uuid" }, "parent_id": { "type": [ "string", "null" ], "format": "uuid" }, "reasoning_content": { "type": [ "string", "null" ] }, "role": { "type": "string" }, "status": { "type": "string" }, "tool_calls": { "type": "array", "items": { "$ref": "#/components/schemas/ToolCallResponse" } }, "updated_at": { "type": "string", "format": "date-time" } } }, "MilestoneResponse": { "type": "object", "required": [ "id", "title", "state" ], "properties": { "description": { "type": [ "string", "null" ] }, "due_at": { "type": [ "string", "null" ] }, "id": { "type": "string" }, "state": { "type": "string" }, "title": { "type": "string" } } }, "NotificationMarkAllReadRequest": { "type": "object", "properties": { "workspace_id": { "type": [ "string", "null" ], "format": "uuid" } } }, "PinRequest": { "type": "object", "required": [ "message" ], "properties": { "message": { "type": "string", "format": "uuid" } } }, "PresenceUpdateRequest": { "type": "object", "required": [ "status" ], "properties": { "status": { "type": "string", "example": "online" } } }, "ProtectResponse": { "type": "object", "required": [ "id", "repo", "pattern", "require_pull_request", "required_approvals", "require_status_checks", "required_status_contexts", "enforce_admins", "allow_force_pushes", "allow_deletions", "created_at", "updated_at" ], "properties": { "allow_deletions": { "type": "boolean" }, "allow_force_pushes": { "type": "boolean" }, "created_at": { "type": "string" }, "enforce_admins": { "type": "boolean" }, "id": { "type": "string" }, "pattern": { "type": "string" }, "repo": { "type": "string" }, "require_pull_request": { "type": "boolean" }, "require_status_checks": { "type": "boolean" }, "required_approvals": { "type": "integer", "format": "int32" }, "required_status_contexts": { "type": "array", "items": { "type": "string" } }, "updated_at": { "type": "string" } } }, "PublicUserResponse": { "type": "object", "required": [ "username", "display_name", "avatar_url", "website_url", "language", "timezone", "allow_direct_messages", "show_online_status" ], "properties": { "allow_direct_messages": { "type": "boolean" }, "avatar_url": { "type": "string" }, "display_name": { "type": "string" }, "language": { "type": "string" }, "show_online_status": { "type": "boolean" }, "timezone": { "type": "string" }, "username": { "type": "string" }, "website_url": { "type": "string" } } }, "PullRequestCommentResponse": { "type": "object", "required": [ "id", "author", "body", "created_at", "updated_at" ], "properties": { "author": { "$ref": "#/components/schemas/IssueAuthor" }, "body": { "type": "string" }, "created_at": { "type": "string" }, "id": { "type": "string" }, "updated_at": { "type": "string" } } }, "PullRequestReactionResponse": { "type": "object", "required": [ "id", "user", "reaction", "created_at" ], "properties": { "created_at": { "type": "string" }, "id": { "type": "string" }, "reaction": { "type": "string" }, "user": { "$ref": "#/components/schemas/IssueAuthor" } } }, "PullRequestResponse": { "type": "object", "required": [ "number", "title", "state", "draft", "author", "source_repo", "source_branch", "source_sha", "target_branch", "target_sha", "created_at", "updated_at", "labels", "assignees", "reviews" ], "properties": { "assignees": { "type": "array", "items": { "$ref": "#/components/schemas/IssueAuthor" } }, "author": { "$ref": "#/components/schemas/IssueAuthor" }, "body": { "type": [ "string", "null" ] }, "closed_at": { "type": [ "string", "null" ] }, "closed_by": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/IssueAuthor" } ] }, "created_at": { "type": "string" }, "draft": { "type": "boolean" }, "labels": { "type": "array", "items": { "$ref": "#/components/schemas/LabelResponse" } }, "merged_at": { "type": [ "string", "null" ] }, "merged_by": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/IssueAuthor" } ] }, "number": { "type": "integer", "format": "int64" }, "reviews": { "type": "array", "items": { "$ref": "#/components/schemas/PullRequestReviewResponse" } }, "source_branch": { "type": "string" }, "source_repo": { "type": "string" }, "source_sha": { "type": "string" }, "state": { "type": "string" }, "target_branch": { "type": "string" }, "target_sha": { "type": "string" }, "title": { "type": "string" }, "updated_at": { "type": "string" } } }, "PullRequestReviewCommentResponse": { "type": "object", "required": [ "id", "author", "path", "body", "commit_sha", "resolved", "created_at", "updated_at" ], "properties": { "author": { "$ref": "#/components/schemas/IssueAuthor" }, "body": { "type": "string" }, "commit_sha": { "type": "string" }, "created_at": { "type": "string" }, "id": { "type": "string" }, "line": { "type": [ "integer", "null" ], "format": "int32" }, "path": { "type": "string" }, "resolved": { "type": "boolean" }, "updated_at": { "type": "string" } } }, "PullRequestReviewResponse": { "type": "object", "required": [ "id", "reviewer", "state", "created_at" ], "properties": { "body": { "type": [ "string", "null" ] }, "commit_sha": { "type": [ "string", "null" ] }, "created_at": { "type": "string" }, "id": { "type": "string" }, "reviewer": { "$ref": "#/components/schemas/IssueAuthor" }, "state": { "type": "string" }, "submitted_at": { "type": [ "string", "null" ] } } }, "ReactionRequest": { "type": "object", "required": [ "message", "emoji" ], "properties": { "emoji": { "type": "string" }, "message": { "type": "string", "format": "uuid" } } }, "ReadReceiptRequest": { "type": "object", "required": [ "last_read_seq" ], "properties": { "last_read_seq": { "type": "integer", "format": "int64" } } }, "ReadmeDto": { "type": "object", "required": [ "content", "html" ], "properties": { "content": { "type": "string" }, "html": { "type": "string" } } }, "RegisterParams": { "type": "object", "required": [ "username", "email", "password", "captcha" ], "properties": { "captcha": { "type": "string" }, "email": { "type": "string" }, "password": { "type": "string" }, "username": { "type": "string" } } }, "ReleaseAssetResponse": { "type": "object", "required": [ "id", "name", "size", "download_count", "created_at" ], "properties": { "content_type": { "type": [ "string", "null" ] }, "created_at": { "type": "string", "format": "date-time" }, "download_count": { "type": "integer", "format": "int64" }, "id": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "size": { "type": "integer", "format": "int64" } } }, "ReleaseResponse": { "type": "object", "required": [ "id", "tag_name", "target_commit_sha", "name", "draft", "prerelease", "author", "assets", "created_at" ], "properties": { "assets": { "type": "array", "items": { "$ref": "#/components/schemas/ReleaseAssetResponse" } }, "author": { "type": "string", "format": "uuid" }, "body": { "type": [ "string", "null" ] }, "created_at": { "type": "string", "format": "date-time" }, "draft": { "type": "boolean" }, "id": { "type": "string", "format": "uuid" }, "name": { "type": "string" }, "prerelease": { "type": "boolean" }, "published_at": { "type": [ "string", "null" ], "format": "date-time" }, "tag_name": { "type": "string" }, "target_commit_sha": { "type": "string" } } }, "RenameBranchBody": { "type": "object", "required": [ "new_branch" ], "properties": { "force": { "type": "boolean" }, "new_branch": { "type": "string" } } }, "RepoResponse": { "type": "object", "required": [ "id", "name", "default_branch", "visibility", "size_bytes", "is_archived", "is_template", "is_mirror", "created_by", "created_at", "updated_at" ], "properties": { "created_at": { "type": "string" }, "created_by": { "type": "string" }, "default_branch": { "type": "string" }, "description": { "type": [ "string", "null" ] }, "id": { "type": "string" }, "is_archived": { "type": "boolean" }, "is_mirror": { "type": "boolean" }, "is_template": { "type": "boolean" }, "name": { "type": "string" }, "size_bytes": { "type": "integer", "format": "int64" }, "updated_at": { "type": "string" }, "visibility": { "type": "string" } } }, "ResetPasswordRequest": { "type": "object", "required": [ "email" ], "properties": { "email": { "type": "string" } } }, "ResetPasswordVerifyParams": { "type": "object", "required": [ "token", "password" ], "properties": { "password": { "type": "string" }, "token": { "type": "string" } } }, "RoomCreateRequest": { "type": "object", "required": [ "workspace", "room_name", "public" ], "properties": { "ai_enabled": { "type": [ "boolean", "null" ] }, "category": { "type": [ "string", "null" ], "format": "uuid" }, "channel_type": { "type": [ "string", "null" ] }, "public": { "type": "boolean" }, "room_name": { "type": "string" }, "workspace": { "type": "string", "format": "uuid" } } }, "RoomUpdateRequest": { "type": "object", "properties": { "ai_enabled": { "type": [ "boolean", "null" ] }, "category": { "type": [ "string", "null" ], "format": "uuid" }, "public": { "type": [ "boolean", "null" ] }, "room_name": { "type": [ "string", "null" ] } } }, "RsaResponse": { "type": "object", "required": [ "public_key" ], "properties": { "public_key": { "type": "string" } } }, "ScreenShareRequest": { "type": "object", "required": [ "start" ], "properties": { "start": { "type": "boolean" } } }, "SearchGroup_IssueHit": { "type": "object", "required": [ "items", "total", "has_more" ], "properties": { "has_more": { "type": "boolean" }, "items": { "type": "array", "items": { "type": "object", "required": [ "number", "title", "state", "workspace" ], "properties": { "number": { "type": "integer", "format": "int32" }, "state": { "type": "string" }, "title": { "type": "string" }, "workspace": { "type": "string" } } } }, "total": { "type": "integer", "minimum": 0 } } }, "SearchGroup_RepoHit": { "type": "object", "required": [ "items", "total", "has_more" ], "properties": { "has_more": { "type": "boolean" }, "items": { "type": "array", "items": { "type": "object", "required": [ "name", "workspace" ], "properties": { "description": { "type": [ "string", "null" ] }, "name": { "type": "string" }, "workspace": { "type": "string" } } } }, "total": { "type": "integer", "minimum": 0 } } }, "SearchGroup_RoomHit": { "type": "object", "required": [ "items", "total", "has_more" ], "properties": { "has_more": { "type": "boolean" }, "items": { "type": "array", "items": { "type": "object", "required": [ "id", "name", "workspace" ], "properties": { "id": { "type": "string" }, "name": { "type": "string" }, "workspace": { "type": "string" } } } }, "total": { "type": "integer", "minimum": 0 } } }, "SearchGroup_WorkspaceHit": { "type": "object", "required": [ "items", "total", "has_more" ], "properties": { "has_more": { "type": "boolean" }, "items": { "type": "array", "items": { "type": "object", "required": [ "name" ], "properties": { "description": { "type": [ "string", "null" ] }, "name": { "type": "string" } } } }, "total": { "type": "integer", "minimum": 0 } } }, "SearchResponse": { "type": "object", "required": [ "workspaces", "repos", "rooms", "issues" ], "properties": { "issues": { "$ref": "#/components/schemas/SearchGroup_IssueHit" }, "repos": { "$ref": "#/components/schemas/SearchGroup_RepoHit" }, "rooms": { "$ref": "#/components/schemas/SearchGroup_RoomHit" }, "workspaces": { "$ref": "#/components/schemas/SearchGroup_WorkspaceHit" } } }, "SetIssueMilestone": { "type": "object", "required": [ "milestone_id" ], "properties": { "milestone_id": { "type": "string", "format": "uuid" } } }, "TagInfoResponseDto": { "type": "object", "properties": { "tag": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/TagItemDto" } ] } } }, "TagInitResponseDto": { "type": "object", "properties": { "oid": { "type": [ "string", "null" ] } } }, "TagItemDto": { "type": "object", "required": [ "name", "oid", "target", "is_annotated" ], "properties": { "is_annotated": { "type": "boolean" }, "message": { "type": [ "string", "null" ] }, "name": { "type": "string" }, "oid": { "type": "string" }, "tagger": { "type": [ "string", "null" ] }, "tagger_email": { "type": [ "string", "null" ] }, "target": { "type": "string" } } }, "TagListResponseDto": { "type": "object", "required": [ "tags" ], "properties": { "tags": { "type": "array", "items": { "$ref": "#/components/schemas/TagItemDto" } } } }, "TagSummaryDto": { "type": "object", "required": [ "total_count" ], "properties": { "total_count": { "type": "integer", "format": "int64", "minimum": 0 } } }, "TagSummaryResponseDto": { "type": "object", "properties": { "summary": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/TagSummaryDto" } ] } } }, "ThreadCreateRequest": { "type": "object", "required": [ "parent" ], "properties": { "parent": { "type": "integer", "format": "int64" } } }, "TokenRequest": { "type": "object", "required": [ "device_id", "client_id" ], "properties": { "client_id": { "type": "string" }, "device_id": { "type": "string" } } }, "TokenResponse": { "type": "object", "required": [ "access_token", "expires_in_secs" ], "properties": { "access_token": { "type": "string" }, "expires_in_secs": { "type": "integer", "format": "int64", "minimum": 0 } } }, "ToolCallResponse": { "type": "object", "required": [ "id", "name", "arguments", "status" ], "properties": { "arguments": {}, "elapsed_ms": { "type": [ "integer", "null" ], "format": "int64" }, "error": { "type": [ "string", "null" ] }, "id": { "type": "string" }, "name": { "type": "string" }, "output": {}, "status": { "type": "string" } } }, "TransferRepo": { "type": "object", "required": [ "target_workspace" ], "properties": { "target_workspace": { "type": "string" } } }, "TreeEntriesResponseDto": { "type": "object", "required": [ "entries" ], "properties": { "entries": { "type": "array", "items": { "$ref": "#/components/schemas/TreeEntryDto" } } } }, "TreeEntryByPathResponseDto": { "type": "object", "properties": { "entry": { "oneOf": [ { "type": "null" }, { "$ref": "#/components/schemas/TreeEntryDto" } ] } } }, "TreeEntryDto": { "type": "object", "required": [ "name", "oid", "kind", "filemode", "is_binary", "is_lfs" ], "properties": { "filemode": { "type": "integer", "format": "int32", "minimum": 0 }, "is_binary": { "type": "boolean" }, "is_lfs": { "type": "boolean" }, "kind": { "$ref": "#/components/schemas/TreeKindDto" }, "last_commit_author_email": { "type": [ "string", "null" ] }, "last_commit_author_name": { "type": [ "string", "null" ] }, "last_commit_message": { "type": [ "string", "null" ] }, "last_commit_time": { "type": [ "string", "null" ] }, "name": { "type": "string" }, "oid": { "type": "string" } } }, "TreeKindDto": { "type": "string", "enum": [ "blob", "tree", "lfs_pointer" ] }, "TypingAction": { "type": "string", "enum": [ "Start", "Stop" ] }, "TypingRequest": { "type": "object", "required": [ "action" ], "properties": { "action": { "$ref": "#/components/schemas/TypingAction" } } }, "UpdateAgentSession": { "type": "object", "properties": { "description": { "type": [ "string", "null" ] }, "enabled": { "type": [ "boolean", "null" ] }, "iteration_budget": { "type": [ "integer", "null" ], "format": "int32" }, "knowledge_base_ids": { "type": [ "array", "null" ], "items": { "type": "string", "format": "uuid" } }, "max_output_tokens": { "type": [ "integer", "null" ], "format": "int32" }, "memory_provider": { "type": [ "string", "null" ] }, "memory_provider_config": { "type": [ "string", "null" ] }, "model_version": { "type": [ "string", "null" ], "format": "uuid" }, "name": { "type": [ "string", "null" ] }, "system_prompt": { "type": [ "string", "null" ] }, "temperature": { "type": [ "number", "null" ], "format": "float" }, "tool_policy": { "type": [ "string", "null" ] }, "toolset_json": { "type": [ "string", "null" ] }, "variables": { "type": [ "string", "null" ] }, "visibility": { "type": [ "string", "null" ] } } }, "UpdateComment": { "type": "object", "required": [ "body" ], "properties": { "body": { "type": "string" } } }, "UpdateContent": { "type": "object", "required": [ "message", "content", "sha" ], "properties": { "branch": { "type": [ "string", "null" ] }, "content": { "type": "string" }, "message": { "type": "string" }, "sha": { "type": "string" } } }, "UpdateConversation": { "type": "object", "properties": { "title": { "type": [ "string", "null" ] } } }, "UpdateIssue": { "type": "object", "properties": { "body": { "type": [ "string", "null" ] }, "due_at": { "type": [ "string", "null" ] }, "priority": { "type": [ "string", "null" ] }, "title": { "type": [ "string", "null" ] } } }, "UpdateLabel": { "type": "object", "properties": { "color": { "type": [ "string", "null" ] }, "description": { "type": [ "string", "null" ] }, "name": { "type": [ "string", "null" ] } } }, "UpdateMessageRequest": { "type": "object", "required": [ "content" ], "properties": { "content": { "type": "string" } } }, "UpdateMilestone": { "type": "object", "properties": { "description": { "type": [ "string", "null" ] }, "due_at": { "type": [ "string", "null" ] }, "state": { "type": [ "string", "null" ] }, "title": { "type": [ "string", "null" ] } } }, "UpdatePrComment": { "type": "object", "required": [ "body" ], "properties": { "body": { "type": "string" } } }, "UpdateProtect": { "type": "object", "properties": { "allow_deletions": { "type": [ "boolean", "null" ] }, "allow_force_pushes": { "type": [ "boolean", "null" ] }, "enforce_admins": { "type": [ "boolean", "null" ] }, "pattern": { "type": [ "string", "null" ] }, "require_pull_request": { "type": [ "boolean", "null" ] }, "require_status_checks": { "type": [ "boolean", "null" ] }, "required_approvals": { "type": [ "integer", "null" ], "format": "int32" }, "required_status_contexts": { "type": [ "array", "null" ], "items": { "type": "string" } } } }, "UpdatePullRequest": { "type": "object", "properties": { "body": { "type": [ "string", "null" ] }, "draft": { "type": [ "boolean", "null" ] }, "state": { "type": [ "string", "null" ] }, "title": { "type": [ "string", "null" ] } } }, "UpdateRelease": { "type": "object", "properties": { "body": { "type": [ "string", "null" ] }, "draft": { "type": [ "boolean", "null" ] }, "name": { "type": [ "string", "null" ] }, "prerelease": { "type": [ "boolean", "null" ] }, "tag_name": { "type": [ "string", "null" ] } } }, "UpdateRepo": { "type": "object", "properties": { "default_branch": { "type": [ "string", "null" ] }, "description": { "type": [ "string", "null" ] }, "is_archived": { "type": [ "boolean", "null" ] }, "is_template": { "type": [ "boolean", "null" ] }, "name": { "type": [ "string", "null" ] }, "visibility": { "type": [ "string", "null" ] } } }, "UpdateUserAccessToken": { "type": "object", "properties": { "expires_at": { "type": [ "string", "null" ] }, "name": { "type": [ "string", "null" ] }, "scopes": { "type": [ "array", "null" ], "items": { "type": "string" } } } }, "UpdateUserAccessibilityConfig": { "type": "object", "properties": { "color_blind_mode": { "type": [ "string", "null" ] }, "font_scale_percent": { "type": [ "integer", "null" ], "format": "int32" }, "high_contrast": { "type": [ "boolean", "null" ] }, "reduce_motion": { "type": [ "boolean", "null" ] }, "screen_reader_optimized": { "type": [ "boolean", "null" ] } } }, "UpdateUserAppearanceConfig": { "type": "object", "properties": { "code_theme": { "type": [ "string", "null" ] }, "layout_density": { "type": [ "string", "null" ] }, "show_line_numbers": { "type": [ "boolean", "null" ] }, "sidebar_collapsed": { "type": [ "boolean", "null" ] }, "theme": { "type": [ "string", "null" ] } } }, "UpdateUserNotificationConfig": { "type": "object", "properties": { "digest_mode": { "type": [ "string", "null" ] }, "dnd_enabled": { "type": [ "boolean", "null" ] }, "dnd_end_minute": { "type": [ "integer", "null" ], "format": "int32" }, "dnd_start_minute": { "type": [ "integer", "null" ], "format": "int32" }, "email_enabled": { "type": [ "boolean", "null" ] }, "in_app_enabled": { "type": [ "boolean", "null" ] }, "marketing_enabled": { "type": [ "boolean", "null" ] }, "product_enabled": { "type": [ "boolean", "null" ] }, "push_enabled": { "type": [ "boolean", "null" ] }, "push_subscription_endpoint": { "type": [ "string", "null" ] }, "push_subscription_keys_auth": { "type": [ "string", "null" ] }, "push_subscription_keys_p256dh": { "type": [ "string", "null" ] }, "security_enabled": { "type": [ "boolean", "null" ] } } }, "UpdateUserPrivacyConfig": { "type": "object", "properties": { "activity_visibility": { "type": [ "string", "null" ] }, "allow_direct_messages": { "type": [ "boolean", "null" ] }, "allow_search_indexing": { "type": [ "boolean", "null" ] }, "email_visibility": { "type": [ "string", "null" ] }, "profile_visibility": { "type": [ "string", "null" ] }, "show_online_status": { "type": [ "boolean", "null" ] } } }, "UpdateUserProfileConfig": { "type": "object", "properties": { "avatar_url": { "type": [ "string", "null" ] }, "language": { "type": [ "string", "null" ] }, "theme": { "type": [ "string", "null" ] }, "timezone": { "type": [ "string", "null" ] } } }, "UpdateUserSshKey": { "type": "object", "properties": { "expires_at": { "type": [ "string", "null" ] }, "title": { "type": [ "string", "null" ] } } }, "UpdateWebhook": { "type": "object", "properties": { "active": { "type": [ "boolean", "null" ] }, "events": { "type": [ "array", "null" ], "items": { "type": "string" } }, "secret": { "type": [ "string", "null" ] }, "url": { "type": [ "string", "null" ] } } }, "UpdateWorkspace": { "type": "object", "properties": { "avatar_url": { "type": [ "string", "null" ] }, "description": { "type": [ "string", "null" ] }, "name": { "type": [ "string", "null" ] } } }, "UpdateWorkspaceGroup": { "type": "object", "properties": { "avatar_url": { "type": [ "string", "null" ] }, "name": { "type": [ "string", "null" ] } } }, "UpdateWorkspaceJoinStrategy": { "type": "object", "properties": { "answer": { "type": [ "string", "null" ] }, "enabled": { "type": [ "boolean", "null" ] }, "question": { "type": [ "string", "null" ] }, "require_approval": { "type": [ "boolean", "null" ] }, "require_question": { "type": [ "boolean", "null" ] } } }, "UpdateWorkspaceMember": { "type": "object", "required": [ "admin" ], "properties": { "admin": { "type": "boolean" } } }, "UserAccessToken": { "type": "object", "required": [ "id", "name", "scopes", "is_revoked", "created_at", "updated_at" ], "properties": { "created_at": { "type": "string" }, "expires_at": { "type": [ "string", "null" ] }, "id": { "type": "integer", "format": "int64" }, "is_revoked": { "type": "boolean" }, "name": { "type": "string" }, "scopes": { "type": "array", "items": { "type": "string" } }, "updated_at": { "type": "string" } } }, "UserAccessibilityConfig": { "type": "object", "required": [ "reduce_motion", "high_contrast", "screen_reader_optimized", "font_scale_percent" ], "properties": { "color_blind_mode": { "type": [ "string", "null" ] }, "font_scale_percent": { "type": "integer", "format": "int32" }, "high_contrast": { "type": "boolean" }, "reduce_motion": { "type": "boolean" }, "screen_reader_optimized": { "type": "boolean" } } }, "UserAppearanceConfig": { "type": "object", "required": [ "theme", "code_theme", "layout_density", "sidebar_collapsed", "show_line_numbers" ], "properties": { "code_theme": { "type": "string" }, "layout_density": { "type": "string" }, "show_line_numbers": { "type": "boolean" }, "sidebar_collapsed": { "type": "boolean" }, "theme": { "type": "string" } } }, "UserConfigResponse": { "type": "object", "required": [ "profile", "appearance", "accessibility", "privacy", "notifications" ], "properties": { "accessibility": { "$ref": "#/components/schemas/UserAccessibilityConfig" }, "appearance": { "$ref": "#/components/schemas/UserAppearanceConfig" }, "notifications": { "$ref": "#/components/schemas/UserNotificationConfig" }, "privacy": { "$ref": "#/components/schemas/UserPrivacyConfig" }, "profile": { "$ref": "#/components/schemas/UserProfileConfig" } } }, "UserNotificationConfig": { "type": "object", "required": [ "email_enabled", "in_app_enabled", "push_enabled", "digest_mode", "dnd_enabled", "marketing_enabled", "security_enabled", "product_enabled" ], "properties": { "digest_mode": { "type": "string" }, "dnd_enabled": { "type": "boolean" }, "dnd_end_minute": { "type": [ "integer", "null" ], "format": "int32" }, "dnd_start_minute": { "type": [ "integer", "null" ], "format": "int32" }, "email_enabled": { "type": "boolean" }, "in_app_enabled": { "type": "boolean" }, "marketing_enabled": { "type": "boolean" }, "product_enabled": { "type": "boolean" }, "push_enabled": { "type": "boolean" }, "push_subscription_endpoint": { "type": [ "string", "null" ] }, "push_subscription_keys_auth": { "type": [ "string", "null" ] }, "push_subscription_keys_p256dh": { "type": [ "string", "null" ] }, "security_enabled": { "type": "boolean" } } }, "UserPrivacyConfig": { "type": "object", "required": [ "profile_visibility", "email_visibility", "activity_visibility", "allow_search_indexing", "allow_direct_messages", "show_online_status" ], "properties": { "activity_visibility": { "type": "string" }, "allow_direct_messages": { "type": "boolean" }, "allow_search_indexing": { "type": "boolean" }, "email_visibility": { "type": "string" }, "profile_visibility": { "type": "string" }, "show_online_status": { "type": "boolean" } } }, "UserProfileConfig": { "type": "object", "required": [ "language", "theme", "timezone" ], "properties": { "language": { "type": "string" }, "theme": { "type": "string" }, "timezone": { "type": "string" } } }, "UserRelationCard": { "type": "object", "required": [ "username", "is_following", "is_blocked" ], "properties": { "avatar_url": { "type": [ "string", "null" ] }, "display_name": { "type": [ "string", "null" ] }, "is_blocked": { "type": "boolean" }, "is_following": { "type": "boolean" }, "username": { "type": "string" } } }, "UserRelationCounts": { "type": "object", "required": [ "followers", "following", "blocked" ], "properties": { "blocked": { "type": "integer", "format": "int64" }, "followers": { "type": "integer", "format": "int64" }, "following": { "type": "integer", "format": "int64" } } }, "UserRelationStatus": { "type": "object", "required": [ "username", "is_following", "is_followed_by", "is_blocked", "has_blocked_me" ], "properties": { "avatar_url": { "type": [ "string", "null" ] }, "has_blocked_me": { "type": "boolean" }, "is_blocked": { "type": "boolean" }, "is_followed_by": { "type": "boolean" }, "is_following": { "type": "boolean" }, "username": { "type": "string" } } }, "UserSshKey": { "type": "object", "required": [ "id", "title", "public_key", "fingerprint", "key_type", "is_verified", "is_revoked", "created_at", "updated_at" ], "properties": { "created_at": { "type": "string" }, "expires_at": { "type": [ "string", "null" ] }, "fingerprint": { "type": "string" }, "id": { "type": "integer", "format": "int64" }, "is_revoked": { "type": "boolean" }, "is_verified": { "type": "boolean" }, "key_bits": { "type": [ "integer", "null" ], "format": "int32" }, "key_type": { "type": "string" }, "last_used_at": { "type": [ "string", "null" ] }, "public_key": { "type": "string" }, "title": { "type": "string" }, "updated_at": { "type": "string" } } }, "UserSummaryResponse": { "type": "object", "required": [ "username", "display_name", "avatar_url", "website_url", "created_at" ], "properties": { "avatar_url": { "type": "string" }, "created_at": { "type": "string" }, "display_name": { "type": "string" }, "username": { "type": "string" }, "website_url": { "type": "string" } } }, "Verify2FAParams": { "type": "object", "required": [ "code" ], "properties": { "code": { "type": "string" } } }, "VoiceDeafRequest": { "type": "object", "required": [ "deafened" ], "properties": { "deafened": { "type": "boolean" } } }, "VoiceMuteRequest": { "type": "object", "required": [ "muted" ], "properties": { "muted": { "type": "boolean" } } }, "WebhookDeliveryResponse": { "type": "object", "required": [ "id", "webhook", "event", "created_at" ], "properties": { "created_at": { "type": "string" }, "delivered_at": { "type": [ "string", "null" ] }, "error": { "type": [ "string", "null" ] }, "event": { "type": "string" }, "id": { "type": "string" }, "response_status": { "type": [ "integer", "null" ], "format": "int32" }, "webhook": { "type": "string" } } }, "WebhookResponse": { "type": "object", "required": [ "id", "repo", "url", "events", "active", "created_by", "created_at", "updated_at" ], "properties": { "active": { "type": "boolean" }, "created_at": { "type": "string" }, "created_by": { "type": "string" }, "events": { "type": "array", "items": { "type": "string" } }, "id": { "type": "string" }, "repo": { "type": "string" }, "updated_at": { "type": "string" }, "url": { "type": "string" } } }, "WorkspaceGroupResponse": { "type": "object", "required": [ "name", "is_deleted", "created_at" ], "properties": { "avatar_url": { "type": [ "string", "null" ] }, "created_at": { "type": "string" }, "is_deleted": { "type": "boolean" }, "name": { "type": "string" } } }, "WorkspaceJoinApplyResponse": { "type": "object", "required": [ "workspace_name", "workspace_avatar_url", "username", "status", "created_at", "updated_at" ], "properties": { "answer": { "type": [ "string", "null" ] }, "avatar_url": { "type": [ "string", "null" ] }, "created_at": { "type": "string" }, "message": { "type": [ "string", "null" ] }, "question": { "type": [ "string", "null" ] }, "status": { "type": "string" }, "updated_at": { "type": "string" }, "username": { "type": "string" }, "workspace_avatar_url": { "type": "string" }, "workspace_name": { "type": "string" } } }, "WorkspaceJoinApprovalResponse": { "type": "object", "required": [ "workspace_name", "workspace_avatar_url", "username", "approver_username", "approved", "created_at" ], "properties": { "approved": { "type": "boolean" }, "approver_avatar_url": { "type": [ "string", "null" ] }, "approver_username": { "type": "string" }, "avatar_url": { "type": [ "string", "null" ] }, "created_at": { "type": "string" }, "reason": { "type": [ "string", "null" ] }, "username": { "type": "string" }, "workspace_avatar_url": { "type": "string" }, "workspace_name": { "type": "string" } } }, "WorkspaceJoinStrategyResponse": { "type": "object", "required": [ "workspace_name", "workspace_avatar_url", "require_approval", "require_question", "has_answer", "enabled", "created_at", "updated_at" ], "properties": { "created_at": { "type": "string" }, "enabled": { "type": "boolean" }, "has_answer": { "type": "boolean" }, "question": { "type": [ "string", "null" ] }, "require_approval": { "type": "boolean" }, "require_question": { "type": "boolean" }, "updated_at": { "type": "string" }, "workspace_avatar_url": { "type": "string" }, "workspace_name": { "type": "string" } } }, "WorkspaceMemberResponse": { "type": "object", "required": [ "username", "owner", "admin", "join_at" ], "properties": { "admin": { "type": "boolean" }, "avatar_url": { "type": [ "string", "null" ] }, "display_name": { "type": [ "string", "null" ] }, "join_at": { "type": "string" }, "owner": { "type": "boolean" }, "username": { "type": "string" } } }, "WorkspaceResponse": { "type": "object", "required": [ "name", "description", "avatar_url", "created_at", "owner", "admin" ], "properties": { "admin": { "type": "boolean" }, "avatar_url": { "type": "string" }, "created_at": { "type": "string" }, "description": { "type": "string" }, "name": { "type": "string" }, "owner": { "type": "boolean" } } } }, "securitySchemes": { "session": { "type": "apiKey", "in": "cookie", "name": "id" } } }, "security": [ { "session": [] } ], "tags": [ { "name": "auth", "description": "Authentication & 2FA" }, { "name": "user", "description": "Current user settings & profile" }, { "name": "users", "description": "Public user info & relationships" }, { "name": "workspace", "description": "Workspace management" }, { "name": "issues", "description": "Issue tracking" }, { "name": "pull_request", "description": "Pull request operations" }, { "name": "git", "description": "Git repository operations" }, { "name": "repos", "description": "Repo management & configuration" }, { "name": "ai", "description": "AI model catalog" }, { "name": "agent", "description": "AI Agent sessions, conversations & streaming" }, { "name": "channel", "description": "Channel WebSocket & REST fallback" }, { "name": "search", "description": "Global search across workspaces, repos, channels, issues" } ] }