Skip to content
Clone
main
12088 lines 246.3 KB
/**
* Generated by orval 🍺
* Do not edit manually.
* gitdata api
*
* ## Conventions
*
* ### Response envelope
* Every JSON response uses the same envelope:
*
* | field | meaning |
* |---|---|
* | `code` | always equal to the HTTP status code |
* | `message` | human-readable result / error summary |
* | `data` | payload, `null` for errors and empty results |
* | `error` | field-level / technical detail (e.g. validation errors), may be `null` |
* | `error_code` | stable machine-readable code on 4xx (e.g. `conflict`, `rate_limited`), may be `null` |
* | `request_id` | correlation id, also returned as the `X-Request-Id` header |
*
* Successful `POST` creation returns `200` (not `201`); empty results use `200` with `data: null`.
* - `POST /auth/logout` is idempotent: repeating it always succeeds with `200`.
*
* ### Authentication
* - `session_cookie`: opaque session carried in the `session` cookie and stored in
* Redis. `GET /auth/login` redirects to the same-origin login page;
* `POST /auth/logout` revokes the session and clears the cookie.
*
* ### URL & parameter style
* - Paths are `kebab-case`, plural nouns, nesting expresses ownership.
* - Query/path/JSON field names are `snake_case`; enum values are `snake_case`.
* - All endpoints are versioned under `/api/v1`. `/api/v1/internal/*` is guarded
* by the `x-gitdata-service-key` header and is NOT documented here.
* - State-transition actions use `POST {resource}/{id}/{verb}` (close/reopen);
* idempotent whole-resource state uses `PUT` (default branch, pin, read-state);
* partial updates use `PATCH`.
*
* ### Pagination
* - 唯一 offset 风格:`?limit=&offset=`(`limit` 默认 50;`offset` 上限 5000),
* 分页响应的 `data` 恒为 `{ items, total, limit, offset }`,字段均为无符号整数。
* - `limit` 为 0、超过端点上限或 `offset` 超过 5000 时返回 400
* (`error_code: bad_request`),不会静默截断。
* - 排序参数为 `?sort=<field>&order=asc|desc`;`sort` 的取值按端点枚举校验,
* 未知值返回 400,未知参数同样返回 400。
* - chat 消息额外接受 `before_seq` / `after_seq` 作为筛选条件,响应仍是同一 `Page` 形状。
* - Git LFS 锁定列表的 `next_cursor` 是 LFS 协议字段,不适用本约定。
*
* ### PATCH semantics (three-state fields)
* Update commands use `Option<Option<T>>` for clearable fields:
* - field **absent** → unchanged
* - field `null` → cleared
* - field value → set
*
* Example: `{"milestone_id": null}` unassigns the milestone; omitting
* `milestone_id` leaves it untouched.
*
* ### 2FA
* TOTP enrollment, recovery codes and sensitive-operation verification are
* handled by identity; GitData only proxies the account-management endpoints.
*
* ### Operations
* - `GET /healthz` — liveness probe (no auth, outside `/api/v1`).
* - `GET /readyz` — readiness probe: database (primary) + redis live checks,
* rocketmq + s3 sampled every 10s, `503` when any is down.
* - Runtime metrics are pushed to the configured OTLP collector (30s interval);
* there is no scrape endpoint.
* - Cross-origin browser access is disabled by default; the API expects a
* same-origin reverse proxy. Enable `web.cors_allow_origins` to allowlist
* other origins.
*
* ### Abuse controls
* - Creation endpoints are subject to per-user rolling 24h quotas
* (`[quota]` config; 0 disables). Exceeding a quota returns `429`
* with `error_code: "rate_limited"`.
*
* ### Idempotency
* - `POST /chat/rooms/{room_id}/messages` accepts `nonce`: unique per room;
* retrying with the same nonce returns the original message instead of a duplicate.
*
* ### Resource references
* - User references in responses embed a `user` object (`UserDto`) wherever a
* single person is shown; raw uuid fields are named `*_id` consistently.
* - Viewer-specific state is embedded, not fetched separately: `RepoDto.me`
* carries `starred`/`watch_mode`, `IssueDto.viewer_watch` carries the caller
* watch mode. `PUT /repos/{space}/{repo}/star|unstar` style reads do not exist.
*
* ### Identifiers
* - Issues are addressable by UUID **or** board-scoped number
* (e.g. `/issues/{space}/boards/{board}/issues/123`).
* - Binary uploads use raw request bodies with a content-type header
* (e.g. `PUT /me/avatar` accepts `image/*` bytes, not base64 JSON).
*
* OpenAPI spec version: 1.0
*/
export interface AcceptAgreementCmd {
version: string;
}
export interface AcceptAgreementResp {
recorded: boolean;
}
export interface AccountDeletionDto {
/** @nullable */
last_error?: string | null;
purge_after: string;
requested_at: string;
status: string;
}
/**
* 白名单用途。与 KenShell 的 `purpose` 一一对应。
*/
export type WhitelistKind = "Push" | "Merge" | "Approval";
export interface AddBranchWhitelistCmd {
/** @nullable */
group_id?: string | null;
kind: WhitelistKind;
/** @nullable */
user_id?: number | null;
}
export type SpaceMemberRole = "member" | "admin" | "owner";
export interface AddMemberBody {
role?: null | SpaceMemberRole;
role_keys?: string[];
user_id: number;
}
export interface AddTagWhitelistCmd {
user_id: number;
}
export interface AgreementDoc {
content_md: string;
key: string;
title: string;
version: string;
}
/**
* 允许加入的历史开关,映射 `spaces.allow_join_level`。
*/
export type AllowJoinLevel =
| "None"
| "NeedMailActive"
| "NeedMailActiveAndLastOneMid"
| "NeedMailActiveAndLastOneHours"
| "NeedMailActiveAndPhoneActive";
export interface AppliedPatchDto {
applied: boolean;
conflicts: string[];
}
export type ArchiveFormatDto = "tar" | "tar_gz" | "tar_bz2" | "zip";
export interface ArchiveCreateCmd {
format: ArchiveFormatDto;
/** @nullable */
path_filter?: string | null;
revision: string;
}
export interface ArchiveResultDto {
cache_key: string;
/** @nullable */
download_url?: string | null;
format: string;
size: number;
}
export interface AssignCmd {
/** 用户名或 UUID。 */
user: string;
}
export interface AssignGroupCmd {
group_id: string;
}
export interface AssignRoleBody {
member_id: string;
role_key: string;
}
export interface AttachLabelCmd {
/** 标签 UUID 或名称(同一仓库目录内的标签)。 */
label: string;
}
export type AttachmentStatus = "Pending" | "Uploaded";
export interface AttachmentDto {
content_type: string;
created_at: string;
/** @nullable */
description?: string | null;
/** @nullable */
duration_secs?: number | null;
filename: string;
/** @nullable */
height?: number | null;
id: string;
/** @nullable */
message_id?: string | null;
/** @nullable */
room_id?: string | null;
size: number;
status: AttachmentStatus;
user_id: number;
/** @nullable */
width?: number | null;
}
export type Audience = "Everyone" | "FollowingOnly" | "Nobody";
export type AuthorType = "User" | "Bot" | "Webhook";
export type AvatarFormat = "jpg" | "png" | "webp" | "gif";
export interface AvatarDto {
/**
* Size of the uploaded original in bytes.
* @minimum 0
*/
bytes: number;
/** Format of the uploaded original. */
format: AvatarFormat;
updated_at: string;
/**
* Browser-facing URL. Points at the compressed derivative when one exists,
* and at the uploaded bytes otherwise.
*/
url: string;
user_id: number;
}
export interface BanMemberBody {
/** @nullable */
reason?: string | null;
}
export interface BlameRangeDto {
abbreviated_oid: string;
commit_sha: string;
ending_line: number;
/** @nullable */
path?: string | null;
starting_line: number;
}
export interface BlobContentDto {
/** @items.minimum 0 */
data: number[];
is_binary: boolean;
oid: string;
size: number;
truncated: boolean;
}
export interface LfsPointerDto {
/** @nullable */
oid?: string | null;
/** @nullable */
size?: number | null;
version: string;
}
export interface BlobMetaDto {
is_binary: boolean;
is_lfs_pointer: boolean;
lfs?: null | LfsPointerDto;
oid: string;
size: number;
}
export interface BoardDto {
closed_issues_count: number;
created_at: string;
/** @nullable */
description?: string | null;
dir_id: string;
/** @nullable */
icon?: string | null;
id: string;
name: string;
open_issues_count: number;
/**
* Number prefix for the board's issues (`CAD` renders as `CAD-12`).
* @nullable
*/
prefix?: string | null;
/** @nullable */
updated_at?: string | null;
}
export interface BoardPath {
board_id: string;
space_name: string;
}
export interface BookmarkDto {
created_at: string;
created_by_id: number;
/** @nullable */
emoji?: string | null;
id: string;
position: number;
room_id: string;
title: string;
/** @nullable */
url?: string | null;
}
export interface BranchDto {
commit_sha: string;
created_at: string;
/** @nullable */
deleted_at?: string | null;
is_deleted: boolean;
is_protected: boolean;
name: string;
updated_at: string;
}
export interface BranchInfoDto {
/** @nullable */
commit_message?: string | null;
commit_sha: string;
is_protected: boolean;
name: string;
}
export interface BranchPolicyDto {
block_on_change_requested_reviews: boolean;
block_on_outdated_branch: boolean;
block_on_rejected_reviews: boolean;
branch_pattern: string;
created_at: string;
dismiss_stale_approvals: boolean;
enable_approvals_whitelist: boolean;
enable_force_push: boolean;
enable_merge_whitelist: boolean;
enable_push: boolean;
enable_push_whitelist: boolean;
id: string;
protected_file_patterns: string;
push_whitelist_deploy_keys: boolean;
repo_id: string;
require_signed_commits: boolean;
required_approvals: number;
required_status_contexts: string;
unprotected_file_patterns: string;
updated_at: string;
}
export interface BranchPolicyFlags {
/** @nullable */
block_on_change_requested_reviews?: boolean | null;
/** @nullable */
block_on_outdated_branch?: boolean | null;
/** @nullable */
block_on_rejected_reviews?: boolean | null;
/** @nullable */
dismiss_stale_approvals?: boolean | null;
/** @nullable */
enable_approvals_whitelist?: boolean | null;
/** @nullable */
enable_force_push?: boolean | null;
/** @nullable */
enable_merge_whitelist?: boolean | null;
/** @nullable */
enable_push?: boolean | null;
/** @nullable */
enable_push_whitelist?: boolean | null;
/** @nullable */
protected_file_patterns?: string | null;
/** @nullable */
require_signed_commits?: boolean | null;
/** @nullable */
required_approvals?: number | null;
/** @nullable */
required_status_contexts?: string | null;
/** @nullable */
unprotected_file_patterns?: string | null;
}
export interface UserDto {
avatar_url: string;
display_name: string;
user_id: number;
username: string;
}
export interface BranchWhitelistDto {
created_at: string;
/** @nullable */
group_id?: string | null;
id: string;
kind: WhitelistKind;
policy_id: string;
user?: null | UserDto;
/** @nullable */
user_id?: number | null;
}
export type BulkAction = "close" | "reopen";
export interface BulkDeleteCmd {
message_ids: string[];
}
export interface BulkIssuesCmd {
action: BulkAction;
issue_refs: string[];
}
export interface BulkResultDto {
/** @minimum 0 */
updated: number;
}
export interface CallerSignatureBody {
/** @nullable */
when?: string | null;
}
export interface ChallengeResponse {
context: string;
/** @minimum 0 */
difficulty: number;
/** @minimum 0 */
expires_at: number;
/** @minimum 0 */
issued_at: number;
}
export interface ChangePasswordCmd {
new_password: string;
old_password: string;
}
export interface ChangedPathDto {
/** @minimum 0 */
new_mode: number;
/** @nullable */
new_oid?: string | null;
new_path: string;
/** @minimum 0 */
old_mode: number;
/** @nullable */
old_oid?: string | null;
/** @nullable */
old_path?: string | null;
status: string;
}
export interface ChangedPathDiffDto {
binary: boolean;
/** @minimum 0 */
lines_added: number;
/** @minimum 0 */
lines_removed: number;
/** @nullable */
patch?: string | null;
path: ChangedPathDto;
}
export type ChatMessageType =
| "Default"
| "Reply"
| "ThreadCreated"
| "ChannelJoin"
| "ChannelLeave"
| "ChannelTopic"
| "ChannelPinnedItem"
| "Reminder"
| "System";
export interface CheckPermissionBody {
permission: string;
/** @nullable */
user_id?: number | null;
}
export interface CleanupObjectDto {
/** 目录的子节点数 / 频道的子频道数。 */
child_count: number;
/** `dirs.id`(目录/仓库/问题集/智能体集)或 `rooms.id`(频道)。 */
id: string;
is_archived: boolean;
/**
* 仅仓库与频道有可见性开关。
* @nullable
*/
is_private?: boolean | null;
/** `dir | object | repo | board | text | voice | stage | category | news | guild_room` */
kind: string;
name: string;
/** 目录上的权限覆盖条数(group + user)。 */
overwrite_count: number;
/** 父链拼出的可读路径,例如 `bots / 研究研究`。 */
path: string;
}
export interface CodeActivityAuthorDto {
additions: number;
commits: number;
deletions: number;
email: string;
name: string;
}
export interface CodeActivityDto {
authors: CodeActivityAuthorDto[];
total_additions: number;
total_commits: number;
total_deletions: number;
}
export interface CodeCommentDto {
author?: null | UserDto;
body: string;
commit_sha: string;
created_at: string;
id: string;
line: number;
/** 该评论锚定的提交是否仍是当前分支提示(否则视为 outdated)。 */
outdated: boolean;
/** @nullable */
parent_id?: string | null;
path: string;
repo_id: string;
resolved: boolean;
/** @nullable */
resolved_by?: number | null;
/** @nullable */
updated_at?: string | null;
}
export interface CommentDto {
content: string;
created_at: string;
id: string;
/** @nullable */
issue_id?: string | null;
/** @nullable */
parent_id?: string | null;
poster?: null | UserDto;
/** @nullable */
updated_at?: string | null;
}
export interface CommentPath {
board_id: string;
comment_id: string;
issue_id: string;
space_name: string;
}
export interface CommentReactionPath {
board_id: string;
comment_id: string;
issue_id: string;
space_name: string;
}
export type CommentSort = "created_at" | "updated_at";
export interface CommentTreeNode {
comment: CommentDto;
replies: CommentTreeNode[];
}
export interface CommitDto {
author_email: string;
author_name: string;
author_time: number;
committer_email: string;
committer_name: string;
committer_time: number;
id: string;
message: string;
parents: string[];
tree_id: string;
}
export interface SignatureDto {
email: string;
name: string;
when: string;
}
export type ObjectKind = "merge" | "squash";
export interface CommitObjectBody {
author: SignatureDto;
committer: SignatureDto;
kind: ObjectKind;
message: string;
parents: string[];
tree: string;
}
export type CommitStatusDtoState = "pending" | "success" | "failure" | "error";
export interface CommitStatusDto {
context: string;
created_at: string;
creator?: null | UserDto;
creator_id: number;
/** @nullable */
description?: string | null;
state: CommitStatusDtoState;
/** @nullable */
target_url?: string | null;
/** @nullable */
updated_at?: string | null;
}
export interface CommitSyncResponse {
repo_id: string;
sha: string;
}
/**
* 提交历史页:统一分页字段 + 该端点特有的 `has_more` / `diff_view_style`。
*/
export interface CommitsPage {
diff_view_style: string;
has_more: boolean;
items: CommitDto[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export interface ConflictDetailDto {
/** @nullable */
content?: string | null;
path: string;
}
export interface ContentHistoryDto {
/** @nullable */
comment_id?: string | null;
/** @nullable */
content_after?: string | null;
/** @nullable */
content_before?: string | null;
created_at: string;
edited_at: string;
id: string;
issue_id: string;
poster?: null | UserDto;
}
export interface ContentHistoryPath {
board_id: string;
issue_id: string;
space_name: string;
}
export interface ContributorStatDto {
additions: number;
commits: number;
deletions: number;
email: string;
name: string;
}
export interface CountResp {
count: number;
}
export interface CreateAttachmentCmd {
content_type: string;
/** @nullable */
description?: string | null;
filename: string;
size: number;
}
export interface CreateBoardCmd {
/** @nullable */
description?: string | null;
/** @nullable */
icon?: string | null;
name: string;
/** @nullable */
parent_dir_id?: string | null;
/** @nullable */
prefix?: string | null;
}
export interface CreateBookmarkCmd {
/** @nullable */
emoji?: string | null;
title: string;
/** @nullable */
url?: string | null;
}
export interface CreateBranchCmd {
name: string;
/** @nullable */
start_point?: string | null;
}
/**
* 分支保护策略的创建请求。
*
* 字段与 [`BranchPolicyFlags`] 一一对应,但刻意不使用 `#[serde(flatten)]`:
* 扁平化会让 utoipa 生成 `allOf` 组合,而 web 端 API 生成器无法处理该形状。
*/
export interface CreateBranchPolicyCmd {
/** @nullable */
block_on_change_requested_reviews?: boolean | null;
/** @nullable */
block_on_outdated_branch?: boolean | null;
/** @nullable */
block_on_rejected_reviews?: boolean | null;
branch_pattern: string;
/** @nullable */
dismiss_stale_approvals?: boolean | null;
/** @nullable */
enable_approvals_whitelist?: boolean | null;
/** @nullable */
enable_force_push?: boolean | null;
/** @nullable */
enable_merge_whitelist?: boolean | null;
/** @nullable */
enable_push?: boolean | null;
/** @nullable */
enable_push_whitelist?: boolean | null;
/** @nullable */
protected_file_patterns?: string | null;
/** @nullable */
require_signed_commits?: boolean | null;
/** @nullable */
required_approvals?: number | null;
/** @nullable */
required_status_contexts?: string | null;
/** @nullable */
unprotected_file_patterns?: string | null;
}
export interface CreateCodeCommentCmd {
body: string;
/**
* 锚定的提交;缺省使用该 revision 解析出的提交。
* @nullable
*/
commit_sha?: string | null;
line: number;
/** @nullable */
parent_id?: string | null;
path: string;
/** @nullable */
revision?: string | null;
}
export interface CreateCommentCmd {
content: string;
/** @nullable */
parent_id?: string | null;
}
export interface CreateDependencyCmd {
dependency_id: string;
}
export interface CreateDirCmd {
name: string;
/** @nullable */
parent_dir_id?: string | null;
/** @nullable */
position?: number | null;
}
export interface CreateGroupCmd {
/** @nullable */
color?: string | null;
/** @nullable */
icon_hash?: string | null;
name: string;
permissions?: string[];
/** @nullable */
position?: number | null;
/** @nullable */
unicode_emoji?: string | null;
}
export interface CreateInviteBody {
max_uses?: number;
/** @nullable */
role_id?: string | null;
/** @nullable */
target_user_id?: number | null;
/**
* @minimum 0
* @nullable
*/
ttl_secs?: number | null;
}
export type SpaceJoinMethod =
"direct" | "invite_link" | "invite_targeted" | "invite_email";
export interface InviteSummary {
created_at: string;
created_by: number;
/** @nullable */
email?: string | null;
/** @nullable */
expires_at?: string | null;
id: string;
max_uses: number;
method: SpaceJoinMethod;
organization_id: string;
/** @nullable */
revoked_at?: string | null;
/** @nullable */
role_id?: string | null;
/** @nullable */
target_user_id?: number | null;
uses: number;
}
export interface CreateInviteResponse {
invite: InviteSummary;
token: string;
}
export interface CreateIssueAttachmentCmd {
content_type: string;
filename: string;
size: number;
/** Checked for membership so unbound uploads are still space-scoped. */
space_name: string;
}
export type IssuePriority = "none" | "low" | "medium" | "high" | "urgent";
export interface CreateIssueCmd {
assignee_ids?: number[];
/** Draft uploads (`POST /issues/attachments`) to link to the new issue. */
attachment_ids?: string[];
content?: string;
/** @nullable */
description?: string | null;
/** @nullable */
due_at?: string | null;
label_ids?: string[];
/** @nullable */
milestone_id?: string | null;
priority?: IssuePriority;
title: string;
}
export type IssueMemberKind = "assignee" | "mentioned" | "participant";
export interface CreateIssueMemberCmd {
kind: IssueMemberKind;
user_id: number;
}
export interface CreateJoinRequestCmd {
/** @nullable */
note?: string | null;
}
export type SpaceJoinTrigger = "issue_reaction" | "issue_comment_reaction";
export interface CreateJoinRuleCmd {
matcher?: string;
role_id: string;
trigger?: SpaceJoinTrigger;
}
export interface CreateLabelCmd {
color: string;
/** @nullable */
description?: string | null;
/** @nullable */
exclusive?: boolean | null;
/** @nullable */
exclusive_order?: number | null;
name: string;
}
export interface CreateMilestoneCmd {
/** @nullable */
description?: string | null;
/** @nullable */
due_at?: string | null;
name: string;
}
export type SpaceJoinPolicy = "open" | "approval" | "invite_only" | "private";
export interface CreateOrganizationBody {
/** @nullable */
allow_invite?: boolean | null;
/** @nullable */
allow_join?: boolean | null;
/** @nullable */
allow_join_level?: number | null;
/** @nullable */
avatar_url?: string | null;
/** @nullable */
description?: string | null;
join_policy?: null | SpaceJoinPolicy;
/** @nullable */
member_must_enable_2fa?: boolean | null;
name: string;
/** @nullable */
require_email_verified?: boolean | null;
/** @nullable */
require_mfa?: boolean | null;
slug: string;
/** @nullable */
welcome_message?: string | null;
}
export interface CreateOutboundWebhookCmd {
name: string;
url: string;
}
export interface CreatePinCmd {
issue_id: string;
pin_order: number;
}
export interface CreatePullCmd {
/** @nullable */
base_branch?: string | null;
/** @nullable */
body?: string | null;
/** @nullable */
draft?: boolean | null;
head_branch: string;
/** @nullable */
issue_id?: string | null;
title: string;
}
export interface CreatePullCommentCmd {
body: string;
/** @nullable */
commit_sha?: string | null;
/** @nullable */
line?: number | null;
/** @nullable */
parent_comment_id?: string | null;
/**
* 行内评论需要 path;缺省则为普通讨论评论。
* @nullable
*/
path?: string | null;
/** @nullable */
review_id?: string | null;
/**
* left | right
* @nullable
*/
side?: string | null;
}
export interface CreateReactionCmd {
emoji: string;
}
export interface CreateReleaseCmd {
/** @nullable */
content?: string | null;
/** @nullable */
is_draft?: boolean | null;
/** @nullable */
is_prerelease?: boolean | null;
tag_name: string;
/** @nullable */
target?: string | null;
/** @nullable */
title?: string | null;
}
export interface CreateReminderCmd {
/** @nullable */
note?: string | null;
remind_at: string;
}
export interface CreateRepoCmd {
/** @nullable */
default_branch?: string | null;
/** @nullable */
description?: string | null;
enable_lfs?: boolean;
/** @nullable */
init_message?: string | null;
is_private?: boolean;
/** @nullable */
license_name?: string | null;
name: string;
/** @nullable */
parent_dir_id?: string | null;
}
export interface CreateRepoRelCmd {
repo_id: string;
}
export interface CreateReportCmd {
/** @nullable */
evidence?: string | null;
reason: string;
reported_id: number;
}
export type PermissionEffect = "allow" | "deny";
export interface PermissionGrant {
effect: PermissionEffect;
permission: string;
}
export interface CreateRoleBody {
default_role?: boolean;
/** @nullable */
description?: string | null;
key: string;
name: string;
permissions?: PermissionGrant[];
rank?: number;
self_assignable?: boolean;
}
export type RoomKind =
| "GuildRoom"
| "GroupDm"
| "Dm"
| "Category"
| "Text"
| "Voice"
| "Stage"
| "News"
| "Thread"
| "DirectMessage";
export interface CreateRoomCmd {
is_private?: boolean;
kind?: RoomKind;
name: string;
nsfw?: boolean;
/** @nullable */
parent_id?: string | null;
/** @nullable */
rate_limit_per_user?: number | null;
/** @nullable */
topic?: string | null;
/** @nullable */
user_limit?: number | null;
}
export interface CreateTagCmd {
annotated?: boolean;
/** @nullable */
message?: string | null;
name: string;
target: string;
}
export interface CreateTagPolicyCmd {
name_pattern: string;
}
export interface CreateThreadCmd {
/** @nullable */
name?: string | null;
}
export interface CreateTopicCmd {
name: string;
}
export interface CreateTrackedTimeCmd {
seconds: number;
}
export interface CreateWebhookCmd {
name: string;
}
export interface DeleteOrgQuery {
force?: boolean;
/** @nullable */
reason?: string | null;
}
export interface DependencyDto {
created_at: string;
dependency_id: string;
id: string;
issue_id: string;
}
export interface DependencyPath {
board_id: string;
dep_id: string;
issue_id: string;
space_name: string;
}
export interface DeviceDto {
/** @nullable */
device_name?: string | null;
/** @nullable */
device_type?: string | null;
first_seen_at: string;
id: string;
is_trusted: boolean;
last_seen_at: string;
/** @nullable */
os?: string | null;
}
export interface DiffTreeRecordDto {
/** @nullable */
base_blob_id?: string | null;
/**
* @minimum 0
* @nullable
*/
base_mode?: number | null;
/** @nullable */
base_path?: string | null;
/** @nullable */
head_blob_id?: string | null;
/**
* @minimum 0
* @nullable
*/
head_mode?: number | null;
/** @nullable */
head_path?: string | null;
/** @minimum 0 */
score: number;
status: string;
}
export type DiffView = "shortstat" | "numstat" | "files" | "tree";
export type DirKind =
"Dir" | "Object" | "IssueBoard" | "GitRepo" | "ChatChannel" | "VoiceChannel";
export interface DirNodeDto {
/** @nullable */
archived_at?: string | null;
children: DirNodeDto[];
/** @nullable */
color?: string | null;
created_at: string;
created_by_id: number;
/** @nullable */
icon?: string | null;
id: string;
is_archived: boolean;
kind: DirKind;
name: string;
/** @nullable */
parent_dir_id?: string | null;
position: number;
/** @nullable */
purpose?: string | null;
/** @nullable */
topic?: string | null;
updated_at: string;
}
export interface DmDto {
created_at: string;
id: string;
kind: RoomKind;
/** @nullable */
last_message_id?: string | null;
last_read_seq: number;
members?: UserDto[];
name: string;
peer?: null | UserDto;
tip_seq: number;
unread_count: number;
}
export interface DraftDto {
content: string;
room_id: string;
/** @nullable */
thread_id?: string | null;
updated_at: string;
}
export interface DraftQuery {
/** @nullable */
thread_id?: string | null;
}
export interface EmbedAuthor {
/** @nullable */
icon_url?: string | null;
name?: string;
/** @nullable */
proxy_icon_url?: string | null;
/** @nullable */
url?: string | null;
}
export interface EmbedField {
inline?: boolean;
name?: string;
value?: string;
}
export interface EmbedFooter {
/** @nullable */
icon_url?: string | null;
/** @nullable */
proxy_icon_url?: string | null;
text?: string;
}
export interface EmbedMedia {
/** @nullable */
content_hash?: string | null;
/** @nullable */
content_type?: string | null;
/** @nullable */
description?: string | null;
/**
* @minimum 0
* @nullable
*/
duration?: number | null;
/** @minimum 0 */
flags?: number;
/**
* @minimum 0
* @nullable
*/
height?: number | null;
/** @nullable */
placeholder?: string | null;
/** @nullable */
proxy_url?: string | null;
/** @nullable */
url?: string | null;
/**
* @minimum 0
* @nullable
*/
width?: number | null;
}
export interface EmbedProvider {
name?: string;
/** @nullable */
url?: string | null;
}
export interface EmojiDto {
animated: boolean;
created_at: string;
disabled: boolean;
id: string;
name: string;
space_id: string;
}
export type EnvelopeAcceptAgreementRespData = {
recorded: boolean;
};
export interface EnvelopeAcceptAgreementResp {
code: number;
data?: EnvelopeAcceptAgreementRespData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeAccountDeletionDtoData = {
/** @nullable */
last_error?: string | null;
purge_after: string;
requested_at: string;
status: string;
};
export interface EnvelopeAccountDeletionDto {
code: number;
data?: EnvelopeAccountDeletionDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeArchiveResultDtoData = {
cache_key: string;
/** @nullable */
download_url?: string | null;
format: string;
size: number;
};
export interface EnvelopeArchiveResultDto {
code: number;
data?: EnvelopeArchiveResultDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeAttachmentDtoData = {
content_type: string;
created_at: string;
/** @nullable */
description?: string | null;
/** @nullable */
duration_secs?: number | null;
filename: string;
/** @nullable */
height?: number | null;
id: string;
/** @nullable */
message_id?: string | null;
/** @nullable */
room_id?: string | null;
size: number;
status: AttachmentStatus;
user_id: number;
/** @nullable */
width?: number | null;
};
export interface EnvelopeAttachmentDto {
code: number;
data?: EnvelopeAttachmentDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeAvatarDtoData = {
/**
* Size of the uploaded original in bytes.
* @minimum 0
*/
bytes: number;
/** Format of the uploaded original. */
format: AvatarFormat;
updated_at: string;
/**
* Browser-facing URL. Points at the compressed derivative when one exists,
* and at the uploaded bytes otherwise.
*/
url: string;
user_id: number;
};
export interface EnvelopeAvatarDto {
code: number;
data?: EnvelopeAvatarDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeBlobContentDtoData = {
/** @items.minimum 0 */
data: number[];
is_binary: boolean;
oid: string;
size: number;
truncated: boolean;
};
export interface EnvelopeBlobContentDto {
code: number;
data?: EnvelopeBlobContentDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeBlobMetaDtoData = {
is_binary: boolean;
is_lfs_pointer: boolean;
lfs?: null | LfsPointerDto;
oid: string;
size: number;
};
export interface EnvelopeBlobMetaDto {
code: number;
data?: EnvelopeBlobMetaDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeBoardDtoData = {
closed_issues_count: number;
created_at: string;
/** @nullable */
description?: string | null;
dir_id: string;
/** @nullable */
icon?: string | null;
id: string;
name: string;
open_issues_count: number;
/**
* Number prefix for the board's issues (`CAD` renders as `CAD-12`).
* @nullable
*/
prefix?: string | null;
/** @nullable */
updated_at?: string | null;
};
export interface EnvelopeBoardDto {
code: number;
data?: EnvelopeBoardDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeBookmarkDtoData = {
created_at: string;
created_by_id: number;
/** @nullable */
emoji?: string | null;
id: string;
position: number;
room_id: string;
title: string;
/** @nullable */
url?: string | null;
};
export interface EnvelopeBookmarkDto {
code: number;
data?: EnvelopeBookmarkDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeBranchDtoData = {
commit_sha: string;
created_at: string;
/** @nullable */
deleted_at?: string | null;
is_deleted: boolean;
is_protected: boolean;
name: string;
updated_at: string;
};
export interface EnvelopeBranchDto {
code: number;
data?: EnvelopeBranchDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeBranchPolicyDtoData = {
block_on_change_requested_reviews: boolean;
block_on_outdated_branch: boolean;
block_on_rejected_reviews: boolean;
branch_pattern: string;
created_at: string;
dismiss_stale_approvals: boolean;
enable_approvals_whitelist: boolean;
enable_force_push: boolean;
enable_merge_whitelist: boolean;
enable_push: boolean;
enable_push_whitelist: boolean;
id: string;
protected_file_patterns: string;
push_whitelist_deploy_keys: boolean;
repo_id: string;
require_signed_commits: boolean;
required_approvals: number;
required_status_contexts: string;
unprotected_file_patterns: string;
updated_at: string;
};
export interface EnvelopeBranchPolicyDto {
code: number;
data?: EnvelopeBranchPolicyDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeBranchWhitelistDtoData = {
created_at: string;
/** @nullable */
group_id?: string | null;
id: string;
kind: WhitelistKind;
policy_id: string;
user?: null | UserDto;
/** @nullable */
user_id?: number | null;
};
export interface EnvelopeBranchWhitelistDto {
code: number;
data?: EnvelopeBranchWhitelistDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeBulkResultDtoData = {
/** @minimum 0 */
updated: number;
};
export interface EnvelopeBulkResultDto {
code: number;
data?: EnvelopeBulkResultDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeChallengeResponseData = {
context: string;
/** @minimum 0 */
difficulty: number;
/** @minimum 0 */
expires_at: number;
/** @minimum 0 */
issued_at: number;
};
export interface EnvelopeChallengeResponse {
code: number;
data?: EnvelopeChallengeResponseData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeCodeActivityDtoData = {
authors: CodeActivityAuthorDto[];
total_additions: number;
total_commits: number;
total_deletions: number;
};
export interface EnvelopeCodeActivityDto {
code: number;
data?: EnvelopeCodeActivityDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeCodeCommentDtoData = {
author?: null | UserDto;
body: string;
commit_sha: string;
created_at: string;
id: string;
line: number;
/** 该评论锚定的提交是否仍是当前分支提示(否则视为 outdated)。 */
outdated: boolean;
/** @nullable */
parent_id?: string | null;
path: string;
repo_id: string;
resolved: boolean;
/** @nullable */
resolved_by?: number | null;
/** @nullable */
updated_at?: string | null;
};
export interface EnvelopeCodeCommentDto {
code: number;
data?: EnvelopeCodeCommentDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeCommentDtoData = {
content: string;
created_at: string;
id: string;
/** @nullable */
issue_id?: string | null;
/** @nullable */
parent_id?: string | null;
poster?: null | UserDto;
/** @nullable */
updated_at?: string | null;
};
export interface EnvelopeCommentDto {
code: number;
data?: EnvelopeCommentDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeCommitStatusDtoData = {
context: string;
created_at: string;
creator?: null | UserDto;
creator_id: number;
/** @nullable */
description?: string | null;
state: CommitStatusDtoState;
/** @nullable */
target_url?: string | null;
/** @nullable */
updated_at?: string | null;
};
export interface EnvelopeCommitStatusDto {
code: number;
data?: EnvelopeCommitStatusDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
/**
* 提交历史页:统一分页字段 + 该端点特有的 `has_more` / `diff_view_style`。
*/
export type EnvelopeCommitsPageData = {
diff_view_style: string;
has_more: boolean;
items: CommitDto[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopeCommitsPage {
code: number;
/** 提交历史页:统一分页字段 + 该端点特有的 `has_more` / `diff_view_style`。 */
data?: EnvelopeCommitsPageData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeConflictDetailDtoData = {
/** @nullable */
content?: string | null;
path: string;
};
export interface EnvelopeConflictDetailDto {
code: number;
data?: EnvelopeConflictDetailDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeCountRespData = {
count: number;
};
export interface EnvelopeCountResp {
code: number;
data?: EnvelopeCountRespData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeCreateInviteResponseData = {
invite: InviteSummary;
token: string;
};
export interface EnvelopeCreateInviteResponse {
code: number;
data?: EnvelopeCreateInviteResponseData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeDependencyDtoData = {
created_at: string;
dependency_id: string;
id: string;
issue_id: string;
};
export interface EnvelopeDependencyDto {
code: number;
data?: EnvelopeDependencyDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeDirNodeDtoData = {
/** @nullable */
archived_at?: string | null;
children: DirNodeDto[];
/** @nullable */
color?: string | null;
created_at: string;
created_by_id: number;
/** @nullable */
icon?: string | null;
id: string;
is_archived: boolean;
kind: DirKind;
name: string;
/** @nullable */
parent_dir_id?: string | null;
position: number;
/** @nullable */
purpose?: string | null;
/** @nullable */
topic?: string | null;
updated_at: string;
};
export interface EnvelopeDirNodeDto {
code: number;
data?: EnvelopeDirNodeDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeDmDtoData = {
created_at: string;
id: string;
kind: RoomKind;
/** @nullable */
last_message_id?: string | null;
last_read_seq: number;
members?: UserDto[];
name: string;
peer?: null | UserDto;
tip_seq: number;
unread_count: number;
};
export interface EnvelopeDmDto {
code: number;
data?: EnvelopeDmDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeDraftDtoData = {
content: string;
room_id: string;
/** @nullable */
thread_id?: string | null;
updated_at: string;
};
export interface EnvelopeDraftDto {
code: number;
data?: EnvelopeDraftDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeEmojiDtoData = {
animated: boolean;
created_at: string;
disabled: boolean;
id: string;
name: string;
space_id: string;
};
export interface EnvelopeEmojiDto {
code: number;
data?: EnvelopeEmojiDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeFetchResultDtoData = {
new: string[];
updated: string[];
};
export interface EnvelopeFetchResultDto {
code: number;
data?: EnvelopeFetchResultDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeGroupDtoData = {
color: string;
created_at: string;
created_by?: null | UserDto;
/** @nullable */
icon_hash?: string | null;
id: string;
name: string;
permissions: string[];
position: number;
space_id: string;
/** @nullable */
unicode_emoji?: string | null;
/** @nullable */
updated_at?: string | null;
version: number;
};
export interface EnvelopeGroupDto {
code: number;
data?: EnvelopeGroupDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeGroupOverwriteDtoData = {
allow_mask: number;
deny_mask: number;
dir_id: string;
group_id: string;
};
export interface EnvelopeGroupOverwriteDto {
code: number;
data?: EnvelopeGroupOverwriteDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
/**
* 举手状态。审批通过后 approved,被收回后 revoked(可再次举手)。
*/
export type HandState = "pending" | "approved" | "denied" | "revoked";
export type EnvelopeHandDtoData = {
/** @nullable */
avatar_url?: string | null;
display_name: string;
requested_at: number;
state: HandState;
user_id: number;
};
export interface EnvelopeHandDto {
code: number;
data?: EnvelopeHandDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeImportResultDtoData = {
commit_count: number;
default_branch: string;
};
export interface EnvelopeImportResultDto {
code: number;
data?: EnvelopeImportResultDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeIsAncestorResponseData = {
is_ancestor: boolean;
};
export interface EnvelopeIsAncestorResponse {
code: number;
data?: EnvelopeIsAncestorResponseData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
/**
* Upload lifecycle: a row is created before the bytes exist (`Pending`) and
* only an `Uploaded` row may be referenced by an issue.
*/
export type IssueAttachmentStatus = "pending" | "uploaded";
export type EnvelopeIssueAttachmentDtoData = {
content_type: string;
created_at: string;
filename: string;
id: string;
/**
* `None` until the draft is submitted with this attachment attached.
* @nullable
*/
issue_id?: string | null;
size: number;
status: IssueAttachmentStatus;
uploader_id: number;
};
export interface EnvelopeIssueAttachmentDto {
code: number;
data?: EnvelopeIssueAttachmentDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type IssueState = "open" | "closed";
export type WatchMode = "unwatched" | "watching" | "ignore";
export type EnvelopeIssueDtoData = {
assignees: UserDto[];
author?: null | UserDto;
board_id: string;
/** @nullable */
closed_at?: string | null;
content: string;
created_at: string;
/** @nullable */
description?: string | null;
/** @nullable */
due_at?: string | null;
id: string;
/** @nullable */
milestone_id?: string | null;
number: number;
priority: IssuePriority;
state: IssueState;
title: string;
/** @nullable */
updated_at?: string | null;
viewer_watch?: null | WatchMode;
};
export interface EnvelopeIssueDto {
code: number;
data?: EnvelopeIssueDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeIssueMemberDtoData = {
created_at: string;
id: string;
issue_id: string;
kind: IssueMemberKind;
/** @nullable */
updated_at?: string | null;
user?: null | UserDto;
};
export interface EnvelopeIssueMemberDto {
code: number;
data?: EnvelopeIssueMemberDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeIssueUploadIntentDtoData = {
/** @minimum 0 */
expires_secs: number;
id: string;
upload_url: string;
};
export interface EnvelopeIssueUploadIntentDto {
code: number;
data?: EnvelopeIssueUploadIntentDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeIssueUserDtoData = {
created_at: string;
id: string;
is_read: boolean;
issue_id: string;
user?: null | UserDto;
user_id: number;
};
export interface EnvelopeIssueUserDto {
code: number;
data?: EnvelopeIssueUserDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type SpaceJoinRequestState =
"pending" | "approved" | "rejected" | "withdrawn";
export type EnvelopeJoinRequestDtoData = {
created_at: string;
/** @nullable */
decided_at?: string | null;
decided_by?: null | UserDto;
id: string;
/** @nullable */
note?: string | null;
space_id: string;
status: SpaceJoinRequestState;
updated_at: string;
user?: null | UserDto;
};
export interface EnvelopeJoinRequestDto {
code: number;
data?: EnvelopeJoinRequestDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeJoinRuleDtoData = {
created_at: string;
enabled: boolean;
id: string;
matcher: string;
role_id: string;
trigger: SpaceJoinTrigger;
updated_at: string;
};
export interface EnvelopeJoinRuleDto {
code: number;
data?: EnvelopeJoinRuleDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeLabelDtoData = {
color: string;
created_at: string;
/** @nullable */
description?: string | null;
dir_id: string;
exclusive: boolean;
exclusive_order: number;
id: string;
is_archived: boolean;
name: string;
/** @nullable */
updated_at?: string | null;
};
export interface EnvelopeLabelDto {
code: number;
data?: EnvelopeLabelDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export interface LfsLockOwner {
name: string;
}
export type EnvelopeLfsLockData = {
id: string;
locked_at: string;
owner: LfsLockOwner;
path: string;
};
export interface EnvelopeLfsLock {
code: number;
data?: EnvelopeLfsLockData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export interface LfsLock {
id: string;
locked_at: string;
owner: LfsLockOwner;
path: string;
}
export type EnvelopeLfsLockListResponseData = {
locks?: LfsLock[];
/** @nullable */
next_cursor?: string | null;
};
export interface EnvelopeLfsLockListResponse {
code: number;
data?: EnvelopeLfsLockListResponseData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeLfsVerifyLocksResponseData = {
/** @nullable */
next_cursor?: string | null;
ours?: LfsLock[];
theirs?: LfsLock[];
};
export interface EnvelopeLfsVerifyLocksResponse {
code: number;
data?: EnvelopeLfsVerifyLocksResponseData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeLicenseDtoData = {
body: string;
created_at: string;
/** @nullable */
description?: string | null;
display_name: string;
name: string;
updated_at: string;
/** @nullable */
url?: string | null;
};
export interface EnvelopeLicenseDto {
code: number;
data?: EnvelopeLicenseDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeLoginCodeResponseData = {
/** @minimum 0 */
expires_in_secs: number;
};
export interface EnvelopeLoginCodeResponse {
code: number;
data?: EnvelopeLoginCodeResponseData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeLogoutResponseData = {
/** @nullable */
user_id?: number | null;
};
export interface EnvelopeLogoutResponse {
code: number;
data?: EnvelopeLogoutResponseData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeMarkedCountRespData = {
/** @minimum 0 */
marked: number;
};
export interface EnvelopeMarkedCountResp {
code: number;
data?: EnvelopeMarkedCountRespData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export interface ProfileDto {
/** @nullable */
bio?: string | null;
/** @nullable */
company?: string | null;
/** @nullable */
date_of_birth?: string | null;
/** @nullable */
location?: string | null;
/** @nullable */
privacy_agreed_at?: string | null;
/** @nullable */
pronouns?: string | null;
/** @nullable */
real_name?: string | null;
show_activity: boolean;
show_email: boolean;
show_location: boolean;
show_real_name: boolean;
/** @nullable */
website?: string | null;
}
export type ProfileVisibility =
"Public" | "RegisteredOnly" | "MembersOnly" | "Private";
export interface UserMeDto {
avatar_url: string;
bot: boolean;
created_at: string;
display_name: string;
is_active: boolean;
is_restricted: boolean;
/** @nullable */
language?: string | null;
/** @nullable */
locale?: string | null;
prohibit_login: boolean;
system: boolean;
/** @nullable */
timezone?: string | null;
user_id: number;
username: string;
visibility: ProfileVisibility;
}
export type EnvelopeMeRespData = {
profile?: null | ProfileDto;
user: UserMeDto;
};
export interface EnvelopeMeResp {
code: number;
data?: EnvelopeMeRespData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeMeResponseData = {
/** @nullable */
avatar_url?: string | null;
created_at: string;
/** @nullable */
displayname?: string | null;
email: string;
/** @nullable */
email_verified_at?: string | null;
is_admin: boolean;
user_id: number;
username: string;
version: number;
};
export interface EnvelopeMeResponse {
code: number;
data?: EnvelopeMeResponseData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
/**
* 会籍的通知偏好,对应旧 `space_members.message_notifications`。
* 旧表用 0/1/2 存,这里用字符串存,便于跨服务读写时直接透传。
*/
export type MessageNotifications = "all" | "mentions" | "nothing";
/**
* 会籍状态,由 `joined_at` / `left_at` / `banned_at` 推导,供 API 层展示。
*/
export type MemberStatus =
"Active" | "Inactive" | "Left" | "Removed" | "Banned";
export type EnvelopeMemberDtoData = {
/** @nullable */
alias_avatar_url?: string | null;
/** @nullable */
alias_name?: string | null;
created_at: string;
hide_muted_channels: boolean;
/** @nullable */
invited_at?: string | null;
invited_by?: null | UserDto;
joined_at: string;
/** @nullable */
last_active_at?: string | null;
/** @nullable */
left_at?: string | null;
message_notifications: MessageNotifications;
mobile_push: boolean;
/** @nullable */
mute_until?: string | null;
muted: boolean;
space_id: string;
status: MemberStatus;
suppress_everyone: boolean;
suppress_roles: boolean;
/** @nullable */
updated_at?: string | null;
user?: null | UserDto;
};
export interface EnvelopeMemberDto {
code: number;
data?: EnvelopeMemberDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeMemberSummaryData = {
/** @nullable */
alias_avatar_url?: string | null;
/** @nullable */
alias_name?: string | null;
ban_allow_agent_join: boolean;
ban_allow_comment_any: boolean;
ban_allow_push_repo: boolean;
ban_allow_speak: boolean;
/** @nullable */
ban_expires_at?: string | null;
/** @nullable */
ban_reason?: string | null;
/** @nullable */
banned_at?: string | null;
/** @nullable */
displayname?: string | null;
hide_muted_channels: boolean;
id: string;
/** @nullable */
invited_by?: number | null;
join_method: SpaceJoinMethod;
joined_at: string;
/** @nullable */
last_active_at?: string | null;
/** @nullable */
left_at?: string | null;
message_notifications: MessageNotifications;
mobile_push: boolean;
/** @nullable */
mute_until?: string | null;
muted: boolean;
organization_id: string;
permissions: string[];
role: SpaceMemberRole;
role_keys: string[];
suppress_everyone: boolean;
suppress_roles: boolean;
user_id: number;
username: string;
version: number;
};
export interface EnvelopeMemberSummary {
code: number;
data?: EnvelopeMemberSummaryData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeMemeDtoData = {
content_type: string;
created_at: string;
/** @nullable */
height?: number | null;
id: string;
name: string;
size: number;
url: string;
/** @nullable */
width?: number | null;
};
export interface EnvelopeMemeDto {
code: number;
data?: EnvelopeMemeDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export interface PullRefDto {
branch: string;
label: string;
/** @nullable */
repo_id?: string | null;
sha: string;
}
export type MergeMethod = "merge" | "squash" | "rebase";
export type PullState = "open" | "closed" | "merged";
export interface PullDto {
additions: number;
author?: null | UserDto;
auto_merge: boolean;
base: PullRefDto;
body: string;
/** @nullable */
closed_at?: string | null;
/** @nullable */
commits_ahead?: number | null;
/** @nullable */
commits_behind?: number | null;
/** @nullable */
conflicts?: string[] | null;
created_at: string;
deletions: number;
files_changed: number;
head: PullRefDto;
id: string;
is_draft: boolean;
/** @nullable */
issue_id?: string | null;
locked: boolean;
merge_method: MergeMethod;
/** @nullable */
mergeable?: boolean | null;
/** @nullable */
mergeable_state?: string | null;
/** @nullable */
merged_at?: string | null;
/** @nullable */
merged_commit_sha?: string | null;
merger?: null | UserDto;
number: number;
repo_id: string;
/** @nullable */
squash_commit_sha?: string | null;
state: PullState;
title: string;
/** @nullable */
updated_at?: string | null;
}
export interface MergeResultDto {
base_ref: string;
head_sha: string;
/** `fast_forward` | `merge_commit` | `squash` | `rebase` */
method: string;
new_sha: string;
old_sha: string;
/** rebase 时重写出来的提交(按时间正序)。 */
rewritten: string[];
}
export interface PullSummaryDto {
additions: number;
base_sha: string;
commits_ahead: number;
commits_behind: number;
conflicts: string[];
deletions: number;
files_changed: number;
head_sha: string;
/** @nullable */
merge_base?: string | null;
mergeable: boolean;
mergeable_state: string;
}
export type EnvelopeMergePullDtoData = {
pull: PullDto;
result: MergeResultDto;
summary: PullSummaryDto;
};
export interface EnvelopeMergePullDto {
code: number;
data?: EnvelopeMergePullDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeMergeStatusDtoData = {
conflicts: string[];
fast_forwardable: boolean;
mergeable: boolean;
};
export interface EnvelopeMergeStatusDto {
code: number;
data?: EnvelopeMergeStatusDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
/**
* Discord 风格的消息 embed。
*
* `platform` / `kind` / `src` / `image_url` 等字段是旧消息与旧缓存的兼容外壳:
* 历史 `chat_message.embeds` 里存的还是老结构,反序列化时不能丢字段;新写入
* 同时填富模型和这些兼容字段,前端可以逐步迁移。
*/
export interface MessageEmbed {
/** @nullable */
aspect?: string | null;
audio?: null | EmbedMedia;
author?: null | EmbedAuthor;
/** @nullable */
category?: string | null;
/** @nullable */
children?: MessageEmbed[] | null;
/**
* @minimum 0
* @nullable
*/
color?: number | null;
/** @nullable */
description?: string | null;
/** @nullable */
fields?: EmbedField[] | null;
footer?: null | EmbedFooter;
/**
* @minimum 0
* @nullable
*/
height?: number | null;
/** @nullable */
html?: string | null;
/**
* @minimum 0
* @nullable
*/
html_height?: number | null;
/**
* @minimum 0
* @nullable
*/
html_width?: number | null;
image?: null | EmbedMedia;
/** @nullable */
image_url?: string | null;
/** @nullable */
kind?: string | null;
/** @nullable */
nsfw?: boolean | null;
/** @nullable */
platform?: string | null;
/** @nullable */
platform_name?: string | null;
provider?: null | EmbedProvider;
/** @nullable */
site_name?: string | null;
/** @nullable */
src?: string | null;
thumbnail?: null | EmbedMedia;
/** @nullable */
timestamp?: string | null;
/** @nullable */
title?: string | null;
type?: string;
/** @nullable */
url?: string | null;
video?: null | EmbedMedia;
}
export interface ReactionAggDto {
count: number;
emoji: string;
me: boolean;
}
export type EnvelopeMessageDtoData = {
attachments: AttachmentDto[];
author?: null | UserDto;
author_id: number;
author_type: AuthorType;
content: string;
created_at: string;
/** @nullable */
deleted_at?: string | null;
/** @nullable */
edited_at?: string | null;
embeds?: MessageEmbed[];
/** @nullable */
forwarded_from_id?: string | null;
has_thread: boolean;
id: string;
mention_everyone: boolean;
mentions: number[];
message_type: ChatMessageType;
pinned: boolean;
/** @nullable */
pinned_at?: string | null;
/** @nullable */
pinned_by_id?: number | null;
reactions?: ReactionAggDto[];
/** @nullable */
reply_to_id?: string | null;
room_id: string;
seq: number;
thread_broadcast: boolean;
/** @nullable */
thread_id?: string | null;
/** @nullable */
webhook_id?: string | null;
};
export interface EnvelopeMessageDto {
code: number;
data?: EnvelopeMessageDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export interface MessageDto {
attachments: AttachmentDto[];
author?: null | UserDto;
author_id: number;
author_type: AuthorType;
content: string;
created_at: string;
/** @nullable */
deleted_at?: string | null;
/** @nullable */
edited_at?: string | null;
embeds?: MessageEmbed[];
/** @nullable */
forwarded_from_id?: string | null;
has_thread: boolean;
id: string;
mention_everyone: boolean;
mentions: number[];
message_type: ChatMessageType;
pinned: boolean;
/** @nullable */
pinned_at?: string | null;
/** @nullable */
pinned_by_id?: number | null;
reactions?: ReactionAggDto[];
/** @nullable */
reply_to_id?: string | null;
room_id: string;
seq: number;
thread_broadcast: boolean;
/** @nullable */
thread_id?: string | null;
/** @nullable */
webhook_id?: string | null;
}
/**
* 消息页:在统一分页字段之上补回游标翻页所需的派生字段。
*
* `has_more`/`oldest_seq`/`newest_seq` 由本页内容推导,客户端无需自己算;
* `items` 恒按 `seq` 升序,因此 `oldest_seq` 取首条、`newest_seq` 取末条。
*/
export type EnvelopeMessagePageData = {
has_more: boolean;
items: MessageDto[];
/** @minimum 0 */
limit: number;
/** @nullable */
newest_seq?: number | null;
/** @minimum 0 */
offset: number;
/** @nullable */
oldest_seq?: number | null;
/** @minimum 0 */
total: number;
};
export interface EnvelopeMessagePage {
code: number;
/**
* 消息页:在统一分页字段之上补回游标翻页所需的派生字段。
*
* `has_more`/`oldest_seq`/`newest_seq` 由本页内容推导,客户端无需自己算;
* `items` 恒按 `seq` 升序,因此 `oldest_seq` 取首条、`newest_seq` 取末条。
*/
data?: EnvelopeMessagePageData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeMilestoneDtoData = {
board_id: string;
closed_issues_count: number;
created_at: string;
/** @nullable */
description?: string | null;
/** @nullable */
due_at?: string | null;
id: string;
is_closed: boolean;
issues_count: number;
name: string;
/** @nullable */
updated_at?: string | null;
};
export interface EnvelopeMilestoneDto {
code: number;
data?: EnvelopeMilestoneDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export interface EnvelopeNoData {
code: number;
data?: unknown;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeOptionAvatarDtoData = {
/**
* Size of the uploaded original in bytes.
* @minimum 0
*/
bytes: number;
/** Format of the uploaded original. */
format: AvatarFormat;
updated_at: string;
/**
* Browser-facing URL. Points at the compressed derivative when one exists,
* and at the uploaded bytes otherwise.
*/
url: string;
user_id: number;
} | null;
export interface EnvelopeOptionAvatarDto {
code: number;
data?: EnvelopeOptionAvatarDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeOptionDraftDtoData = {
content: string;
room_id: string;
/** @nullable */
thread_id?: string | null;
updated_at: string;
} | null;
export interface EnvelopeOptionDraftDto {
code: number;
data?: EnvelopeOptionDraftDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type SpaceImageKind =
"avatar" | "banner" | "invite_banner" | "embed_splash";
export type EnvelopeOptionSpaceImageDtoData = {
/** @minimum 0 */
bytes: number;
format: AvatarFormat;
/** @nullable */
height?: number | null;
kind: SpaceImageKind;
space_id: string;
updated_at: string;
url: string;
/** @nullable */
width?: number | null;
} | null;
export interface EnvelopeOptionSpaceImageDto {
code: number;
data?: EnvelopeOptionSpaceImageDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeOptionStopwatchDtoData = {
/** @nullable */
created_at?: string | null;
/** @nullable */
id?: string | null;
issue_id: string;
running: boolean;
/** @nullable */
started_at?: string | null;
user?: null | UserDto;
} | null;
export interface EnvelopeOptionStopwatchDto {
code: number;
data?: EnvelopeOptionStopwatchDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type SpaceStatus = "active" | "suspended" | "archived";
export type EnvelopeOrganizationSummaryData = {
allow_invite: boolean;
allow_join: boolean;
allow_join_level: number;
/** @nullable */
archived_at?: string | null;
/** @nullable */
avatar_url?: string | null;
created_at: string;
/** @nullable */
description?: string | null;
id: string;
join_policy: SpaceJoinPolicy;
member_count: number;
member_must_enable_2fa: boolean;
my_role?: null | SpaceMemberRole;
name: string;
owner_user_id: number;
require_email_verified: boolean;
require_mfa: boolean;
slug: string;
status: SpaceStatus;
updated_at: string;
version: number;
/** @nullable */
welcome_message?: string | null;
};
export interface EnvelopeOrganizationSummary {
code: number;
data?: EnvelopeOrganizationSummaryData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeOutboundWebhookDtoData = {
created_at: string;
disabled: boolean;
id: string;
/** @nullable */
last_status?: string | null;
/** @nullable */
last_used_at?: string | null;
name: string;
room_id: string;
url: string;
};
export interface EnvelopeOutboundWebhookDto {
code: number;
data?: EnvelopeOutboundWebhookDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeOutboundWebhookSecretDtoData = {
created_at: string;
id: string;
name: string;
room_id: string;
secret: string;
url: string;
};
export interface EnvelopeOutboundWebhookSecretDto {
code: number;
data?: EnvelopeOutboundWebhookSecretDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageBoardDtoDataItemsItem = {
closed_issues_count: number;
created_at: string;
/** @nullable */
description?: string | null;
dir_id: string;
/** @nullable */
icon?: string | null;
id: string;
name: string;
open_issues_count: number;
/**
* Number prefix for the board's issues (`CAD` renders as `CAD-12`).
* @nullable
*/
prefix?: string | null;
/** @nullable */
updated_at?: string | null;
};
export type EnvelopePageBoardDtoData = {
items: EnvelopePageBoardDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageBoardDto {
code: number;
data?: EnvelopePageBoardDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageBookmarkDtoDataItemsItem = {
created_at: string;
created_by_id: number;
/** @nullable */
emoji?: string | null;
id: string;
position: number;
room_id: string;
title: string;
/** @nullable */
url?: string | null;
};
export type EnvelopePageBookmarkDtoData = {
items: EnvelopePageBookmarkDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageBookmarkDto {
code: number;
data?: EnvelopePageBookmarkDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageBranchDtoDataItemsItem = {
commit_sha: string;
created_at: string;
/** @nullable */
deleted_at?: string | null;
is_deleted: boolean;
is_protected: boolean;
name: string;
updated_at: string;
};
export type EnvelopePageBranchDtoData = {
items: EnvelopePageBranchDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageBranchDto {
code: number;
data?: EnvelopePageBranchDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageCodeCommentDtoDataItemsItem = {
author?: null | UserDto;
body: string;
commit_sha: string;
created_at: string;
id: string;
line: number;
/** 该评论锚定的提交是否仍是当前分支提示(否则视为 outdated)。 */
outdated: boolean;
/** @nullable */
parent_id?: string | null;
path: string;
repo_id: string;
resolved: boolean;
/** @nullable */
resolved_by?: number | null;
/** @nullable */
updated_at?: string | null;
};
export type EnvelopePageCodeCommentDtoData = {
items: EnvelopePageCodeCommentDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageCodeCommentDto {
code: number;
data?: EnvelopePageCodeCommentDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageCommentDtoDataItemsItem = {
content: string;
created_at: string;
id: string;
/** @nullable */
issue_id?: string | null;
/** @nullable */
parent_id?: string | null;
poster?: null | UserDto;
/** @nullable */
updated_at?: string | null;
};
export type EnvelopePageCommentDtoData = {
items: EnvelopePageCommentDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageCommentDto {
code: number;
data?: EnvelopePageCommentDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageContentHistoryDtoDataItemsItem = {
/** @nullable */
comment_id?: string | null;
/** @nullable */
content_after?: string | null;
/** @nullable */
content_before?: string | null;
created_at: string;
edited_at: string;
id: string;
issue_id: string;
poster?: null | UserDto;
};
export type EnvelopePageContentHistoryDtoData = {
items: EnvelopePageContentHistoryDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageContentHistoryDto {
code: number;
data?: EnvelopePageContentHistoryDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageDeviceDtoDataItemsItem = {
/** @nullable */
device_name?: string | null;
/** @nullable */
device_type?: string | null;
first_seen_at: string;
id: string;
is_trusted: boolean;
last_seen_at: string;
/** @nullable */
os?: string | null;
};
export type EnvelopePageDeviceDtoData = {
items: EnvelopePageDeviceDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageDeviceDto {
code: number;
data?: EnvelopePageDeviceDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageDmDtoDataItemsItem = {
created_at: string;
id: string;
kind: RoomKind;
/** @nullable */
last_message_id?: string | null;
last_read_seq: number;
members?: UserDto[];
name: string;
peer?: null | UserDto;
tip_seq: number;
unread_count: number;
};
export type EnvelopePageDmDtoData = {
items: EnvelopePageDmDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageDmDto {
code: number;
data?: EnvelopePageDmDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageDraftDtoDataItemsItem = {
content: string;
room_id: string;
/** @nullable */
thread_id?: string | null;
updated_at: string;
};
export type EnvelopePageDraftDtoData = {
items: EnvelopePageDraftDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageDraftDto {
code: number;
data?: EnvelopePageDraftDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageEmojiDtoDataItemsItem = {
animated: boolean;
created_at: string;
disabled: boolean;
id: string;
name: string;
space_id: string;
};
export type EnvelopePageEmojiDtoData = {
items: EnvelopePageEmojiDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageEmojiDto {
code: number;
data?: EnvelopePageEmojiDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type IssueEventType =
| "created"
| "title_updated"
| "description_updated"
| "content_updated"
| "milestone_updated"
| "priority_updated"
| "due_updated"
| "closed"
| "reopened"
| "comment_created"
| "comment_updated"
| "comment_deleted"
| "member_added"
| "member_removed"
| "label_added"
| "label_removed"
| "dependency_added"
| "dependency_removed"
| "pinned"
| "unpinned"
| "repo_relation_added"
| "repo_relation_removed"
| "pull_linked"
| "pull_unlinked";
export type EnvelopePageEventDtoDataItemsItem = {
/** @nullable */
comment_id?: string | null;
/** @nullable */
commit_sha?: string | null;
/** @nullable */
content?: string | null;
created_at: string;
event_type: IssueEventType;
id: string;
/** @nullable */
issue_id?: string | null;
/** @nullable */
new_ref?: string | null;
/** @nullable */
new_title?: string | null;
/** @nullable */
old_ref?: string | null;
/** @nullable */
old_title?: string | null;
user?: null | UserDto;
};
export type EnvelopePageEventDtoData = {
items: EnvelopePageEventDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageEventDto {
code: number;
data?: EnvelopePageEventDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export interface ExploreViewerRequestDto {
/** @nullable */
cooldown_until?: string | null;
created_at: string;
/** @nullable */
decided_at?: string | null;
id: string;
status: SpaceJoinRequestState;
}
export interface ExploreViewerDto {
is_member: boolean;
request?: null | ExploreViewerRequestDto;
}
export type EnvelopePageExploreSpaceDtoDataItemsItem = {
allow_join: boolean;
allow_join_level: AllowJoinLevel;
/** @nullable */
avatar_url?: string | null;
/** @nullable */
banner_url?: string | null;
created_at: string;
/** @nullable */
description?: string | null;
id: string;
lower_name: string;
members_count: number;
name: string;
viewer?: null | ExploreViewerDto;
};
export type EnvelopePageExploreSpaceDtoData = {
items: EnvelopePageExploreSpaceDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageExploreSpaceDto {
code: number;
data?: EnvelopePageExploreSpaceDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageGroupDtoDataItemsItem = {
color: string;
created_at: string;
created_by?: null | UserDto;
/** @nullable */
icon_hash?: string | null;
id: string;
name: string;
permissions: string[];
position: number;
space_id: string;
/** @nullable */
unicode_emoji?: string | null;
/** @nullable */
updated_at?: string | null;
version: number;
};
export type EnvelopePageGroupDtoData = {
items: EnvelopePageGroupDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageGroupDto {
code: number;
data?: EnvelopePageGroupDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageInviteSummaryDataItemsItem = {
created_at: string;
created_by: number;
/** @nullable */
email?: string | null;
/** @nullable */
expires_at?: string | null;
id: string;
max_uses: number;
method: SpaceJoinMethod;
organization_id: string;
/** @nullable */
revoked_at?: string | null;
/** @nullable */
role_id?: string | null;
/** @nullable */
target_user_id?: number | null;
uses: number;
};
export type EnvelopePageInviteSummaryData = {
items: EnvelopePageInviteSummaryDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageInviteSummary {
code: number;
data?: EnvelopePageInviteSummaryData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export interface LabelDto {
color: string;
created_at: string;
/** @nullable */
description?: string | null;
dir_id: string;
exclusive: boolean;
exclusive_order: number;
id: string;
is_archived: boolean;
name: string;
/** @nullable */
updated_at?: string | null;
}
export type EnvelopePageIssueListItemDtoDataItemsItem = {
assignees: UserDto[];
author?: null | UserDto;
board_id: string;
/** @nullable */
closed_at?: string | null;
created_at: string;
/** @nullable */
due_at?: string | null;
id: string;
/** Chips the list rows render; the detail view fetches these separately. */
labels: LabelDto[];
/** @nullable */
milestone_id?: string | null;
number: number;
priority: IssuePriority;
state: IssueState;
title: string;
/** @nullable */
updated_at?: string | null;
};
export type EnvelopePageIssueListItemDtoData = {
items: EnvelopePageIssueListItemDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageIssueListItemDto {
code: number;
data?: EnvelopePageIssueListItemDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageIssueMemberDtoDataItemsItem = {
created_at: string;
id: string;
issue_id: string;
kind: IssueMemberKind;
/** @nullable */
updated_at?: string | null;
user?: null | UserDto;
};
export type EnvelopePageIssueMemberDtoData = {
items: EnvelopePageIssueMemberDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageIssueMemberDto {
code: number;
data?: EnvelopePageIssueMemberDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageIssueUserDtoDataItemsItem = {
created_at: string;
id: string;
is_read: boolean;
issue_id: string;
user?: null | UserDto;
user_id: number;
};
export type EnvelopePageIssueUserDtoData = {
items: EnvelopePageIssueUserDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageIssueUserDto {
code: number;
data?: EnvelopePageIssueUserDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageJoinRequestDtoDataItemsItem = {
created_at: string;
/** @nullable */
decided_at?: string | null;
decided_by?: null | UserDto;
id: string;
/** @nullable */
note?: string | null;
space_id: string;
status: SpaceJoinRequestState;
updated_at: string;
user?: null | UserDto;
};
export type EnvelopePageJoinRequestDtoData = {
items: EnvelopePageJoinRequestDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageJoinRequestDto {
code: number;
data?: EnvelopePageJoinRequestDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageLabelDtoDataItemsItem = {
color: string;
created_at: string;
/** @nullable */
description?: string | null;
dir_id: string;
exclusive: boolean;
exclusive_order: number;
id: string;
is_archived: boolean;
name: string;
/** @nullable */
updated_at?: string | null;
};
export type EnvelopePageLabelDtoData = {
items: EnvelopePageLabelDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageLabelDto {
code: number;
data?: EnvelopePageLabelDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageLicenseDtoDataItemsItem = {
body: string;
created_at: string;
/** @nullable */
description?: string | null;
display_name: string;
name: string;
updated_at: string;
/** @nullable */
url?: string | null;
};
export type EnvelopePageLicenseDtoData = {
items: EnvelopePageLicenseDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageLicenseDto {
code: number;
data?: EnvelopePageLicenseDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageMemberSummaryDataItemsItem = {
/** @nullable */
alias_avatar_url?: string | null;
/** @nullable */
alias_name?: string | null;
ban_allow_agent_join: boolean;
ban_allow_comment_any: boolean;
ban_allow_push_repo: boolean;
ban_allow_speak: boolean;
/** @nullable */
ban_expires_at?: string | null;
/** @nullable */
ban_reason?: string | null;
/** @nullable */
banned_at?: string | null;
/** @nullable */
displayname?: string | null;
hide_muted_channels: boolean;
id: string;
/** @nullable */
invited_by?: number | null;
join_method: SpaceJoinMethod;
joined_at: string;
/** @nullable */
last_active_at?: string | null;
/** @nullable */
left_at?: string | null;
message_notifications: MessageNotifications;
mobile_push: boolean;
/** @nullable */
mute_until?: string | null;
muted: boolean;
organization_id: string;
permissions: string[];
role: SpaceMemberRole;
role_keys: string[];
suppress_everyone: boolean;
suppress_roles: boolean;
user_id: number;
username: string;
version: number;
};
export type EnvelopePageMemberSummaryData = {
items: EnvelopePageMemberSummaryDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageMemberSummary {
code: number;
data?: EnvelopePageMemberSummaryData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageMessageDtoDataItemsItem = {
attachments: AttachmentDto[];
author?: null | UserDto;
author_id: number;
author_type: AuthorType;
content: string;
created_at: string;
/** @nullable */
deleted_at?: string | null;
/** @nullable */
edited_at?: string | null;
embeds?: MessageEmbed[];
/** @nullable */
forwarded_from_id?: string | null;
has_thread: boolean;
id: string;
mention_everyone: boolean;
mentions: number[];
message_type: ChatMessageType;
pinned: boolean;
/** @nullable */
pinned_at?: string | null;
/** @nullable */
pinned_by_id?: number | null;
reactions?: ReactionAggDto[];
/** @nullable */
reply_to_id?: string | null;
room_id: string;
seq: number;
thread_broadcast: boolean;
/** @nullable */
thread_id?: string | null;
/** @nullable */
webhook_id?: string | null;
};
export type EnvelopePageMessageDtoData = {
items: EnvelopePageMessageDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageMessageDto {
code: number;
data?: EnvelopePageMessageDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageMilestoneDtoDataItemsItem = {
board_id: string;
closed_issues_count: number;
created_at: string;
/** @nullable */
description?: string | null;
/** @nullable */
due_at?: string | null;
id: string;
is_closed: boolean;
issues_count: number;
name: string;
/** @nullable */
updated_at?: string | null;
};
export type EnvelopePageMilestoneDtoData = {
items: EnvelopePageMilestoneDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageMilestoneDto {
code: number;
data?: EnvelopePageMilestoneDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export interface SpaceDto {
allow_invite: boolean;
allow_join: boolean;
allow_join_level: AllowJoinLevel;
/** @nullable */
avatar_url?: string | null;
created_at: string;
/** @nullable */
description?: string | null;
id: string;
is_active: boolean;
is_private: boolean;
lower_name: string;
member_must_enable_2fa: boolean;
members_count: number;
name: string;
owner?: null | UserDto;
updated_at: string;
/** @nullable */
welcome_message?: string | null;
/** @nullable */
welcome_object?: string | null;
}
export type EnvelopePageMySpaceDtoDataItemsItem = {
permissions: string[];
space: SpaceDto;
};
export type EnvelopePageMySpaceDtoData = {
items: EnvelopePageMySpaceDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageMySpaceDto {
code: number;
data?: EnvelopePageMySpaceDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export interface Value {}
export type NotificationType =
"mention" | "reply" | "follow" | "invite" | "assignment" | "system";
export type EnvelopePageNotificationDtoDataItemsItem = {
/** @nullable */
actor_id?: number | null;
/** @nullable */
body?: string | null;
created_at: string;
data?: null | Value;
id: string;
notification_type: NotificationType;
/** @nullable */
read_at?: string | null;
title: string;
};
export type EnvelopePageNotificationDtoData = {
items: EnvelopePageNotificationDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageNotificationDto {
code: number;
data?: EnvelopePageNotificationDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageOrganizationSummaryDataItemsItem = {
allow_invite: boolean;
allow_join: boolean;
allow_join_level: number;
/** @nullable */
archived_at?: string | null;
/** @nullable */
avatar_url?: string | null;
created_at: string;
/** @nullable */
description?: string | null;
id: string;
join_policy: SpaceJoinPolicy;
member_count: number;
member_must_enable_2fa: boolean;
my_role?: null | SpaceMemberRole;
name: string;
owner_user_id: number;
require_email_verified: boolean;
require_mfa: boolean;
slug: string;
status: SpaceStatus;
updated_at: string;
version: number;
/** @nullable */
welcome_message?: string | null;
};
export type EnvelopePageOrganizationSummaryData = {
items: EnvelopePageOrganizationSummaryDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageOrganizationSummary {
code: number;
data?: EnvelopePageOrganizationSummaryData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePagePullCommentDtoDataItemsItem = {
author?: null | UserDto;
body: string;
/** @nullable */
commit_sha?: string | null;
created_at: string;
id: string;
/** @nullable */
line?: number | null;
/** @nullable */
parent_comment_id?: string | null;
/** @nullable */
path?: string | null;
pull_request_id: string;
resolved: boolean;
/** @nullable */
resolved_by?: number | null;
/** @nullable */
review_id?: string | null;
/** @nullable */
side?: string | null;
/** @nullable */
updated_at?: string | null;
};
export type EnvelopePagePullCommentDtoData = {
items: EnvelopePagePullCommentDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePagePullCommentDto {
code: number;
data?: EnvelopePagePullCommentDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePagePullDtoDataItemsItem = {
additions: number;
author?: null | UserDto;
auto_merge: boolean;
base: PullRefDto;
body: string;
/** @nullable */
closed_at?: string | null;
/** @nullable */
commits_ahead?: number | null;
/** @nullable */
commits_behind?: number | null;
/** @nullable */
conflicts?: string[] | null;
created_at: string;
deletions: number;
files_changed: number;
head: PullRefDto;
id: string;
is_draft: boolean;
/** @nullable */
issue_id?: string | null;
locked: boolean;
merge_method: MergeMethod;
/** @nullable */
mergeable?: boolean | null;
/** @nullable */
mergeable_state?: string | null;
/** @nullable */
merged_at?: string | null;
/** @nullable */
merged_commit_sha?: string | null;
merger?: null | UserDto;
number: number;
repo_id: string;
/** @nullable */
squash_commit_sha?: string | null;
state: PullState;
title: string;
/** @nullable */
updated_at?: string | null;
};
export type EnvelopePagePullDtoData = {
items: EnvelopePagePullDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePagePullDto {
code: number;
data?: EnvelopePagePullDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePagePullEventDtoDataItemsItem = {
actor?: null | UserDto;
/** @nullable */
commit_sha?: string | null;
/** @nullable */
content?: string | null;
created_at: string;
event_type: string;
id: string;
pull_request_id: string;
};
export type EnvelopePagePullEventDtoData = {
items: EnvelopePagePullEventDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePagePullEventDto {
code: number;
data?: EnvelopePagePullEventDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type PushSubscriptionPlatform = "WebPush" | "AndroidFcm" | "IosApns";
export type EnvelopePagePushSubscriptionDtoDataItemsItem = {
created_at: string;
endpoint: string;
id: string;
platform: PushSubscriptionPlatform;
/** @nullable */
updated_at?: string | null;
/** @nullable */
user_agent?: string | null;
};
export type EnvelopePagePushSubscriptionDtoData = {
items: EnvelopePagePushSubscriptionDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePagePushSubscriptionDto {
code: number;
data?: EnvelopePagePushSubscriptionDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageReleaseDtoDataItemsItem = {
/** @nullable */
content?: string | null;
created_at: string;
id: string;
is_draft: boolean;
is_prerelease: boolean;
num_commits: number;
publisher?: null | UserDto;
publisher_name: string;
repo_id: string;
sha: string;
tag_name: string;
target: string;
title: string;
updated_at: string;
};
export type EnvelopePageReleaseDtoData = {
items: EnvelopePageReleaseDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageReleaseDto {
code: number;
data?: EnvelopePageReleaseDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageRepoSummaryDtoDataItemsItem = {
/** @nullable */
avatar_url?: string | null;
default_branch: string;
/** @nullable */
description?: string | null;
id: string;
is_archived: boolean;
is_private: boolean;
/** @nullable */
license_name?: string | null;
name: string;
/** @nullable */
primary_language?: string | null;
size: number;
stars_count: number;
updated_at: string;
watchers_count: number;
};
export type EnvelopePageRepoSummaryDtoData = {
items: EnvelopePageRepoSummaryDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageRepoSummaryDto {
code: number;
data?: EnvelopePageRepoSummaryDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageSavedMessageDtoDataItemsItem = {
channel_id: string;
id: string;
message_id: string;
saved_at: string;
};
export type EnvelopePageSavedMessageDtoData = {
items: EnvelopePageSavedMessageDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageSavedMessageDto {
code: number;
data?: EnvelopePageSavedMessageDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type SessionKind = "WebLogin" | "BearerAccess";
export type EnvelopePageSessionDtoDataItemsItem = {
/** @nullable */
client_ip_hash?: string | null;
created_at: string;
/** @nullable */
device_id?: string | null;
expires_at: string;
id: string;
is_current: boolean;
is_revoked: boolean;
kind: SessionKind;
last_seen_at: string;
/** @nullable */
revoked_at?: string | null;
/** @nullable */
user_agent_hash?: string | null;
};
export type EnvelopePageSessionDtoData = {
items: EnvelopePageSessionDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageSessionDto {
code: number;
data?: EnvelopePageSessionDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type SshKeyAlgorithm = "rsa" | "ed25519" | "ecdsa";
export type EnvelopePageSshKeySummaryDataItemsItem = {
algorithm: SshKeyAlgorithm;
created_at: string;
/** @nullable */
description?: string | null;
/** @nullable */
expires_at?: string | null;
fingerprint: string;
id: string;
/** @nullable */
last_used_at?: string | null;
name: string;
public_key: string;
/** @nullable */
revoked_at?: string | null;
};
export type EnvelopePageSshKeySummaryData = {
items: EnvelopePageSshKeySummaryDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageSshKeySummary {
code: number;
data?: EnvelopePageSshKeySummaryData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageStargazerDtoDataItemsItem = {
avatar_url: string;
display_name: string;
starred_at: string;
user_id: number;
username: string;
};
export type EnvelopePageStargazerDtoData = {
items: EnvelopePageStargazerDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageStargazerDto {
code: number;
data?: EnvelopePageStargazerDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type TagType = "Lightweight" | "Annotated";
export type EnvelopePageTagDtoDataItemsItem = {
/** @nullable */
created_at?: string | null;
/** @nullable */
message?: string | null;
name: string;
tag_type: TagType;
/** @nullable */
tagger_email?: string | null;
/** @nullable */
tagger_name?: string | null;
target_sha: string;
};
export type EnvelopePageTagDtoData = {
items: EnvelopePageTagDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageTagDto {
code: number;
data?: EnvelopePageTagDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageThreadDtoDataItemsItem = {
archived: boolean;
created_at: string;
id: string;
/** @nullable */
last_reply_at?: string | null;
/** @nullable */
last_reply_id?: string | null;
locked: boolean;
/** @nullable */
name?: string | null;
owner?: null | UserDto;
owner_id: number;
participant_count: number;
reply_count: number;
room_id: string;
root_message_id: string;
updated_at: string;
};
export type EnvelopePageThreadDtoData = {
items: EnvelopePageThreadDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageThreadDto {
code: number;
data?: EnvelopePageThreadDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageTopicDtoDataItemsItem = {
created_at: string;
id: string;
name: string;
updated_at: string;
};
export type EnvelopePageTopicDtoData = {
items: EnvelopePageTopicDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageTopicDto {
code: number;
data?: EnvelopePageTopicDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageTopicRepoDtoDataItemsItem = {
is_private: boolean;
repo_id: string;
repo_name: string;
space_name: string;
};
export type EnvelopePageTopicRepoDtoData = {
items: EnvelopePageTopicRepoDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageTopicRepoDto {
code: number;
data?: EnvelopePageTopicRepoDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageTrackedTimeDtoDataItemsItem = {
created_at: string;
id: string;
issue_id: string;
seconds: number;
user?: null | UserDto;
};
export type EnvelopePageTrackedTimeDtoData = {
items: EnvelopePageTrackedTimeDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageTrackedTimeDto {
code: number;
data?: EnvelopePageTrackedTimeDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type ReportStatus = "open" | "under_review" | "resolved" | "dismissed";
export type EnvelopePageUserReportDtoDataItemsItem = {
created_at: string;
/** @nullable */
evidence?: string | null;
id: string;
reason: string;
reported_id: number;
/** @nullable */
resolution_note?: string | null;
status: ReportStatus;
updated_at: string;
};
export type EnvelopePageUserReportDtoData = {
items: EnvelopePageUserReportDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageUserReportDto {
code: number;
data?: EnvelopePageUserReportDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageWatcherDtoDataItemsItem = {
avatar_url: string;
display_name: string;
mode: WatchMode;
user_id: number;
username: string;
watching_since: string;
};
export type EnvelopePageWatcherDtoData = {
items: EnvelopePageWatcherDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageWatcherDto {
code: number;
data?: EnvelopePageWatcherDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePageWebhookDtoDataItemsItem = {
created_at: string;
disabled: boolean;
id: string;
/** @nullable */
last_used_at?: string | null;
name: string;
room_id: string;
};
export type EnvelopePageWebhookDtoData = {
items: EnvelopePageWebhookDtoDataItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
};
export interface EnvelopePageWebhookDto {
code: number;
data?: EnvelopePageWebhookDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeParsedPatchDtoData = {
additions: number;
deletions: number;
files: string[];
};
export interface EnvelopeParsedPatchDto {
code: number;
data?: EnvelopeParsedPatchDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePasswordResetConfirmResponseData = {
user_id: number;
};
export interface EnvelopePasswordResetConfirmResponse {
code: number;
data?: EnvelopePasswordResetConfirmResponseData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePasswordResetResponseData = {
/** @minimum 0 */
expires_in_secs: number;
};
export interface EnvelopePasswordResetResponse {
code: number;
data?: EnvelopePasswordResetResponseData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePatchDtoData = {
content: string;
size: number;
};
export interface EnvelopePatchDto {
code: number;
data?: EnvelopePatchDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePermissionCheckData = {
allowed: boolean;
matched_by: string;
organization_version: number;
reason: string;
};
export interface EnvelopePermissionCheck {
code: number;
data?: EnvelopePermissionCheckData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePinDtoData = {
board_id: string;
created_at: string;
id: string;
/** @nullable */
issue_id?: string | null;
pin_order: number;
};
export interface EnvelopePinDto {
code: number;
data?: EnvelopePinDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type PresenceStatus = "Active" | "Away" | "Dnd" | "Offline";
export type EnvelopePresenceDtoData = {
activities: unknown;
/** @nullable */
last_seen_at?: string | null;
online: boolean;
status: PresenceStatus;
user?: null | UserDto;
user_id: number;
};
export interface EnvelopePresenceDto {
code: number;
data?: EnvelopePresenceDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeProfileDetailDtoData = {
/** @nullable */
accent_color?: string | null;
avatar_url: string;
/** @nullable */
banner_url?: string | null;
/** @nullable */
bio?: string | null;
/** @nullable */
company?: string | null;
display_name: string;
/** @nullable */
location?: string | null;
/** @nullable */
pronouns?: string | null;
/** @nullable */
real_name?: string | null;
/** @nullable */
show_activity?: boolean | null;
/** @nullable */
show_email?: boolean | null;
/** @nullable */
show_location?: boolean | null;
/** @nullable */
show_real_name?: boolean | null;
updated_at: string;
user_id: number;
username: string;
visibility?: null | ProfileVisibility;
/** @nullable */
website?: string | null;
};
export interface EnvelopeProfileDetailDto {
code: number;
data?: EnvelopeProfileDetailDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePullChecksDtoData = {
head_sha: string;
statuses: CommitStatusDto[];
};
export interface EnvelopePullChecksDto {
code: number;
data?: EnvelopePullChecksDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePullCommentDtoData = {
author?: null | UserDto;
body: string;
/** @nullable */
commit_sha?: string | null;
created_at: string;
id: string;
/** @nullable */
line?: number | null;
/** @nullable */
parent_comment_id?: string | null;
/** @nullable */
path?: string | null;
pull_request_id: string;
resolved: boolean;
/** @nullable */
resolved_by?: number | null;
/** @nullable */
review_id?: string | null;
/** @nullable */
side?: string | null;
/** @nullable */
updated_at?: string | null;
};
export interface EnvelopePullCommentDto {
code: number;
data?: EnvelopePullCommentDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePullDtoData = {
additions: number;
author?: null | UserDto;
auto_merge: boolean;
base: PullRefDto;
body: string;
/** @nullable */
closed_at?: string | null;
/** @nullable */
commits_ahead?: number | null;
/** @nullable */
commits_behind?: number | null;
/** @nullable */
conflicts?: string[] | null;
created_at: string;
deletions: number;
files_changed: number;
head: PullRefDto;
id: string;
is_draft: boolean;
/** @nullable */
issue_id?: string | null;
locked: boolean;
merge_method: MergeMethod;
/** @nullable */
mergeable?: boolean | null;
/** @nullable */
mergeable_state?: string | null;
/** @nullable */
merged_at?: string | null;
/** @nullable */
merged_commit_sha?: string | null;
merger?: null | UserDto;
number: number;
repo_id: string;
/** @nullable */
squash_commit_sha?: string | null;
state: PullState;
title: string;
/** @nullable */
updated_at?: string | null;
};
export interface EnvelopePullDto {
code: number;
data?: EnvelopePullDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export interface MergeGateDto {
allowed: boolean;
approvals: number;
bypassed: boolean;
change_requests: number;
outdated: boolean;
protected: boolean;
reasons: string[];
required_approvals: number;
}
export type EnvelopePullGateDtoData = {
conflicts: string[];
gate: MergeGateDto;
head_sha: string;
mergeable: boolean;
pending_review_requests: number;
};
export interface EnvelopePullGateDto {
code: number;
data?: EnvelopePullGateDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type ReviewState =
"approved" | "changes_requested" | "commented" | "pending" | "dismissed";
export type EnvelopePullReviewDtoData = {
/** @minimum 0 */
comment_count: number;
commit_sha: string;
/** @nullable */
content?: string | null;
created_at: string;
id: string;
official: boolean;
pull_request_id: string;
state: ReviewState;
/** @nullable */
updated_at?: string | null;
user?: null | UserDto;
};
export interface EnvelopePullReviewDto {
code: number;
data?: EnvelopePullReviewDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePullSummaryDtoData = {
additions: number;
base_sha: string;
commits_ahead: number;
commits_behind: number;
conflicts: string[];
deletions: number;
files_changed: number;
head_sha: string;
/** @nullable */
merge_base?: string | null;
mergeable: boolean;
mergeable_state: string;
};
export interface EnvelopePullSummaryDto {
code: number;
data?: EnvelopePullSummaryDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
/**
* 前端注册 Service Worker 所需的公开参数。
*
* 只有公钥是公开的(它就是浏览器 `applicationServerKey` 要的东西),私钥永远
* 不出现在任何响应里。`enabled=false` 时前端把整个"系统通知"开关藏起来,
* 而不是让用户点了才发现服务端没开。
*/
export type EnvelopePushConfigDtoData = {
enabled: boolean;
public_key: string;
};
export interface EnvelopePushConfigDto {
code: number;
/**
* 前端注册 Service Worker 所需的公开参数。
*
* 只有公钥是公开的(它就是浏览器 `applicationServerKey` 要的东西),私钥永远
* 不出现在任何响应里。`enabled=false` 时前端把整个"系统通知"开关藏起来,
* 而不是让用户点了才发现服务端没开。
*/
data?: EnvelopePushConfigDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePushResultDtoData = {
pushed: string[];
rejected: string[];
};
export interface EnvelopePushResultDto {
code: number;
data?: EnvelopePushResultDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopePushSubscriptionDtoData = {
created_at: string;
endpoint: string;
id: string;
platform: PushSubscriptionPlatform;
/** @nullable */
updated_at?: string | null;
/** @nullable */
user_agent?: string | null;
};
export interface EnvelopePushSubscriptionDto {
code: number;
data?: EnvelopePushSubscriptionDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type ReactionScope = "issue" | "comment";
export type EnvelopeReactionDtoData = {
created_at: string;
emoji: string;
id: string;
scope: ReactionScope;
target_id: string;
user?: null | UserDto;
};
export interface EnvelopeReactionDto {
code: number;
data?: EnvelopeReactionDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeReadStateDtoData = {
/** @nullable */
last_read_message_id?: string | null;
last_read_seq: number;
/** @nullable */
last_viewed_at?: string | null;
room_id: string;
tip_seq: number;
unread_count: number;
unread_mentions: number;
};
export interface EnvelopeReadStateDto {
code: number;
data?: EnvelopeReadStateDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeRecoveryCodesRespData = {
codes: string[];
/** @minimum 0 */
total: number;
/** @minimum 0 */
used: number;
};
export interface EnvelopeRecoveryCodesResp {
code: number;
data?: EnvelopeRecoveryCodesRespData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeRedeemInviteResponseData = {
joined: boolean;
member_id: string;
organization_id: string;
};
export interface EnvelopeRedeemInviteResponse {
code: number;
data?: EnvelopeRedeemInviteResponseData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeRegisterCodeResponseData = {
/** @minimum 0 */
expires_in_secs: number;
};
export interface EnvelopeRegisterCodeResponse {
code: number;
data?: EnvelopeRegisterCodeResponseData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeReleaseDtoData = {
/** @nullable */
content?: string | null;
created_at: string;
id: string;
is_draft: boolean;
is_prerelease: boolean;
num_commits: number;
publisher?: null | UserDto;
publisher_name: string;
repo_id: string;
sha: string;
tag_name: string;
target: string;
title: string;
updated_at: string;
};
export interface EnvelopeReleaseDto {
code: number;
data?: EnvelopeReleaseDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type ReminderStatus = "Pending" | "Done" | "Cancelled" | "Delivering";
export type EnvelopeReminderDtoData = {
created_at: string;
id: string;
message_id: string;
/** @nullable */
message_preview?: string | null;
/** @nullable */
note?: string | null;
remind_at: string;
room_id: string;
status: ReminderStatus;
};
export interface EnvelopeReminderDto {
code: number;
data?: EnvelopeReminderDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeRepairDirRespData = {
fixed: number;
scanned: number;
};
export interface EnvelopeRepairDirResp {
code: number;
data?: EnvelopeRepairDirRespData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export interface RepoMeDto {
starred: boolean;
watch_mode?: null | WatchMode;
}
export type EnvelopeRepoDtoData = {
/** 是否允许在本仓库创建合并请求(关闭后页签隐藏、接口拒绝)。 */
allow_pull_requests: boolean;
/** @nullable */
archived_at?: string | null;
/** @nullable */
avatar_url?: string | null;
branches_count: number;
commits_count: number;
created_at: string;
default_branch: string;
/** @nullable */
description?: string | null;
enable_lfs: boolean;
git_size: number;
/** @nullable */
http_clone_url?: string | null;
id: string;
is_archived: boolean;
is_private: boolean;
/** @nullable */
last_pushed_at?: string | null;
lfs_size: number;
/** @nullable */
license_name?: string | null;
me?: null | RepoMeDto;
name: string;
object_format: string;
/** @nullable */
primary_language?: string | null;
pulls_count: number;
size: number;
/** @nullable */
ssh_clone_url?: string | null;
stars_count: number;
/** @nullable */
storage_limit_size?: number | null;
/** 中间页签顺序;空数组 = 默认顺序。 */
tab_order: string[];
tags_count: number;
updated_at: string;
watchers_count: number;
/** @nullable */
website?: string | null;
};
export interface EnvelopeRepoDto {
code: number;
data?: EnvelopeRepoDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeRepoRelDtoData = {
created_at: string;
id: string;
issue_id: string;
repo_id: string;
};
export interface EnvelopeRepoRelDto {
code: number;
data?: EnvelopeRepoRelDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeRepoStarRespData = {
stars: number;
};
export interface EnvelopeRepoStarResp {
code: number;
data?: EnvelopeRepoStarRespData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeRepoWatchDtoData = {
created_at: string;
mode: WatchMode;
repo_id: string;
updated_at: string;
user_id: number;
};
export interface EnvelopeRepoWatchDto {
code: number;
data?: EnvelopeRepoWatchDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeReportDtoData = {
created_at: string;
/** @nullable */
evidence?: string | null;
id: string;
reason: string;
reported_id: number;
status: ReportStatus;
};
export interface EnvelopeReportDto {
code: number;
data?: EnvelopeReportDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeRoleSummaryData = {
/** @nullable */
color?: string | null;
created_at: string;
default_role: boolean;
/** @nullable */
description?: string | null;
/** @nullable */
emoji?: string | null;
/** @nullable */
icon_hash?: string | null;
id: string;
key: string;
member_count: number;
name: string;
organization_id: string;
permissions: PermissionGrant[];
position: number;
rank: number;
self_assignable: boolean;
system: boolean;
updated_at: string;
version: number;
};
export interface EnvelopeRoleSummary {
code: number;
data?: EnvelopeRoleSummaryData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeRoomBriefDtoData = {
created_at: string;
/** @nullable */
dir_id?: string | null;
favorite: boolean;
hidden: boolean;
id: string;
is_private: boolean;
kind: RoomKind;
/** @nullable */
last_message_id?: string | null;
member_count: number;
muted: boolean;
name: string;
nsfw: boolean;
owner?: null | UserDto;
owner_id: number;
/** @nullable */
parent_id?: string | null;
position: number;
/** @nullable */
rate_limit_per_user?: number | null;
/** @nullable */
space_id?: string | null;
/** @nullable */
topic?: string | null;
unread_count: number;
unread_mentions: number;
};
export interface EnvelopeRoomBriefDto {
code: number;
data?: EnvelopeRoomBriefDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeRoomDtoData = {
created_at: string;
/** @nullable */
dir_id?: string | null;
id: string;
is_active: boolean;
is_private: boolean;
kind: RoomKind;
name: string;
nsfw: boolean;
owner_id: number;
/** @nullable */
parent_id?: string | null;
position: number;
/** @nullable */
rate_limit_per_user?: number | null;
/** @nullable */
space_id?: string | null;
/** @nullable */
topic?: string | null;
updated_at: string;
/** @nullable */
user_limit?: number | null;
};
export interface EnvelopeRoomDto {
code: number;
data?: EnvelopeRoomDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type RoomNotificationLevel = "Default" | "All" | "Mentions" | "Nothing";
export type EnvelopeRoomSettingDtoData = {
favorite: boolean;
hidden: boolean;
/** @nullable */
mute_until?: string | null;
muted: boolean;
notification_level: RoomNotificationLevel;
room_id: string;
};
export interface EnvelopeRoomSettingDto {
code: number;
data?: EnvelopeRoomSettingDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeSavedMessageDtoData = {
channel_id: string;
id: string;
message_id: string;
saved_at: string;
};
export interface EnvelopeSavedMessageDto {
code: number;
data?: EnvelopeSavedMessageDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeScriptOutputDtoData = {
exit_code: number;
stderr: string;
stdout: string;
};
export interface EnvelopeScriptOutputDto {
code: number;
data?: EnvelopeScriptOutputDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeSignatureDtoData = {
email: string;
name: string;
when: string;
};
export interface EnvelopeSignatureDto {
code: number;
data?: EnvelopeSignatureDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeSpaceDtoData = {
allow_invite: boolean;
allow_join: boolean;
allow_join_level: AllowJoinLevel;
/** @nullable */
avatar_url?: string | null;
created_at: string;
/** @nullable */
description?: string | null;
id: string;
is_active: boolean;
is_private: boolean;
lower_name: string;
member_must_enable_2fa: boolean;
members_count: number;
name: string;
owner?: null | UserDto;
updated_at: string;
/** @nullable */
welcome_message?: string | null;
/** @nullable */
welcome_object?: string | null;
};
export interface EnvelopeSpaceDto {
code: number;
data?: EnvelopeSpaceDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeSpaceImageDtoData = {
/** @minimum 0 */
bytes: number;
format: AvatarFormat;
/** @nullable */
height?: number | null;
kind: SpaceImageKind;
space_id: string;
updated_at: string;
url: string;
/** @nullable */
width?: number | null;
};
export interface EnvelopeSpaceImageDto {
code: number;
data?: EnvelopeSpaceImageDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export interface ReadStateDto {
/** @nullable */
last_read_message_id?: string | null;
last_read_seq: number;
/** @nullable */
last_viewed_at?: string | null;
room_id: string;
tip_seq: number;
unread_count: number;
unread_mentions: number;
}
export type EnvelopeSpaceReadStatesData = {
items: ReadStateDto[];
};
export interface EnvelopeSpaceReadStates {
code: number;
data?: EnvelopeSpaceReadStatesData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeSshKeySummaryData = {
algorithm: SshKeyAlgorithm;
created_at: string;
/** @nullable */
description?: string | null;
/** @nullable */
expires_at?: string | null;
fingerprint: string;
id: string;
/** @nullable */
last_used_at?: string | null;
name: string;
public_key: string;
/** @nullable */
revoked_at?: string | null;
};
export interface EnvelopeSshKeySummary {
code: number;
data?: EnvelopeSshKeySummaryData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeStopwatchDtoData = {
/** @nullable */
created_at?: string | null;
/** @nullable */
id?: string | null;
issue_id: string;
running: boolean;
/** @nullable */
started_at?: string | null;
user?: null | UserDto;
};
export interface EnvelopeStopwatchDto {
code: number;
data?: EnvelopeStopwatchDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export interface EnvelopeString {
code: number;
data?: string;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeTagDtoData = {
/** @nullable */
created_at?: string | null;
/** @nullable */
message?: string | null;
name: string;
tag_type: TagType;
/** @nullable */
tagger_email?: string | null;
/** @nullable */
tagger_name?: string | null;
target_sha: string;
};
export interface EnvelopeTagDto {
code: number;
data?: EnvelopeTagDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeTagPolicyDtoData = {
created_at: string;
id: string;
name_pattern: string;
repo_id: string;
updated_at: string;
};
export interface EnvelopeTagPolicyDto {
code: number;
data?: EnvelopeTagPolicyDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeTagWhitelistDtoData = {
policy_id: string;
user?: null | UserDto;
user_id: number;
};
export interface EnvelopeTagWhitelistDto {
code: number;
data?: EnvelopeTagWhitelistDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeThreadDtoData = {
archived: boolean;
created_at: string;
id: string;
/** @nullable */
last_reply_at?: string | null;
/** @nullable */
last_reply_id?: string | null;
locked: boolean;
/** @nullable */
name?: string | null;
owner?: null | UserDto;
owner_id: number;
participant_count: number;
reply_count: number;
room_id: string;
root_message_id: string;
updated_at: string;
};
export interface EnvelopeThreadDto {
code: number;
data?: EnvelopeThreadDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeTopicDtoData = {
created_at: string;
id: string;
name: string;
updated_at: string;
};
export interface EnvelopeTopicDto {
code: number;
data?: EnvelopeTopicDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeTotpSetupRespData = {
otpauth_uri: string;
secret: string;
};
export interface EnvelopeTotpSetupResp {
code: number;
data?: EnvelopeTotpSetupRespData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeTotpStatusRespData = {
enabled: boolean;
};
export interface EnvelopeTotpStatusResp {
code: number;
data?: EnvelopeTotpStatusRespData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeTrackedTimeDtoData = {
created_at: string;
id: string;
issue_id: string;
seconds: number;
user?: null | UserDto;
};
export interface EnvelopeTrackedTimeDto {
code: number;
data?: EnvelopeTrackedTimeDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeUnreadCountRespData = {
/** @minimum 0 */
count: number;
};
export interface EnvelopeUnreadCountResp {
code: number;
data?: EnvelopeUnreadCountRespData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeUpdateBranchDtoData = {
pull: PullDto;
result: MergeResultDto;
};
export interface EnvelopeUpdateBranchDto {
code: number;
data?: EnvelopeUpdateBranchDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeUploadIntentDtoData = {
/** @minimum 0 */
expires_secs: number;
id: string;
upload_url: string;
};
export interface EnvelopeUploadIntentDto {
code: number;
data?: EnvelopeUploadIntentDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeUserLoginResponseData = {
/** @nullable */
challenge?: string | null;
/** @nullable */
displayname?: string | null;
mfa_required: boolean;
user_id: number;
username: string;
};
export interface EnvelopeUserLoginResponse {
code: number;
data?: EnvelopeUserLoginResponseData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeUserOverwriteDtoData = {
allow_mask: number;
deny_mask: number;
dir_id: string;
user?: null | UserDto;
user_id: number;
};
export interface EnvelopeUserOverwriteDto {
code: number;
data?: EnvelopeUserOverwriteDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeUserPreferencesDtoData = {
allow_dms_from: Audience;
allow_mentions_from: Audience;
/** Default view for the 问题集 page: `board` or `list`. */
board_view_mode: string;
/** @nullable */
diff_view_style?: string | null;
email_digest: boolean;
email_flags: number;
in_app_flags: number;
/** @nullable */
mute_until?: string | null;
push_flags: number;
show_online_status: boolean;
theme_mode: string;
};
export interface EnvelopeUserPreferencesDto {
code: number;
data?: EnvelopeUserPreferencesDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeUserPublicData = {
avatar_url: string;
display_name: string;
user_id: number;
username: string;
};
export interface EnvelopeUserPublic {
code: number;
data?: EnvelopeUserPublicData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeUserRegisterResponseData = {
/** @nullable */
displayname?: string | null;
user_id: number;
username: string;
};
export interface EnvelopeUserRegisterResponse {
code: number;
data?: EnvelopeUserRegisterResponseData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export interface EnvelopeValue {
code: number;
data?: unknown;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecAgreementDocDataItem = {
content_md: string;
key: string;
title: string;
version: string;
};
export interface EnvelopeVecAgreementDoc {
code: number;
data?: EnvelopeVecAgreementDocDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecBlameRangeDtoDataItem = {
abbreviated_oid: string;
commit_sha: string;
ending_line: number;
/** @nullable */
path?: string | null;
starting_line: number;
};
export interface EnvelopeVecBlameRangeDto {
code: number;
data?: EnvelopeVecBlameRangeDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecBranchPolicyDtoDataItem = {
block_on_change_requested_reviews: boolean;
block_on_outdated_branch: boolean;
block_on_rejected_reviews: boolean;
branch_pattern: string;
created_at: string;
dismiss_stale_approvals: boolean;
enable_approvals_whitelist: boolean;
enable_force_push: boolean;
enable_merge_whitelist: boolean;
enable_push: boolean;
enable_push_whitelist: boolean;
id: string;
protected_file_patterns: string;
push_whitelist_deploy_keys: boolean;
repo_id: string;
require_signed_commits: boolean;
required_approvals: number;
required_status_contexts: string;
unprotected_file_patterns: string;
updated_at: string;
};
export interface EnvelopeVecBranchPolicyDto {
code: number;
data?: EnvelopeVecBranchPolicyDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecBranchWhitelistDtoDataItem = {
created_at: string;
/** @nullable */
group_id?: string | null;
id: string;
kind: WhitelistKind;
policy_id: string;
user?: null | UserDto;
/** @nullable */
user_id?: number | null;
};
export interface EnvelopeVecBranchWhitelistDto {
code: number;
data?: EnvelopeVecBranchWhitelistDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecChangedPathDiffDtoDataItem = {
binary: boolean;
/** @minimum 0 */
lines_added: number;
/** @minimum 0 */
lines_removed: number;
/** @nullable */
patch?: string | null;
path: ChangedPathDto;
};
export interface EnvelopeVecChangedPathDiffDto {
code: number;
data?: EnvelopeVecChangedPathDiffDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecCleanupObjectDtoDataItem = {
/** 目录的子节点数 / 频道的子频道数。 */
child_count: number;
/** `dirs.id`(目录/仓库/问题集/智能体集)或 `rooms.id`(频道)。 */
id: string;
is_archived: boolean;
/**
* 仅仓库与频道有可见性开关。
* @nullable
*/
is_private?: boolean | null;
/** `dir | object | repo | board | text | voice | stage | category | news | guild_room` */
kind: string;
name: string;
/** 目录上的权限覆盖条数(group + user)。 */
overwrite_count: number;
/** 父链拼出的可读路径,例如 `bots / 研究研究`。 */
path: string;
};
export interface EnvelopeVecCleanupObjectDto {
code: number;
data?: EnvelopeVecCleanupObjectDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecCommentTreeNodeDataItem = {
comment: CommentDto;
replies: CommentTreeNode[];
};
export interface EnvelopeVecCommentTreeNode {
code: number;
data?: EnvelopeVecCommentTreeNodeDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecCommitStatusDtoDataItem = {
context: string;
created_at: string;
creator?: null | UserDto;
creator_id: number;
/** @nullable */
description?: string | null;
state: CommitStatusDtoState;
/** @nullable */
target_url?: string | null;
/** @nullable */
updated_at?: string | null;
};
export interface EnvelopeVecCommitStatusDto {
code: number;
data?: EnvelopeVecCommitStatusDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecContributorStatDtoDataItem = {
additions: number;
commits: number;
deletions: number;
email: string;
name: string;
};
export interface EnvelopeVecContributorStatDto {
code: number;
data?: EnvelopeVecContributorStatDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecDependencyDtoDataItem = {
created_at: string;
dependency_id: string;
id: string;
issue_id: string;
};
export interface EnvelopeVecDependencyDto {
code: number;
data?: EnvelopeVecDependencyDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecDirNodeDtoDataItem = {
/** @nullable */
archived_at?: string | null;
children: DirNodeDto[];
/** @nullable */
color?: string | null;
created_at: string;
created_by_id: number;
/** @nullable */
icon?: string | null;
id: string;
is_archived: boolean;
kind: DirKind;
name: string;
/** @nullable */
parent_dir_id?: string | null;
position: number;
/** @nullable */
purpose?: string | null;
/** @nullable */
topic?: string | null;
updated_at: string;
};
export interface EnvelopeVecDirNodeDto {
code: number;
data?: EnvelopeVecDirNodeDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecGroupOverwriteDtoDataItem = {
allow_mask: number;
deny_mask: number;
dir_id: string;
group_id: string;
};
export interface EnvelopeVecGroupOverwriteDto {
code: number;
data?: EnvelopeVecGroupOverwriteDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecIssueAttachmentDtoDataItem = {
content_type: string;
created_at: string;
filename: string;
id: string;
/**
* `None` until the draft is submitted with this attachment attached.
* @nullable
*/
issue_id?: string | null;
size: number;
status: IssueAttachmentStatus;
uploader_id: number;
};
export interface EnvelopeVecIssueAttachmentDto {
code: number;
data?: EnvelopeVecIssueAttachmentDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecIssuePullLinkDtoDataItem = {
/** 建立关联的时间。 */
linked_at: string;
pull: PullDto;
/** 关联行主键(issue_relation_pull.id),解除关联时作为路径参数回传。 */
relation_id: string;
};
export interface EnvelopeVecIssuePullLinkDto {
code: number;
data?: EnvelopeVecIssuePullLinkDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecJoinRuleDtoDataItem = {
created_at: string;
enabled: boolean;
id: string;
matcher: string;
role_id: string;
trigger: SpaceJoinTrigger;
updated_at: string;
};
export interface EnvelopeVecJoinRuleDto {
code: number;
data?: EnvelopeVecJoinRuleDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecLabelDtoDataItem = {
color: string;
created_at: string;
/** @nullable */
description?: string | null;
dir_id: string;
exclusive: boolean;
exclusive_order: number;
id: string;
is_archived: boolean;
name: string;
/** @nullable */
updated_at?: string | null;
};
export interface EnvelopeVecLabelDto {
code: number;
data?: EnvelopeVecLabelDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecLanguageStatDtoDataItem = {
is_primary: boolean;
language: string;
percentage_bp: number;
size: number;
};
export interface EnvelopeVecLanguageStatDto {
code: number;
data?: EnvelopeVecLanguageStatDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecLfsPointerDtoDataItem = {
/** @nullable */
oid?: string | null;
/** @nullable */
size?: number | null;
version: string;
};
export interface EnvelopeVecLfsPointerDto {
code: number;
data?: EnvelopeVecLfsPointerDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecMemeDtoDataItem = {
content_type: string;
created_at: string;
/** @nullable */
height?: number | null;
id: string;
name: string;
size: number;
url: string;
/** @nullable */
width?: number | null;
};
export interface EnvelopeVecMemeDto {
code: number;
data?: EnvelopeVecMemeDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecMergeCommitDtoDataItem = {
author_at: string;
author_email: string;
author_name: string;
message: string;
parents: string[];
sha: string;
subject: string;
};
export interface EnvelopeVecMergeCommitDto {
code: number;
data?: EnvelopeVecMergeCommitDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecMessageEditDtoDataItem = {
content: string;
created_at: string;
editor?: null | UserDto;
id: string;
message_id: string;
};
export interface EnvelopeVecMessageEditDto {
code: number;
data?: EnvelopeVecMessageEditDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecOutboundWebhookDtoDataItem = {
created_at: string;
disabled: boolean;
id: string;
/** @nullable */
last_status?: string | null;
/** @nullable */
last_used_at?: string | null;
name: string;
room_id: string;
url: string;
};
export interface EnvelopeVecOutboundWebhookDto {
code: number;
data?: EnvelopeVecOutboundWebhookDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecPathLogEntryDtoDataItem = {
author: string;
date: string;
path: string;
short_sha: string;
subject: string;
};
export interface EnvelopeVecPathLogEntryDto {
code: number;
data?: EnvelopeVecPathLogEntryDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecPinDtoDataItem = {
board_id: string;
created_at: string;
id: string;
/** @nullable */
issue_id?: string | null;
pin_order: number;
};
export interface EnvelopeVecPinDto {
code: number;
data?: EnvelopeVecPinDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecPresenceDtoDataItem = {
activities: unknown;
/** @nullable */
last_seen_at?: string | null;
online: boolean;
status: PresenceStatus;
user?: null | UserDto;
user_id: number;
};
export interface EnvelopeVecPresenceDto {
code: number;
data?: EnvelopeVecPresenceDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecPullAssigneeDtoDataItem = {
created_at: string;
id: string;
user?: null | UserDto;
};
export interface EnvelopeVecPullAssigneeDto {
code: number;
data?: EnvelopeVecPullAssigneeDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export interface PullCommentDto {
author?: null | UserDto;
body: string;
/** @nullable */
commit_sha?: string | null;
created_at: string;
id: string;
/** @nullable */
line?: number | null;
/** @nullable */
parent_comment_id?: string | null;
/** @nullable */
path?: string | null;
pull_request_id: string;
resolved: boolean;
/** @nullable */
resolved_by?: number | null;
/** @nullable */
review_id?: string | null;
/** @nullable */
side?: string | null;
/** @nullable */
updated_at?: string | null;
}
/**
* 线程视图:顶层评论 + 其下全部回复(无递归,便于文档生成)。
*/
export type EnvelopeVecPullCommentThreadDtoDataItem = {
replies: PullCommentDto[];
root: PullCommentDto;
};
export interface EnvelopeVecPullCommentThreadDto {
code: number;
data?: EnvelopeVecPullCommentThreadDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecPullReviewDtoDataItem = {
/** @minimum 0 */
comment_count: number;
commit_sha: string;
/** @nullable */
content?: string | null;
created_at: string;
id: string;
official: boolean;
pull_request_id: string;
state: ReviewState;
/** @nullable */
updated_at?: string | null;
user?: null | UserDto;
};
export interface EnvelopeVecPullReviewDto {
code: number;
data?: EnvelopeVecPullReviewDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type ReviewerState =
"requested" | "approved" | "changes_requested" | "commented" | "dismissed";
export type EnvelopeVecPullReviewerDtoDataItem = {
created_at: string;
id: string;
requested_by?: null | UserDto;
required: boolean;
/** @nullable */
review_id?: string | null;
state: ReviewerState;
/** @nullable */
updated_at?: string | null;
user?: null | UserDto;
};
export interface EnvelopeVecPullReviewerDto {
code: number;
data?: EnvelopeVecPullReviewerDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecReactionAggDtoDataItem = {
count: number;
emoji: string;
me: boolean;
};
export interface EnvelopeVecReactionAggDto {
code: number;
data?: EnvelopeVecReactionAggDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecReactionUserDtoDataItem = {
created_at: string;
emoji: string;
user: UserDto;
};
export interface EnvelopeVecReactionUserDto {
code: number;
data?: EnvelopeVecReactionUserDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecRecentMentionDtoDataItem = {
channel_id: string;
created_at: string;
id: string;
message_id: string;
};
export interface EnvelopeVecRecentMentionDto {
code: number;
data?: EnvelopeVecRecentMentionDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecReminderDtoDataItem = {
created_at: string;
id: string;
message_id: string;
/** @nullable */
message_preview?: string | null;
/** @nullable */
note?: string | null;
remind_at: string;
room_id: string;
status: ReminderStatus;
};
export interface EnvelopeVecReminderDto {
code: number;
data?: EnvelopeVecReminderDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecRemoteDtoDataItem = {
/** @nullable */
fetch_url?: string | null;
name: string;
/** @nullable */
push_url?: string | null;
};
export interface EnvelopeVecRemoteDto {
code: number;
data?: EnvelopeVecRemoteDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecRepoRelDtoDataItem = {
created_at: string;
id: string;
issue_id: string;
repo_id: string;
};
export interface EnvelopeVecRepoRelDto {
code: number;
data?: EnvelopeVecRepoRelDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecRoleSummaryDataItem = {
/** @nullable */
color?: string | null;
created_at: string;
default_role: boolean;
/** @nullable */
description?: string | null;
/** @nullable */
emoji?: string | null;
/** @nullable */
icon_hash?: string | null;
id: string;
key: string;
member_count: number;
name: string;
organization_id: string;
permissions: PermissionGrant[];
position: number;
rank: number;
self_assignable: boolean;
system: boolean;
updated_at: string;
version: number;
};
export interface EnvelopeVecRoleSummary {
code: number;
data?: EnvelopeVecRoleSummaryDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecRoomBriefDtoDataItem = {
created_at: string;
/** @nullable */
dir_id?: string | null;
favorite: boolean;
hidden: boolean;
id: string;
is_private: boolean;
kind: RoomKind;
/** @nullable */
last_message_id?: string | null;
member_count: number;
muted: boolean;
name: string;
nsfw: boolean;
owner?: null | UserDto;
owner_id: number;
/** @nullable */
parent_id?: string | null;
position: number;
/** @nullable */
rate_limit_per_user?: number | null;
/** @nullable */
space_id?: string | null;
/** @nullable */
topic?: string | null;
unread_count: number;
unread_mentions: number;
};
export interface EnvelopeVecRoomBriefDto {
code: number;
data?: EnvelopeVecRoomBriefDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export interface EnvelopeVecString {
code: number;
data?: string[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecSubmoduleDtoDataItem = {
/** @nullable */
branch?: string | null;
/** @nullable */
commit_sha?: string | null;
path: string;
url: string;
};
export interface EnvelopeVecSubmoduleDto {
code: number;
data?: EnvelopeVecSubmoduleDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type SuspensionType = "temporary" | "permanent";
export type EnvelopeVecSuspensionDtoDataItem = {
created_at: string;
/** @nullable */
ends_at?: string | null;
id: string;
/** @nullable */
reason?: string | null;
/** @nullable */
revoked_at?: string | null;
starts_at: string;
suspension_type: SuspensionType;
};
export interface EnvelopeVecSuspensionDto {
code: number;
data?: EnvelopeVecSuspensionDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecTagPolicyDtoDataItem = {
created_at: string;
id: string;
name_pattern: string;
repo_id: string;
updated_at: string;
};
export interface EnvelopeVecTagPolicyDto {
code: number;
data?: EnvelopeVecTagPolicyDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecTagWhitelistDtoDataItem = {
policy_id: string;
user?: null | UserDto;
user_id: number;
};
export interface EnvelopeVecTagWhitelistDto {
code: number;
data?: EnvelopeVecTagWhitelistDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecTopicDtoDataItem = {
created_at: string;
id: string;
name: string;
updated_at: string;
};
export interface EnvelopeVecTopicDto {
code: number;
data?: EnvelopeVecTopicDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecUserOverwriteDtoDataItem = {
allow_mask: number;
deny_mask: number;
dir_id: string;
user?: null | UserDto;
user_id: number;
};
export interface EnvelopeVecUserOverwriteDto {
code: number;
data?: EnvelopeVecUserOverwriteDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVecUserPublicDataItem = {
avatar_url: string;
display_name: string;
user_id: number;
username: string;
};
export interface EnvelopeVecUserPublic {
code: number;
data?: EnvelopeVecUserPublicDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export interface VoiceTrackDto {
kind: string;
muted: boolean;
sid: string;
source: string;
}
/**
* 房间参与者快照。
*
* 权威来源是 LiveKit 的 list_participants,Redis 只补主持人静音等本地状态;
* 这是「谁在这个频道里」的服务端视图,用于侧栏人数与未加入时的预览。
* 会中界面的发言高亮、静音图标与画面轨道一律直接读浏览器里的 Room,
* 因为本接口不是事件流,返回值天然是快照。
*/
export type EnvelopeVecVoiceParticipantDtoDataItem = {
/** @nullable */
avatar_url?: string | null;
can_publish: boolean;
display_name: string;
joined_at: number;
moderator_muted: boolean;
/**
* 快照值:list_participants 不返回发言状态,因此这里恒为 false;
* 实时发言指示由前端从 Room 的 activeSpeakers 读取。
*/
speaking: boolean;
tracks: VoiceTrackDto[];
user_id: number;
};
export interface EnvelopeVecVoiceParticipantDto {
code: number;
data?: EnvelopeVecVoiceParticipantDtoDataItem[];
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVerifyResultDtoData = {
/** @nullable */
error_message?: string | null;
/** @nullable */
key_id?: string | null;
signed: boolean;
/** @nullable */
signer?: string | null;
valid: boolean;
};
export interface EnvelopeVerifyResultDto {
code: number;
data?: EnvelopeVerifyResultDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVoiceConfigDtoData = {
enabled: boolean;
recording_enabled: boolean;
url: string;
};
export interface EnvelopeVoiceConfigDto {
code: number;
data?: EnvelopeVoiceConfigDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export interface HandDto {
/** @nullable */
avatar_url?: string | null;
display_name: string;
requested_at: number;
state: HandState;
user_id: number;
}
export type EnvelopeVoiceHandsDtoData = {
can_moderate: boolean;
hands: HandDto[];
my_state?: null | HandState;
};
export interface EnvelopeVoiceHandsDto {
code: number;
data?: EnvelopeVoiceHandsDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
/**
* 一个参与者窗口在画布里的摆位,坐标按画布宽高归一化(0~1),
* 这样不同分辨率、不同窗口大小的成员看到的是同一套布局。
*/
export interface VoiceTileDto {
/**
* 归一化高度,和 `w` 一样按画布的可用宽高分别归一,因此窗口可以自由
* 拉伸而不是只能等比缩放。旧记录没有这个字段,读出来是 `None`,客户端
* 按宽度的 3/4 补一个经典比例。
* @nullable
*/
h?: number | null;
/**
* 服务端写入时刻(秒)。请求里被忽略,响应里供客户端判断“谁更新”,
* 这样并发拖拽时一个迟到的 GET 不会把刚摆好的窗口拽回旧位置。
*/
updated_at?: number;
/** 归一化宽度。 */
w: number;
x: number;
y: number;
}
/**
* key 为参与者用户 id。
*/
export type EnvelopeVoiceLayoutDtoDataTiles = { [key: string]: VoiceTileDto };
export type EnvelopeVoiceLayoutDtoData = {
/** key 为参与者用户 id。 */
tiles?: EnvelopeVoiceLayoutDtoDataTiles;
};
export interface EnvelopeVoiceLayoutDto {
code: number;
data?: EnvelopeVoiceLayoutDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
/**
* 本次写入的服务端时刻,客户端用它给本地副本盖戳。
*/
export type EnvelopeVoiceLayoutSavedDtoData = {
updated_at: number;
};
export interface EnvelopeVoiceLayoutSavedDto {
code: number;
/** 本次写入的服务端时刻,客户端用它给本地副本盖戳。 */
data?: EnvelopeVoiceLayoutSavedDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVoiceModerationDtoData = {
action: string;
ok: boolean;
user_id: number;
};
export interface EnvelopeVoiceModerationDto {
code: number;
data?: EnvelopeVoiceModerationDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVoiceRecordingDtoData = {
active: boolean;
egress_id: string;
};
export interface EnvelopeVoiceRecordingDto {
code: number;
data?: EnvelopeVoiceRecordingDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export interface VoiceRoomStateDto {
/** @minimum 0 */
count: number;
room_id: string;
}
export type EnvelopeVoiceSpaceStatesDtoData = {
rooms: VoiceRoomStateDto[];
};
export interface EnvelopeVoiceSpaceStatesDto {
code: number;
data?: EnvelopeVoiceSpaceStatesDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeVoiceTokenDtoData = {
can_publish: boolean;
/** @minimum 0 */
expires_in_secs: number;
hand_state?: null | HandState;
is_stage: boolean;
room_name: string;
token: string;
url: string;
};
export interface EnvelopeVoiceTokenDto {
code: number;
data?: EnvelopeVoiceTokenDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeWatchDtoData = {
created_at: string;
id: string;
/** @nullable */
issue_id?: string | null;
mode: WatchMode;
/** @nullable */
updated_at?: string | null;
user?: null | UserDto;
};
export interface EnvelopeWatchDto {
code: number;
data?: EnvelopeWatchDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeWebhookDtoData = {
created_at: string;
disabled: boolean;
id: string;
/** @nullable */
last_used_at?: string | null;
name: string;
room_id: string;
};
export interface EnvelopeWebhookDto {
code: number;
data?: EnvelopeWebhookDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export type EnvelopeWebhookSecretDtoData = {
created_at: string;
disabled: boolean;
id: string;
name: string;
room_id: string;
token: string;
};
export interface EnvelopeWebhookSecretDto {
code: number;
data?: EnvelopeWebhookSecretDtoData;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export interface EnvelopeBool {
code: number;
data?: boolean;
/** @nullable */
error?: string | null;
/** @nullable */
error_code?: string | null;
message: string;
request_id?: string;
}
export interface EventDto {
/** @nullable */
comment_id?: string | null;
/** @nullable */
commit_sha?: string | null;
/** @nullable */
content?: string | null;
created_at: string;
event_type: IssueEventType;
id: string;
/** @nullable */
issue_id?: string | null;
/** @nullable */
new_ref?: string | null;
/** @nullable */
new_title?: string | null;
/** @nullable */
old_ref?: string | null;
/** @nullable */
old_title?: string | null;
user?: null | UserDto;
}
export interface EventPath {
board_id: string;
issue_id: string;
space_name: string;
}
export type ExploreSort = "members" | "newest";
export interface ExploreSpaceDto {
allow_join: boolean;
allow_join_level: AllowJoinLevel;
/** @nullable */
avatar_url?: string | null;
/** @nullable */
banner_url?: string | null;
created_at: string;
/** @nullable */
description?: string | null;
id: string;
lower_name: string;
members_count: number;
name: string;
viewer?: null | ExploreViewerDto;
}
export interface FetchResultDto {
new: string[];
updated: string[];
}
export interface FileEntryDto {
/** @items.minimum 0 */
content: number[];
executable: boolean;
path: string;
}
export interface FinalizeAttachmentCmd {
/** @nullable */
duration_secs?: number | null;
/** @nullable */
height?: number | null;
/** @nullable */
width?: number | null;
}
export interface ForwardMessageCmd {
/** @nullable */
comment?: string | null;
target_room_id: string;
}
export interface FsckDto {
broken: number;
dangling: number;
ok: boolean;
}
export interface GroupDto {
color: string;
created_at: string;
created_by?: null | UserDto;
/** @nullable */
icon_hash?: string | null;
id: string;
name: string;
permissions: string[];
position: number;
space_id: string;
/** @nullable */
unicode_emoji?: string | null;
/** @nullable */
updated_at?: string | null;
version: number;
}
export interface GroupOverwriteDto {
allow_mask: number;
deny_mask: number;
dir_id: string;
group_id: string;
}
export interface HeadInfoDto {
is_detached: boolean;
name: string;
object: string;
object_type: number;
}
export type HookEventKind =
"pre_receive" | "post_receive" | "update" | "push" | "tag" | "merge_request";
export interface HookExecBody {
args?: string[];
}
/**
* Which representation a read endpoint should hand back.
*/
export type ImageVariant = "preview" | "original";
export interface ImportResultDto {
commit_count: number;
default_branch: string;
}
export interface IncludeRevokedQuery {
/** @nullable */
active?: boolean | null;
/** @nullable */
include_revoked?: boolean | null;
}
export interface IngestPackDto {
object_count: number;
size: number;
}
export interface InlineDraft {
/** @nullable */
body?: string | null;
line: number;
path: string;
/** @nullable */
side?: string | null;
}
export interface InviteListQuery {
/** @nullable */
include_revoked?: boolean | null;
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
}
export interface IsAncestorResponse {
is_ancestor: boolean;
}
export interface IsObjectInRefResponse {
contains: boolean;
}
export interface IssueAttachmentDto {
content_type: string;
created_at: string;
filename: string;
id: string;
/**
* `None` until the draft is submitted with this attachment attached.
* @nullable
*/
issue_id?: string | null;
size: number;
status: IssueAttachmentStatus;
uploader_id: number;
}
export interface IssueDto {
assignees: UserDto[];
author?: null | UserDto;
board_id: string;
/** @nullable */
closed_at?: string | null;
content: string;
created_at: string;
/** @nullable */
description?: string | null;
/** @nullable */
due_at?: string | null;
id: string;
/** @nullable */
milestone_id?: string | null;
number: number;
priority: IssuePriority;
state: IssueState;
title: string;
/** @nullable */
updated_at?: string | null;
viewer_watch?: null | WatchMode;
}
export interface IssueLabelPath {
board_id: string;
issue_id: string;
label_id: string;
space_name: string;
}
export interface IssueListItemDto {
assignees: UserDto[];
author?: null | UserDto;
board_id: string;
/** @nullable */
closed_at?: string | null;
created_at: string;
/** @nullable */
due_at?: string | null;
id: string;
/** Chips the list rows render; the detail view fetches these separately. */
labels: LabelDto[];
/** @nullable */
milestone_id?: string | null;
number: number;
priority: IssuePriority;
state: IssueState;
title: string;
/** @nullable */
updated_at?: string | null;
}
export interface IssueMemberDto {
created_at: string;
id: string;
issue_id: string;
kind: IssueMemberKind;
/** @nullable */
updated_at?: string | null;
user?: null | UserDto;
}
export interface IssueMemberPath {
board_id: string;
issue_id: string;
member_id: string;
space_name: string;
}
export interface IssuePath {
board_id: string;
/** issue uuid or board-scoped number (e.g. "123") */
issue_id: string;
space_name: string;
}
export interface IssuePullLinkDto {
/** 建立关联的时间。 */
linked_at: string;
pull: PullDto;
/** 关联行主键(issue_relation_pull.id),解除关联时作为路径参数回传。 */
relation_id: string;
}
export type IssueSort =
"created_at" | "updated_at" | "due_at" | "priority" | "number";
export interface IssueUploadIntentDto {
/** @minimum 0 */
expires_secs: number;
id: string;
upload_url: string;
}
export interface IssueUserDto {
created_at: string;
id: string;
is_read: boolean;
issue_id: string;
user?: null | UserDto;
user_id: number;
}
export interface IssueUserPath {
board_id: string;
issue_id: string;
space_name: string;
user_id: number;
}
export interface JoinRequestDto {
created_at: string;
/** @nullable */
decided_at?: string | null;
decided_by?: null | UserDto;
id: string;
/** @nullable */
note?: string | null;
space_id: string;
status: SpaceJoinRequestState;
updated_at: string;
user?: null | UserDto;
}
export interface JoinRuleDto {
created_at: string;
enabled: boolean;
id: string;
matcher: string;
role_id: string;
trigger: SpaceJoinTrigger;
updated_at: string;
}
export interface LabelPath {
board_id: string;
label_id: string;
space_name: string;
}
export interface LanguageStatDto {
is_primary: boolean;
language: string;
percentage_bp: number;
size: number;
}
export interface LfsCleanupResponse {
removed: number;
}
export interface LfsLockBody {
/** @nullable */
oid?: string | null;
path: string;
}
export interface LfsLockListResponse {
locks?: LfsLock[];
/** @nullable */
next_cursor?: string | null;
}
export interface LfsVerifyLocksResponse {
/** @nullable */
next_cursor?: string | null;
ours?: LfsLock[];
theirs?: LfsLock[];
}
export interface LicenseDto {
body: string;
created_at: string;
/** @nullable */
description?: string | null;
display_name: string;
name: string;
updated_at: string;
/** @nullable */
url?: string | null;
}
export interface LinkIssueCmd {
/** PR 编号或 UUID。 */
pull_ref: string;
repo_name: string;
space_name: string;
}
export interface ListBoardQuery {
/** @nullable */
dir_id?: string | null;
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
/** @nullable */
q?: string | null;
}
export type SortOrder = "asc" | "desc";
export interface ListCommentQuery {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
order?: null | SortOrder;
/** @nullable */
parent_id?: string | null;
sort?: null | CommentSort;
}
export interface ListContentHistoryQuery {
/** @nullable */
comment_id?: string | null;
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
}
export interface ListEventQuery {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
}
export interface ListIssueMemberQuery {
kind?: null | IssueMemberKind;
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
}
export interface ListIssueQuery {
/**
* One id or a comma-separated id list (`a,b`); matches any of them.
* @nullable
*/
assignee_id?: string | null;
/** @nullable */
author_id?: number | null;
/**
* One id or a comma-separated id list (`a,b`); matches any of them.
* @nullable
*/
label_id?: string | null;
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* One id or a comma-separated id list (`a,b`); `none` matches issues
* without a milestone. Any of the listed values matches.
* @nullable
*/
milestone_id?: string | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
order?: null | SortOrder;
/**
* One priority or a comma-separated list (`high,urgent`).
* @nullable
*/
priority?: string | null;
/** @nullable */
q?: string | null;
sort?: null | IssueSort;
state?: null | IssueState;
}
export interface ListIssueUserQuery {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
}
export interface ListLabelQuery {
/** @nullable */
is_archived?: boolean | null;
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
/** @nullable */
q?: string | null;
}
export interface ListLimitQuery {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
}
export interface ListMessageQuery {
/** @nullable */
after_seq?: number | null;
/** @nullable */
author_id?: number | null;
/** @nullable */
before_seq?: number | null;
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
/** @nullable */
thread_id?: string | null;
}
export interface ListMilestoneQuery {
/** @nullable */
is_closed?: boolean | null;
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
/** @nullable */
q?: string | null;
}
export interface ListThreadQuery {
/** @nullable */
archived?: boolean | null;
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
}
export interface ListTrackedTimeQuery {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
/** @nullable */
user_id?: number | null;
}
export interface PowProofRequest {
/** @minimum 0 */
nonce: number;
/** @items.minimum 0 */
payload: number[];
}
export interface LoginCodeRequest {
email: string;
pow_payload: PowProofRequest;
}
export interface LoginCodeResponse {
/** @minimum 0 */
expires_in_secs: number;
}
export interface LoginCodeVerifyRequest {
email: string;
email_code: string;
pow_payload: PowProofRequest;
}
export interface LoginVerifyRequest {
challenge: string;
code: string;
}
export interface LogoutResponse {
/** @nullable */
user_id?: number | null;
}
export interface MarkIssueReadCmd {
read: boolean;
}
export interface MarkNotificationsReadCmd {
all?: boolean;
/** @nullable */
ids?: string[] | null;
}
export interface MarkReadCmd {
/** @nullable */
message_id?: string | null;
/** @nullable */
seq?: number | null;
}
export interface MarkThreadReadCmd {
/** @nullable */
message_id?: string | null;
}
export interface MarkedCountResp {
/** @minimum 0 */
marked: number;
}
export interface MeResp {
profile?: null | ProfileDto;
user: UserMeDto;
}
export interface MeResponse {
/** @nullable */
avatar_url?: string | null;
created_at: string;
/** @nullable */
displayname?: string | null;
email: string;
/** @nullable */
email_verified_at?: string | null;
is_admin: boolean;
user_id: number;
username: string;
version: number;
}
export interface MemberDto {
/** @nullable */
alias_avatar_url?: string | null;
/** @nullable */
alias_name?: string | null;
created_at: string;
hide_muted_channels: boolean;
/** @nullable */
invited_at?: string | null;
invited_by?: null | UserDto;
joined_at: string;
/** @nullable */
last_active_at?: string | null;
/** @nullable */
left_at?: string | null;
message_notifications: MessageNotifications;
mobile_push: boolean;
/** @nullable */
mute_until?: string | null;
muted: boolean;
space_id: string;
status: MemberStatus;
suppress_everyone: boolean;
suppress_roles: boolean;
/** @nullable */
updated_at?: string | null;
user?: null | UserDto;
}
export interface MemberListQuery {
/** @nullable */
include_banned?: boolean | null;
/** @nullable */
include_inactive?: boolean | null;
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
}
export interface MemberSummary {
/** @nullable */
alias_avatar_url?: string | null;
/** @nullable */
alias_name?: string | null;
ban_allow_agent_join: boolean;
ban_allow_comment_any: boolean;
ban_allow_push_repo: boolean;
ban_allow_speak: boolean;
/** @nullable */
ban_expires_at?: string | null;
/** @nullable */
ban_reason?: string | null;
/** @nullable */
banned_at?: string | null;
/** @nullable */
displayname?: string | null;
hide_muted_channels: boolean;
id: string;
/** @nullable */
invited_by?: number | null;
join_method: SpaceJoinMethod;
joined_at: string;
/** @nullable */
last_active_at?: string | null;
/** @nullable */
left_at?: string | null;
message_notifications: MessageNotifications;
mobile_push: boolean;
/** @nullable */
mute_until?: string | null;
muted: boolean;
organization_id: string;
permissions: string[];
role: SpaceMemberRole;
role_keys: string[];
suppress_everyone: boolean;
suppress_roles: boolean;
user_id: number;
username: string;
version: number;
}
export interface MemeDto {
content_type: string;
created_at: string;
/** @nullable */
height?: number | null;
id: string;
name: string;
size: number;
url: string;
/** @nullable */
width?: number | null;
}
export interface MergeCommitDto {
author_at: string;
author_email: string;
author_name: string;
message: string;
parents: string[];
sha: string;
subject: string;
}
export interface MergePullCmd {
/** @nullable */
delete_branch_after_merge?: boolean | null;
/** @nullable */
expect_head_sha?: string | null;
/**
* 允许在无冲突时直接快进(method=merge 时生效)。
* @nullable
*/
fast_forward_only?: boolean | null;
/** @nullable */
message?: string | null;
method?: null | MergeMethod;
/** @nullable */
title?: string | null;
}
export interface MergePullDto {
pull: PullDto;
result: MergeResultDto;
summary: PullSummaryDto;
}
export interface MergeStatusDto {
conflicts: string[];
fast_forwardable: boolean;
mergeable: boolean;
}
export interface MessageEditDto {
content: string;
created_at: string;
editor?: null | UserDto;
id: string;
message_id: string;
}
/**
* 消息页:在统一分页字段之上补回游标翻页所需的派生字段。
*
* `has_more`/`oldest_seq`/`newest_seq` 由本页内容推导,客户端无需自己算;
* `items` 恒按 `seq` 升序,因此 `oldest_seq` 取首条、`newest_seq` 取末条。
*/
export interface MessagePage {
has_more: boolean;
items: MessageDto[];
/** @minimum 0 */
limit: number;
/** @nullable */
newest_seq?: number | null;
/** @minimum 0 */
offset: number;
/** @nullable */
oldest_seq?: number | null;
/** @minimum 0 */
total: number;
}
export interface MessagePath {
message_id: string;
room_id: string;
}
export interface MilestoneDto {
board_id: string;
closed_issues_count: number;
created_at: string;
/** @nullable */
description?: string | null;
/** @nullable */
due_at?: string | null;
id: string;
is_closed: boolean;
issues_count: number;
name: string;
/** @nullable */
updated_at?: string | null;
}
export interface MilestonePath {
board_id: string;
milestone_id: string;
space_name: string;
}
export interface MoveDirCmd {
/** @nullable */
parent_dir_id?: string | null;
/** @nullable */
position?: number | null;
}
export interface MySpaceDto {
permissions: string[];
space: SpaceDto;
}
export interface NoData {}
export interface NotificationDto {
/** @nullable */
actor_id?: number | null;
/** @nullable */
body?: string | null;
created_at: string;
data?: null | Value;
id: string;
notification_type: NotificationType;
/** @nullable */
read_at?: string | null;
title: string;
}
export interface OpenDmCmd {
/** @nullable */
peer_user_id?: number | null;
/** @nullable */
peer_user_ids?: number[] | null;
}
export interface OrgListQuery {
/** @nullable */
include_archived?: boolean | null;
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
}
export interface OrganizationSummary {
allow_invite: boolean;
allow_join: boolean;
allow_join_level: number;
/** @nullable */
archived_at?: string | null;
/** @nullable */
avatar_url?: string | null;
created_at: string;
/** @nullable */
description?: string | null;
id: string;
join_policy: SpaceJoinPolicy;
member_count: number;
member_must_enable_2fa: boolean;
my_role?: null | SpaceMemberRole;
name: string;
owner_user_id: number;
require_email_verified: boolean;
require_mfa: boolean;
slug: string;
status: SpaceStatus;
updated_at: string;
version: number;
/** @nullable */
welcome_message?: string | null;
}
export interface OutboundWebhookDto {
created_at: string;
disabled: boolean;
id: string;
/** @nullable */
last_status?: string | null;
/** @nullable */
last_used_at?: string | null;
name: string;
room_id: string;
url: string;
}
export interface OutboundWebhookSecretDto {
created_at: string;
id: string;
name: string;
room_id: string;
secret: string;
url: string;
}
export interface PackStatsDto {
loose_count: number;
size_bytes: number;
}
export interface PageQuery {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
}
export type PageBookmarkDtoItemsItem = {
created_at: string;
created_by_id: number;
/** @nullable */
emoji?: string | null;
id: string;
position: number;
room_id: string;
title: string;
/** @nullable */
url?: string | null;
};
export interface PageBookmarkDto {
items: PageBookmarkDtoItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PageBranchDtoItemsItem = {
commit_sha: string;
created_at: string;
/** @nullable */
deleted_at?: string | null;
is_deleted: boolean;
is_protected: boolean;
name: string;
updated_at: string;
};
export interface PageBranchDto {
items: PageBranchDtoItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PageBranchInfoDtoItemsItem = {
/** @nullable */
commit_message?: string | null;
commit_sha: string;
is_protected: boolean;
name: string;
};
export interface PageBranchInfoDto {
items: PageBranchInfoDtoItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PageDmDtoItemsItem = {
created_at: string;
id: string;
kind: RoomKind;
/** @nullable */
last_message_id?: string | null;
last_read_seq: number;
members?: UserDto[];
name: string;
peer?: null | UserDto;
tip_seq: number;
unread_count: number;
};
export interface PageDmDto {
items: PageDmDtoItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PageDraftDtoItemsItem = {
content: string;
room_id: string;
/** @nullable */
thread_id?: string | null;
updated_at: string;
};
export interface PageDraftDto {
items: PageDraftDtoItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PageEmojiDtoItemsItem = {
animated: boolean;
created_at: string;
disabled: boolean;
id: string;
name: string;
space_id: string;
};
export interface PageEmojiDto {
items: PageEmojiDtoItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PageInviteSummaryItemsItem = {
created_at: string;
created_by: number;
/** @nullable */
email?: string | null;
/** @nullable */
expires_at?: string | null;
id: string;
max_uses: number;
method: SpaceJoinMethod;
organization_id: string;
/** @nullable */
revoked_at?: string | null;
/** @nullable */
role_id?: string | null;
/** @nullable */
target_user_id?: number | null;
uses: number;
};
export interface PageInviteSummary {
items: PageInviteSummaryItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PageIssueListItemDtoItemsItem = {
assignees: UserDto[];
author?: null | UserDto;
board_id: string;
/** @nullable */
closed_at?: string | null;
created_at: string;
/** @nullable */
due_at?: string | null;
id: string;
/** Chips the list rows render; the detail view fetches these separately. */
labels: LabelDto[];
/** @nullable */
milestone_id?: string | null;
number: number;
priority: IssuePriority;
state: IssueState;
title: string;
/** @nullable */
updated_at?: string | null;
};
export interface PageIssueListItemDto {
items: PageIssueListItemDtoItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PageLicenseDtoItemsItem = {
body: string;
created_at: string;
/** @nullable */
description?: string | null;
display_name: string;
name: string;
updated_at: string;
/** @nullable */
url?: string | null;
};
export interface PageLicenseDto {
items: PageLicenseDtoItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PageMemberSummaryItemsItem = {
/** @nullable */
alias_avatar_url?: string | null;
/** @nullable */
alias_name?: string | null;
ban_allow_agent_join: boolean;
ban_allow_comment_any: boolean;
ban_allow_push_repo: boolean;
ban_allow_speak: boolean;
/** @nullable */
ban_expires_at?: string | null;
/** @nullable */
ban_reason?: string | null;
/** @nullable */
banned_at?: string | null;
/** @nullable */
displayname?: string | null;
hide_muted_channels: boolean;
id: string;
/** @nullable */
invited_by?: number | null;
join_method: SpaceJoinMethod;
joined_at: string;
/** @nullable */
last_active_at?: string | null;
/** @nullable */
left_at?: string | null;
message_notifications: MessageNotifications;
mobile_push: boolean;
/** @nullable */
mute_until?: string | null;
muted: boolean;
organization_id: string;
permissions: string[];
role: SpaceMemberRole;
role_keys: string[];
suppress_everyone: boolean;
suppress_roles: boolean;
user_id: number;
username: string;
version: number;
};
export interface PageMemberSummary {
items: PageMemberSummaryItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PageMessageDtoItemsItem = {
attachments: AttachmentDto[];
author?: null | UserDto;
author_id: number;
author_type: AuthorType;
content: string;
created_at: string;
/** @nullable */
deleted_at?: string | null;
/** @nullable */
edited_at?: string | null;
embeds?: MessageEmbed[];
/** @nullable */
forwarded_from_id?: string | null;
has_thread: boolean;
id: string;
mention_everyone: boolean;
mentions: number[];
message_type: ChatMessageType;
pinned: boolean;
/** @nullable */
pinned_at?: string | null;
/** @nullable */
pinned_by_id?: number | null;
reactions?: ReactionAggDto[];
/** @nullable */
reply_to_id?: string | null;
room_id: string;
seq: number;
thread_broadcast: boolean;
/** @nullable */
thread_id?: string | null;
/** @nullable */
webhook_id?: string | null;
};
export interface PageMessageDto {
items: PageMessageDtoItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PageMySpaceDtoItemsItem = {
permissions: string[];
space: SpaceDto;
};
export interface PageMySpaceDto {
items: PageMySpaceDtoItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PageNotificationDtoItemsItem = {
/** @nullable */
actor_id?: number | null;
/** @nullable */
body?: string | null;
created_at: string;
data?: null | Value;
id: string;
notification_type: NotificationType;
/** @nullable */
read_at?: string | null;
title: string;
};
export interface PageNotificationDto {
items: PageNotificationDtoItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PageOrganizationSummaryItemsItem = {
allow_invite: boolean;
allow_join: boolean;
allow_join_level: number;
/** @nullable */
archived_at?: string | null;
/** @nullable */
avatar_url?: string | null;
created_at: string;
/** @nullable */
description?: string | null;
id: string;
join_policy: SpaceJoinPolicy;
member_count: number;
member_must_enable_2fa: boolean;
my_role?: null | SpaceMemberRole;
name: string;
owner_user_id: number;
require_email_verified: boolean;
require_mfa: boolean;
slug: string;
status: SpaceStatus;
updated_at: string;
version: number;
/** @nullable */
welcome_message?: string | null;
};
export interface PageOrganizationSummary {
items: PageOrganizationSummaryItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PagePullCommentDtoItemsItem = {
author?: null | UserDto;
body: string;
/** @nullable */
commit_sha?: string | null;
created_at: string;
id: string;
/** @nullable */
line?: number | null;
/** @nullable */
parent_comment_id?: string | null;
/** @nullable */
path?: string | null;
pull_request_id: string;
resolved: boolean;
/** @nullable */
resolved_by?: number | null;
/** @nullable */
review_id?: string | null;
/** @nullable */
side?: string | null;
/** @nullable */
updated_at?: string | null;
};
export interface PagePullCommentDto {
items: PagePullCommentDtoItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PagePullDtoItemsItem = {
additions: number;
author?: null | UserDto;
auto_merge: boolean;
base: PullRefDto;
body: string;
/** @nullable */
closed_at?: string | null;
/** @nullable */
commits_ahead?: number | null;
/** @nullable */
commits_behind?: number | null;
/** @nullable */
conflicts?: string[] | null;
created_at: string;
deletions: number;
files_changed: number;
head: PullRefDto;
id: string;
is_draft: boolean;
/** @nullable */
issue_id?: string | null;
locked: boolean;
merge_method: MergeMethod;
/** @nullable */
mergeable?: boolean | null;
/** @nullable */
mergeable_state?: string | null;
/** @nullable */
merged_at?: string | null;
/** @nullable */
merged_commit_sha?: string | null;
merger?: null | UserDto;
number: number;
repo_id: string;
/** @nullable */
squash_commit_sha?: string | null;
state: PullState;
title: string;
/** @nullable */
updated_at?: string | null;
};
export interface PagePullDto {
items: PagePullDtoItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PagePullEventDtoItemsItem = {
actor?: null | UserDto;
/** @nullable */
commit_sha?: string | null;
/** @nullable */
content?: string | null;
created_at: string;
event_type: string;
id: string;
pull_request_id: string;
};
export interface PagePullEventDto {
items: PagePullEventDtoItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PagePushSubscriptionDtoItemsItem = {
created_at: string;
endpoint: string;
id: string;
platform: PushSubscriptionPlatform;
/** @nullable */
updated_at?: string | null;
/** @nullable */
user_agent?: string | null;
};
export interface PagePushSubscriptionDto {
items: PagePushSubscriptionDtoItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PageRepoSummaryDtoItemsItem = {
/** @nullable */
avatar_url?: string | null;
default_branch: string;
/** @nullable */
description?: string | null;
id: string;
is_archived: boolean;
is_private: boolean;
/** @nullable */
license_name?: string | null;
name: string;
/** @nullable */
primary_language?: string | null;
size: number;
stars_count: number;
updated_at: string;
watchers_count: number;
};
export interface PageRepoSummaryDto {
items: PageRepoSummaryDtoItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PageRoomBriefDtoItemsItem = {
created_at: string;
/** @nullable */
dir_id?: string | null;
favorite: boolean;
hidden: boolean;
id: string;
is_private: boolean;
kind: RoomKind;
/** @nullable */
last_message_id?: string | null;
member_count: number;
muted: boolean;
name: string;
nsfw: boolean;
owner?: null | UserDto;
owner_id: number;
/** @nullable */
parent_id?: string | null;
position: number;
/** @nullable */
rate_limit_per_user?: number | null;
/** @nullable */
space_id?: string | null;
/** @nullable */
topic?: string | null;
unread_count: number;
unread_mentions: number;
};
export interface PageRoomBriefDto {
items: PageRoomBriefDtoItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PageSavedMessageDtoItemsItem = {
channel_id: string;
id: string;
message_id: string;
saved_at: string;
};
export interface PageSavedMessageDto {
items: PageSavedMessageDtoItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PageSessionDtoItemsItem = {
/** @nullable */
client_ip_hash?: string | null;
created_at: string;
/** @nullable */
device_id?: string | null;
expires_at: string;
id: string;
is_current: boolean;
is_revoked: boolean;
kind: SessionKind;
last_seen_at: string;
/** @nullable */
revoked_at?: string | null;
/** @nullable */
user_agent_hash?: string | null;
};
export interface PageSessionDto {
items: PageSessionDtoItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PageSpaceDtoItemsItem = {
allow_invite: boolean;
allow_join: boolean;
allow_join_level: AllowJoinLevel;
/** @nullable */
avatar_url?: string | null;
created_at: string;
/** @nullable */
description?: string | null;
id: string;
is_active: boolean;
is_private: boolean;
lower_name: string;
member_must_enable_2fa: boolean;
members_count: number;
name: string;
owner?: null | UserDto;
updated_at: string;
/** @nullable */
welcome_message?: string | null;
/** @nullable */
welcome_object?: string | null;
};
export interface PageSpaceDto {
items: PageSpaceDtoItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PageSshKeySummaryItemsItem = {
algorithm: SshKeyAlgorithm;
created_at: string;
/** @nullable */
description?: string | null;
/** @nullable */
expires_at?: string | null;
fingerprint: string;
id: string;
/** @nullable */
last_used_at?: string | null;
name: string;
public_key: string;
/** @nullable */
revoked_at?: string | null;
};
export interface PageSshKeySummary {
items: PageSshKeySummaryItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PageStargazerDtoItemsItem = {
avatar_url: string;
display_name: string;
starred_at: string;
user_id: number;
username: string;
};
export interface PageStargazerDto {
items: PageStargazerDtoItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PageTagDtoItemsItem = {
/** @nullable */
created_at?: string | null;
/** @nullable */
message?: string | null;
name: string;
tag_type: TagType;
/** @nullable */
tagger_email?: string | null;
/** @nullable */
tagger_name?: string | null;
target_sha: string;
};
export interface PageTagDto {
items: PageTagDtoItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PageThreadDtoItemsItem = {
archived: boolean;
created_at: string;
id: string;
/** @nullable */
last_reply_at?: string | null;
/** @nullable */
last_reply_id?: string | null;
locked: boolean;
/** @nullable */
name?: string | null;
owner?: null | UserDto;
owner_id: number;
participant_count: number;
reply_count: number;
room_id: string;
root_message_id: string;
updated_at: string;
};
export interface PageThreadDto {
items: PageThreadDtoItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PageTopicDtoItemsItem = {
created_at: string;
id: string;
name: string;
updated_at: string;
};
export interface PageTopicDto {
items: PageTopicDtoItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PageTopicRepoDtoItemsItem = {
is_private: boolean;
repo_id: string;
repo_name: string;
space_name: string;
};
export interface PageTopicRepoDto {
items: PageTopicRepoDtoItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PageUserReportDtoItemsItem = {
created_at: string;
/** @nullable */
evidence?: string | null;
id: string;
reason: string;
reported_id: number;
/** @nullable */
resolution_note?: string | null;
status: ReportStatus;
updated_at: string;
};
export interface PageUserReportDto {
items: PageUserReportDtoItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PageWatcherDtoItemsItem = {
avatar_url: string;
display_name: string;
mode: WatchMode;
user_id: number;
username: string;
watching_since: string;
};
export interface PageWatcherDto {
items: PageWatcherDtoItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export type PageWebhookDtoItemsItem = {
created_at: string;
disabled: boolean;
id: string;
/** @nullable */
last_used_at?: string | null;
name: string;
room_id: string;
};
export interface PageWebhookDto {
items: PageWebhookDtoItemsItem[];
/** @minimum 0 */
limit: number;
/** @minimum 0 */
offset: number;
/** @minimum 0 */
total: number;
}
export interface ParsedPatchDto {
additions: number;
deletions: number;
files: string[];
}
export interface PasswordResetConfirmRequest {
password_hash: string;
pow_payload: PowProofRequest;
token: string;
}
export interface PasswordResetConfirmResponse {
user_id: number;
}
export interface PasswordResetRequest {
email: string;
pow_payload: PowProofRequest;
}
export interface PasswordResetResponse {
/** @minimum 0 */
expires_in_secs: number;
}
export interface PatchApplyBody {
base: string;
patch: string;
}
export interface PatchDto {
content: string;
size: number;
}
export interface PathLastUpdated {
commit_id: string;
last_updated: number;
object_type: number;
path: string;
}
export interface PathLogEntryDto {
author: string;
date: string;
path: string;
short_sha: string;
subject: string;
}
export interface PermissionCheck {
allowed: boolean;
matched_by: string;
organization_version: number;
reason: string;
}
export interface PinCmd {
pinned: boolean;
}
export interface PinDto {
board_id: string;
created_at: string;
id: string;
/** @nullable */
issue_id?: string | null;
pin_order: number;
}
export interface PinPath {
board_id: string;
pin_id: string;
space_name: string;
}
export interface PresenceDto {
activities: unknown;
/** @nullable */
last_seen_at?: string | null;
online: boolean;
status: PresenceStatus;
user?: null | UserDto;
user_id: number;
}
export interface ProfileDetailDto {
/** @nullable */
accent_color?: string | null;
avatar_url: string;
/** @nullable */
banner_url?: string | null;
/** @nullable */
bio?: string | null;
/** @nullable */
company?: string | null;
display_name: string;
/** @nullable */
location?: string | null;
/** @nullable */
pronouns?: string | null;
/** @nullable */
real_name?: string | null;
/** @nullable */
show_activity?: boolean | null;
/** @nullable */
show_email?: boolean | null;
/** @nullable */
show_location?: boolean | null;
/** @nullable */
show_real_name?: boolean | null;
updated_at: string;
user_id: number;
username: string;
visibility?: null | ProfileVisibility;
/** @nullable */
website?: string | null;
}
export interface PruneResultDto {
reachable: number;
total: number;
unreachable: number;
}
export interface PullAssigneeDto {
created_at: string;
id: string;
user?: null | UserDto;
}
export interface PullChecksDto {
head_sha: string;
statuses: CommitStatusDto[];
}
/**
* 线程视图:顶层评论 + 其下全部回复(无递归,便于文档生成)。
*/
export interface PullCommentThreadDto {
replies: PullCommentDto[];
root: PullCommentDto;
}
export interface PullEventDto {
actor?: null | UserDto;
/** @nullable */
commit_sha?: string | null;
/** @nullable */
content?: string | null;
created_at: string;
event_type: string;
id: string;
pull_request_id: string;
}
export interface PullGateDto {
conflicts: string[];
gate: MergeGateDto;
head_sha: string;
mergeable: boolean;
pending_review_requests: number;
}
export interface PullReviewDto {
/** @minimum 0 */
comment_count: number;
commit_sha: string;
/** @nullable */
content?: string | null;
created_at: string;
id: string;
official: boolean;
pull_request_id: string;
state: ReviewState;
/** @nullable */
updated_at?: string | null;
user?: null | UserDto;
}
export interface PullReviewerDto {
created_at: string;
id: string;
requested_by?: null | UserDto;
required: boolean;
/** @nullable */
review_id?: string | null;
state: ReviewerState;
/** @nullable */
updated_at?: string | null;
user?: null | UserDto;
}
export type PullSort = "number" | "created" | "updated";
/**
* 前端注册 Service Worker 所需的公开参数。
*
* 只有公钥是公开的(它就是浏览器 `applicationServerKey` 要的东西),私钥永远
* 不出现在任何响应里。`enabled=false` 时前端把整个"系统通知"开关藏起来,
* 而不是让用户点了才发现服务端没开。
*/
export interface PushConfigDto {
enabled: boolean;
public_key: string;
}
export interface PushResultDto {
pushed: string[];
rejected: string[];
}
export interface PushSubscriptionDto {
created_at: string;
endpoint: string;
id: string;
platform: PushSubscriptionPlatform;
/** @nullable */
updated_at?: string | null;
/** @nullable */
user_agent?: string | null;
}
export interface RawDownloadDto {
id: string;
is_lfs_pointer: boolean;
size: number;
}
export interface ReactionCmd {
emoji: string;
}
export interface ReactionDto {
created_at: string;
emoji: string;
id: string;
scope: ReactionScope;
target_id: string;
user?: null | UserDto;
}
export interface ReactionPath {
board_id: string;
issue_id: string;
reaction_id: string;
space_name: string;
}
export interface ReactionUserDto {
created_at: string;
emoji: string;
user: UserDto;
}
export interface ReasonBody {
/** @nullable */
reason?: string | null;
}
export interface RecentMentionDto {
channel_id: string;
created_at: string;
id: string;
message_id: string;
}
export interface RecoveryCodesResp {
codes: string[];
/** @minimum 0 */
total: number;
/** @minimum 0 */
used: number;
}
export interface RedeemInviteBody {
token: string;
}
export interface RedeemInviteResponse {
joined: boolean;
member_id: string;
organization_id: string;
}
export interface RegenerateRecoveryCodesCmd {
password: string;
}
export interface RegisterCodeRequest {
email: string;
pow_payload: PowProofRequest;
}
export interface RegisterCodeResponse {
/** @minimum 0 */
expires_in_secs: number;
}
export interface ReleaseDto {
/** @nullable */
content?: string | null;
created_at: string;
id: string;
is_draft: boolean;
is_prerelease: boolean;
num_commits: number;
publisher?: null | UserDto;
publisher_name: string;
repo_id: string;
sha: string;
tag_name: string;
target: string;
title: string;
updated_at: string;
}
export interface ReminderDto {
created_at: string;
id: string;
message_id: string;
/** @nullable */
message_preview?: string | null;
/** @nullable */
note?: string | null;
remind_at: string;
room_id: string;
status: ReminderStatus;
}
export interface RemoteAddBody {
url: string;
}
export interface RemoteAuthDto {
/** @nullable */
token?: string | null;
/** @nullable */
username?: string | null;
}
export interface RemoteDto {
/** @nullable */
fetch_url?: string | null;
name: string;
/** @nullable */
push_url?: string | null;
}
export interface RemoteFetchBody {
auth?: null | RemoteAuthDto;
remote: string;
}
export interface RemoteImportBody {
auth?: null | RemoteAuthDto;
url: string;
}
export interface RemotePushBody {
auth?: null | RemoteAuthDto;
/** @nullable */
refspec?: string | null;
remote: string;
}
export interface RenameBranchCmd {
new_name: string;
}
export interface RepairDirResp {
fixed: number;
scanned: number;
}
export interface RepoDto {
/** 是否允许在本仓库创建合并请求(关闭后页签隐藏、接口拒绝)。 */
allow_pull_requests: boolean;
/** @nullable */
archived_at?: string | null;
/** @nullable */
avatar_url?: string | null;
branches_count: number;
commits_count: number;
created_at: string;
default_branch: string;
/** @nullable */
description?: string | null;
enable_lfs: boolean;
git_size: number;
/** @nullable */
http_clone_url?: string | null;
id: string;
is_archived: boolean;
is_private: boolean;
/** @nullable */
last_pushed_at?: string | null;
lfs_size: number;
/** @nullable */
license_name?: string | null;
me?: null | RepoMeDto;
name: string;
object_format: string;
/** @nullable */
primary_language?: string | null;
pulls_count: number;
size: number;
/** @nullable */
ssh_clone_url?: string | null;
stars_count: number;
/** @nullable */
storage_limit_size?: number | null;
/** 中间页签顺序;空数组 = 默认顺序。 */
tab_order: string[];
tags_count: number;
updated_at: string;
watchers_count: number;
/** @nullable */
website?: string | null;
}
export interface RepoRelDto {
created_at: string;
id: string;
issue_id: string;
repo_id: string;
}
export interface RepoRelPath {
board_id: string;
issue_id: string;
rel_id: string;
space_name: string;
}
export type RepoSort = "created_at" | "updated_at" | "stars" | "name";
export interface RepoStarDto {
created_at: string;
repo_id: string;
user_id: number;
}
export interface RepoStarResp {
stars: number;
}
export interface RepoSummaryDto {
/** @nullable */
avatar_url?: string | null;
default_branch: string;
/** @nullable */
description?: string | null;
id: string;
is_archived: boolean;
is_private: boolean;
/** @nullable */
license_name?: string | null;
name: string;
/** @nullable */
primary_language?: string | null;
size: number;
stars_count: number;
updated_at: string;
watchers_count: number;
}
export interface RepoWatchDto {
created_at: string;
mode: WatchMode;
repo_id: string;
updated_at: string;
user_id: number;
}
export interface ReportDto {
created_at: string;
/** @nullable */
evidence?: string | null;
id: string;
reason: string;
reported_id: number;
status: ReportStatus;
}
export interface RequestReviewersCmd {
/** 是否计入必需审批人数。 */
required?: boolean;
/** 用户名或 UUID。 */
reviewers: string[];
}
export type ReviewIntent =
"approve" | "request_changes" | "comment" | "pending";
export interface RoleSummary {
/** @nullable */
color?: string | null;
created_at: string;
default_role: boolean;
/** @nullable */
description?: string | null;
/** @nullable */
emoji?: string | null;
/** @nullable */
icon_hash?: string | null;
id: string;
key: string;
member_count: number;
name: string;
organization_id: string;
permissions: PermissionGrant[];
position: number;
rank: number;
self_assignable: boolean;
system: boolean;
updated_at: string;
version: number;
}
export interface RoomBriefDto {
created_at: string;
/** @nullable */
dir_id?: string | null;
favorite: boolean;
hidden: boolean;
id: string;
is_private: boolean;
kind: RoomKind;
/** @nullable */
last_message_id?: string | null;
member_count: number;
muted: boolean;
name: string;
nsfw: boolean;
owner?: null | UserDto;
owner_id: number;
/** @nullable */
parent_id?: string | null;
position: number;
/** @nullable */
rate_limit_per_user?: number | null;
/** @nullable */
space_id?: string | null;
/** @nullable */
topic?: string | null;
unread_count: number;
unread_mentions: number;
}
export interface RoomDto {
created_at: string;
/** @nullable */
dir_id?: string | null;
id: string;
is_active: boolean;
is_private: boolean;
kind: RoomKind;
name: string;
nsfw: boolean;
owner_id: number;
/** @nullable */
parent_id?: string | null;
position: number;
/** @nullable */
rate_limit_per_user?: number | null;
/** @nullable */
space_id?: string | null;
/** @nullable */
topic?: string | null;
updated_at: string;
/** @nullable */
user_limit?: number | null;
}
export interface RoomSettingDto {
favorite: boolean;
hidden: boolean;
/** @nullable */
mute_until?: string | null;
muted: boolean;
notification_level: RoomNotificationLevel;
room_id: string;
}
export interface SaveMessageCmd {
channel_id: string;
message_id: string;
}
export interface SavedMessageDto {
channel_id: string;
id: string;
message_id: string;
saved_at: string;
}
export interface ScriptOutputDto {
exit_code: number;
stderr: string;
stdout: string;
}
export interface SendMessageCmd {
attachments?: string[];
content?: string;
/** @nullable */
forwarded_from?: string | null;
/**
* client-generated idempotency key, unique per room; retrying with the
* same nonce returns the original message instead of duplicating
* @nullable
*/
nonce?: string | null;
/** @nullable */
reply_to_id?: string | null;
thread_broadcast?: boolean;
/** @nullable */
thread_id?: string | null;
urgent?: boolean;
}
export interface SessionDto {
/** @nullable */
client_ip_hash?: string | null;
created_at: string;
/** @nullable */
device_id?: string | null;
expires_at: string;
id: string;
is_current: boolean;
is_revoked: boolean;
kind: SessionKind;
last_seen_at: string;
/** @nullable */
revoked_at?: string | null;
/** @nullable */
user_agent_hash?: string | null;
}
export interface SetCleanupVisibilityCmd {
is_private: boolean;
}
export interface SetCommitStatusCmd {
context: string;
/** @nullable */
description?: string | null;
sha: string;
state: CommitStatusDtoState;
/** @nullable */
target_url?: string | null;
}
export interface SetMemberRoleBody {
expected_version?: number;
role: SpaceMemberRole;
}
export interface SetOverwriteCmd {
allow_mask: number;
deny_mask: number;
}
export interface SetPresenceCmd {
activities?: unknown;
status: PresenceStatus;
}
export interface SetRepoArchivedCmd {
archived: boolean;
}
export interface SetRolePermissionsBody {
permissions?: PermissionGrant[];
}
export interface SpaceImageDto {
/** @minimum 0 */
bytes: number;
format: AvatarFormat;
/** @nullable */
height?: number | null;
kind: SpaceImageKind;
space_id: string;
updated_at: string;
url: string;
/** @nullable */
width?: number | null;
}
/**
* Banner geometry is recorded, not inferred: the browser knows the intrinsic
* size for free, the server would have to decode the image to learn it.
*/
export interface SpaceImageUploadQuery {
/** @nullable */
height?: number | null;
/** @nullable */
width?: number | null;
}
export interface SpaceInvitePath {
invite_id: string;
space_name: string;
}
export interface SpaceMemberPath {
member_id: string;
space_name: string;
}
export interface SpacePath {
space_name: string;
}
export interface SpaceReadStates {
items: ReadStateDto[];
}
export interface SpaceRolePath {
role_id: string;
space_name: string;
}
export interface SshKeyAddRequest {
/** @nullable */
description?: string | null;
/** @nullable */
expires_at?: string | null;
name: string;
public_key: string;
}
export interface SshKeySummary {
algorithm: SshKeyAlgorithm;
created_at: string;
/** @nullable */
description?: string | null;
/** @nullable */
expires_at?: string | null;
fingerprint: string;
id: string;
/** @nullable */
last_used_at?: string | null;
name: string;
public_key: string;
/** @nullable */
revoked_at?: string | null;
}
export interface StargazerDto {
avatar_url: string;
display_name: string;
starred_at: string;
user_id: number;
username: string;
}
export interface StopwatchDto {
/** @nullable */
created_at?: string | null;
/** @nullable */
id?: string | null;
issue_id: string;
running: boolean;
/** @nullable */
started_at?: string | null;
user?: null | UserDto;
}
export interface StopwatchPath {
board_id: string;
issue_id: string;
space_name: string;
}
export interface SubmitReviewCmd {
/** @nullable */
body?: string | null;
comments?: InlineDraft[];
state: ReviewIntent;
}
export interface SubmoduleDto {
/** @nullable */
branch?: string | null;
/** @nullable */
commit_sha?: string | null;
path: string;
url: string;
}
export interface SuspensionDto {
created_at: string;
/** @nullable */
ends_at?: string | null;
id: string;
/** @nullable */
reason?: string | null;
/** @nullable */
revoked_at?: string | null;
starts_at: string;
suspension_type: SuspensionType;
}
export interface TagDto {
/** @nullable */
created_at?: string | null;
/** @nullable */
message?: string | null;
name: string;
tag_type: TagType;
/** @nullable */
tagger_email?: string | null;
/** @nullable */
tagger_name?: string | null;
target_sha: string;
}
export interface TagPolicyDto {
created_at: string;
id: string;
name_pattern: string;
repo_id: string;
updated_at: string;
}
export interface TagWhitelistDto {
policy_id: string;
user?: null | UserDto;
user_id: number;
}
export interface ThreadDto {
archived: boolean;
created_at: string;
id: string;
/** @nullable */
last_reply_at?: string | null;
/** @nullable */
last_reply_id?: string | null;
locked: boolean;
/** @nullable */
name?: string | null;
owner?: null | UserDto;
owner_id: number;
participant_count: number;
reply_count: number;
room_id: string;
root_message_id: string;
updated_at: string;
}
export type ThreadNotifyLevel = "None" | "All";
export interface ThreadMemberCmd {
notify_level?: null | ThreadNotifyLevel;
}
export interface TopicDto {
created_at: string;
id: string;
name: string;
updated_at: string;
}
export interface TopicRepoDto {
is_private: boolean;
repo_id: string;
repo_name: string;
space_name: string;
}
export interface TotpCodeCmd {
code: string;
}
export interface TotpEnableCmd {
code: string;
password: string;
}
export interface TotpSetupResp {
otpauth_uri: string;
secret: string;
}
export interface TotpStatusResp {
enabled: boolean;
}
export interface TrackedTimeDto {
created_at: string;
id: string;
issue_id: string;
seconds: number;
user?: null | UserDto;
}
export interface TrackedTimeIdPath {
board_id: string;
issue_id: string;
space_name: string;
time_id: string;
}
export interface TrackedTimePath {
board_id: string;
issue_id: string;
space_name: string;
}
export interface TransferBody {
target_user_id: number;
}
export type TreeView = "entries" | "last_updated";
export interface UnreadCountResp {
/** @minimum 0 */
count: number;
}
/**
* 封禁更新:原因、到期时间与四个放行位。缺失表示不变,null 表示清空。
*/
export interface UpdateBanBody {
/** @nullable */
allow_agent_join?: boolean | null;
/** @nullable */
allow_comment_any?: boolean | null;
/** @nullable */
allow_push_repo?: boolean | null;
/** @nullable */
allow_speak?: boolean | null;
/** @nullable */
expires_at?: string | null;
/** @nullable */
reason?: string | null;
}
export interface UpdateBoardCmd {
/** @nullable */
description?: string | null;
/** @nullable */
icon?: string | null;
/** @nullable */
name?: string | null;
/** @nullable */
prefix?: string | null;
}
export interface UpdateBookmarkCmd {
/** @nullable */
emoji?: string | null;
/** @nullable */
position?: number | null;
/** @nullable */
title?: string | null;
/** @nullable */
url?: string | null;
}
export interface UpdateBranchDto {
pull: PullDto;
result: MergeResultDto;
}
/**
* 分支保护策略的更新请求(三态字段语义与其它 PATCH 一致)。
*/
export interface UpdateBranchPolicyCmd {
/** @nullable */
block_on_change_requested_reviews?: boolean | null;
/** @nullable */
block_on_outdated_branch?: boolean | null;
/** @nullable */
block_on_rejected_reviews?: boolean | null;
/** @nullable */
branch_pattern?: string | null;
/** @nullable */
dismiss_stale_approvals?: boolean | null;
/** @nullable */
enable_approvals_whitelist?: boolean | null;
/** @nullable */
enable_force_push?: boolean | null;
/** @nullable */
enable_merge_whitelist?: boolean | null;
/** @nullable */
enable_push?: boolean | null;
/** @nullable */
enable_push_whitelist?: boolean | null;
/** @nullable */
protected_file_patterns?: string | null;
/** @nullable */
require_signed_commits?: boolean | null;
/** @nullable */
required_approvals?: number | null;
/** @nullable */
required_status_contexts?: string | null;
/** @nullable */
unprotected_file_patterns?: string | null;
}
export interface UpdateCodeCommentCmd {
body: string;
}
export interface UpdateCommentCmd {
content: string;
}
export interface UpdateDirCmd {
name: string;
}
export interface UpdateGroupCmd {
/** @nullable */
color?: string | null;
/** @nullable */
icon_hash?: string | null;
/** @nullable */
name?: string | null;
/** @nullable */
permissions?: string[] | null;
/** @nullable */
position?: number | null;
/** @nullable */
unicode_emoji?: string | null;
}
export interface UpdateIssueCmd {
/** @nullable */
assignee_ids?: number[] | null;
/** @nullable */
content?: string | null;
/** @nullable */
description?: string | null;
/** @nullable */
due_at?: string | null;
/** @nullable */
label_ids?: string[] | null;
/** @nullable */
milestone_id?: string | null;
priority?: null | IssuePriority;
/** @nullable */
title?: string | null;
}
export interface UpdateIssueUserCmd {
/** @nullable */
is_read?: boolean | null;
}
export interface UpdateJoinRuleCmd {
/** @nullable */
enabled?: boolean | null;
/** @nullable */
matcher?: string | null;
}
export interface UpdateLabelCmd {
/** @nullable */
color?: string | null;
/** @nullable */
description?: string | null;
/** @nullable */
exclusive?: boolean | null;
/** @nullable */
exclusive_order?: number | null;
/** @nullable */
is_archived?: boolean | null;
/** @nullable */
name?: string | null;
}
/**
* 会籍更新:管理端可改别名、通知偏好、免打扰与封禁附加信息。
* 所有字段缺失表示不变,显式 null 表示清空(仅限 Option 字段)。
*/
export interface UpdateMemberBody {
/** @nullable */
alias_avatar_url?: string | null;
/** @nullable */
alias_name?: string | null;
expected_version?: number;
/** @nullable */
hide_muted_channels?: boolean | null;
message_notifications?: null | MessageNotifications;
/** @nullable */
mobile_push?: boolean | null;
/** @nullable */
mute_until?: string | null;
/** @nullable */
muted?: boolean | null;
/** @nullable */
suppress_everyone?: boolean | null;
/** @nullable */
suppress_roles?: boolean | null;
}
export interface UpdateMessageCmd {
content: string;
}
export interface UpdateMilestoneCmd {
/** @nullable */
description?: string | null;
/** @nullable */
due_at?: string | null;
/** @nullable */
is_closed?: boolean | null;
/** @nullable */
name?: string | null;
}
export interface UpdateOrganizationBody {
/** @nullable */
allow_invite?: boolean | null;
/** @nullable */
allow_join?: boolean | null;
/** @nullable */
allow_join_level?: number | null;
/** @nullable */
avatar_url?: string | null;
/** @nullable */
description?: string | null;
expected_version?: number;
join_policy?: null | SpaceJoinPolicy;
/** @nullable */
member_must_enable_2fa?: boolean | null;
/** @nullable */
name?: string | null;
/** @nullable */
require_email_verified?: boolean | null;
/** @nullable */
require_mfa?: boolean | null;
/** @nullable */
welcome_message?: string | null;
}
export interface UpdateOutboundWebhookCmd {
/** @nullable */
disabled?: boolean | null;
/** @nullable */
name?: string | null;
/** @nullable */
url?: string | null;
}
export interface UpdatePinCmd {
pin_order: number;
}
export interface UpdatePreferencesCmd {
allow_dms_from?: null | Audience;
allow_mentions_from?: null | Audience;
/** @nullable */
board_view_mode?: string | null;
/** @nullable */
diff_view_style?: string | null;
/** @nullable */
email_digest?: boolean | null;
/** @nullable */
email_flags?: number | null;
/** @nullable */
in_app_flags?: number | null;
/**
* 三态:缺省不动、`null` 清除、给值设置(与 `lib/webapi/src/openapi.rs`
* 声明的 PATCH 语义一致)。
* @nullable
*/
mute_until?: string | null;
/** @nullable */
push_flags?: number | null;
/** @nullable */
show_online_status?: boolean | null;
/** @nullable */
theme_mode?: string | null;
}
export interface UpdateProfileCmd {
/** @nullable */
bio?: string | null;
/** @nullable */
company?: string | null;
/** @nullable */
date_of_birth?: string | null;
/** @nullable */
display_name?: string | null;
/** @nullable */
language?: string | null;
/** @nullable */
locale?: string | null;
/** @nullable */
location?: string | null;
/** @nullable */
pronouns?: string | null;
/** @nullable */
real_name?: string | null;
/** @nullable */
show_activity?: boolean | null;
/** @nullable */
show_email?: boolean | null;
/** @nullable */
show_location?: boolean | null;
/** @nullable */
show_real_name?: boolean | null;
/** @nullable */
timezone?: string | null;
visibility?: null | ProfileVisibility;
/** @nullable */
website?: string | null;
}
export interface UpdatePullCmd {
/** @nullable */
auto_merge?: boolean | null;
/** @nullable */
base_branch?: string | null;
/** @nullable */
body?: string | null;
/** @nullable */
draft?: boolean | null;
/** @nullable */
issue_id?: string | null;
/** @nullable */
title?: string | null;
}
export interface UpdatePullCommentCmd {
body: string;
}
export interface UpdateRefResultDto {
name: string;
new_oid: string;
/** @nullable */
old_oid?: string | null;
protected: boolean;
}
export interface UpdateReleaseCmd {
/** @nullable */
content?: string | null;
/** @nullable */
is_draft?: boolean | null;
/** @nullable */
is_prerelease?: boolean | null;
/** @nullable */
title?: string | null;
}
export interface UpdateReminderCmd {
/** @nullable */
note?: string | null;
/** @nullable */
remind_at?: string | null;
}
export interface UpdateRepoCmd {
/** @nullable */
allow_pull_requests?: boolean | null;
/** @nullable */
default_branch?: string | null;
/** @nullable */
description?: string | null;
/** @nullable */
enable_lfs?: boolean | null;
/** @nullable */
is_private?: boolean | null;
/**
* 中间页签顺序;传空数组恢复默认顺序。
* @nullable
*/
tab_order?: string[] | null;
/** @nullable */
website?: string | null;
}
export interface UpdateRoleBody {
/** @nullable */
default_role?: boolean | null;
/** @nullable */
description?: string | null;
expected_version?: number;
/** @nullable */
name?: string | null;
/** @nullable */
rank?: number | null;
/** @nullable */
self_assignable?: boolean | null;
}
export interface UpdateRoomCmd {
/** @nullable */
is_private?: boolean | null;
/** @nullable */
name?: string | null;
/** @nullable */
nsfw?: boolean | null;
/**
* Move the room under another directory node of the same space; `null` puts
* it back at the space root. Absent means "leave the parent alone".
* @nullable
*/
parent_id?: string | null;
/** @nullable */
position?: number | null;
/** @nullable */
rate_limit_per_user?: number | null;
/** @nullable */
topic?: string | null;
}
export interface UpdateRoomSettingCmd {
/** @nullable */
favorite?: boolean | null;
/** @nullable */
hidden?: boolean | null;
/** @nullable */
mute_minutes?: number | null;
/** @nullable */
muted?: boolean | null;
notification_level?: null | RoomNotificationLevel;
}
export interface UpdateTagPolicyCmd {
/** @nullable */
name_pattern?: string | null;
}
export interface UpdateThreadCmd {
/** @nullable */
archived?: boolean | null;
/** @nullable */
locked?: boolean | null;
/** @nullable */
name?: string | null;
}
export interface UpdateTrackedTimeCmd {
seconds: number;
}
export interface UpdateUsernameCmd {
username: string;
}
export interface UpdateWebhookCmd {
/** @nullable */
disabled?: boolean | null;
/** @nullable */
name?: string | null;
}
export interface UploadEmojiCmd {
animated?: boolean;
content_type: string;
data_base64: string;
name: string;
}
export interface UploadIntentDto {
/** @minimum 0 */
expires_secs: number;
id: string;
upload_url: string;
}
export interface UpsertDraftCmd {
content: string;
/** @nullable */
thread_id?: string | null;
}
export interface UpsertLicenseCmd {
body: string;
/** @nullable */
description?: string | null;
display_name: string;
/** @nullable */
url?: string | null;
}
export interface UpsertMemeCmd {
content_type: string;
/** @nullable */
height?: number | null;
name: string;
size: number;
url: string;
/** @nullable */
width?: number | null;
}
export interface UpsertPushCmd {
auth_key: string;
endpoint: string;
p256dh_key: string;
platform: PushSubscriptionPlatform;
/** @nullable */
user_agent?: string | null;
}
export interface UpsertWatchCmd {
mode: WatchMode;
}
export interface UserLoginRequest {
identity: string;
password_hash: string;
pow_payload: PowProofRequest;
}
export interface UserLoginResponse {
/** @nullable */
challenge?: string | null;
/** @nullable */
displayname?: string | null;
mfa_required: boolean;
user_id: number;
username: string;
}
export interface UserOverwriteDto {
allow_mask: number;
deny_mask: number;
dir_id: string;
user?: null | UserDto;
user_id: number;
}
export interface UserPreferencesDto {
allow_dms_from: Audience;
allow_mentions_from: Audience;
/** Default view for the 问题集 page: `board` or `list`. */
board_view_mode: string;
/** @nullable */
diff_view_style?: string | null;
email_digest: boolean;
email_flags: number;
in_app_flags: number;
/** @nullable */
mute_until?: string | null;
push_flags: number;
show_online_status: boolean;
theme_mode: string;
}
export interface UserPublic {
avatar_url: string;
display_name: string;
user_id: number;
username: string;
}
export interface UserRegisterRequest {
birth_date: string;
/** @nullable */
displayname?: string | null;
email: string;
email_code: string;
password_hash: string;
pow_payload: PowProofRequest;
username: string;
}
export interface UserRegisterResponse {
/** @nullable */
displayname?: string | null;
user_id: number;
username: string;
}
export interface UserReportDto {
created_at: string;
/** @nullable */
evidence?: string | null;
id: string;
reason: string;
reported_id: number;
/** @nullable */
resolution_note?: string | null;
status: ReportStatus;
updated_at: string;
}
export interface VerifyResultDto {
/** @nullable */
error_message?: string | null;
/** @nullable */
key_id?: string | null;
signed: boolean;
/** @nullable */
signer?: string | null;
valid: boolean;
}
export interface VoiceConfigDto {
enabled: boolean;
recording_enabled: boolean;
url: string;
}
export interface VoiceHandsDto {
can_moderate: boolean;
hands: HandDto[];
my_state?: null | HandState;
}
/**
* key 为参与者用户 id。
*/
export type VoiceLayoutDtoTiles = { [key: string]: VoiceTileDto };
export interface VoiceLayoutDto {
/** key 为参与者用户 id。 */
tiles?: VoiceLayoutDtoTiles;
}
/**
* 需要新增或覆盖的窗口(key = 参与者用户 id)。
*/
export type VoiceLayoutPatchDtoTiles = { [key: string]: VoiceTileDto };
/**
* 布局写入是**按 key 合并**的补丁而不是整表替换:每个客户端只提交自己刚拖的
* 那一格,收回的格子里列在 `removed`,两个人同时摆不同窗口互不吞没。
*/
export interface VoiceLayoutPatchDto {
/** 需要收回自动网格的窗口 key。 */
removed?: string[];
/** 需要新增或覆盖的窗口(key = 参与者用户 id)。 */
tiles?: VoiceLayoutPatchDtoTiles;
}
/**
* 本次写入的服务端时刻,客户端用它给本地副本盖戳。
*/
export interface VoiceLayoutSavedDto {
updated_at: number;
}
export interface VoiceModerationDto {
action: string;
ok: boolean;
user_id: number;
}
/**
* 房间参与者快照。
*
* 权威来源是 LiveKit 的 list_participants,Redis 只补主持人静音等本地状态;
* 这是「谁在这个频道里」的服务端视图,用于侧栏人数与未加入时的预览。
* 会中界面的发言高亮、静音图标与画面轨道一律直接读浏览器里的 Room,
* 因为本接口不是事件流,返回值天然是快照。
*/
export interface VoiceParticipantDto {
/** @nullable */
avatar_url?: string | null;
can_publish: boolean;
display_name: string;
joined_at: number;
moderator_muted: boolean;
/**
* 快照值:list_participants 不返回发言状态,因此这里恒为 false;
* 实时发言指示由前端从 Room 的 activeSpeakers 读取。
*/
speaking: boolean;
tracks: VoiceTrackDto[];
user_id: number;
}
export interface VoiceRecordingDto {
active: boolean;
egress_id: string;
}
export interface VoiceSpaceStatesDto {
rooms: VoiceRoomStateDto[];
}
export interface VoiceTokenDto {
can_publish: boolean;
/** @minimum 0 */
expires_in_secs: number;
hand_state?: null | HandState;
is_stage: boolean;
room_name: string;
token: string;
url: string;
}
export interface WatchDto {
created_at: string;
id: string;
/** @nullable */
issue_id?: string | null;
mode: WatchMode;
/** @nullable */
updated_at?: string | null;
user?: null | UserDto;
}
export interface WatchPath {
board_id: string;
issue_id: string;
space_name: string;
}
export interface WatcherDto {
avatar_url: string;
display_name: string;
mode: WatchMode;
user_id: number;
username: string;
watching_since: string;
}
export interface WebhookDto {
created_at: string;
disabled: boolean;
id: string;
/** @nullable */
last_used_at?: string | null;
name: string;
room_id: string;
}
export interface WebhookPostCmd {
content?: string;
/** @nullable */
nonce?: string | null;
/** @nullable */
thread_id?: string | null;
}
export interface WebhookSecretDto {
created_at: string;
disabled: boolean;
id: string;
name: string;
room_id: string;
token: string;
}
export interface WriteBlobBody {
data: string;
}
export interface WriteObjectResultDto {
id: string;
}
export interface WriteTreeBody {
files: FileEntryDto[];
}
export type AuthSshKeyListParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type DownloadAttachmentParams = {
variant?: null | ImageVariant;
};
export type ListDmsParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type ListBookmarksParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type GetDraftParams = {
/**
* @nullable
*/
thread_id?: string | null;
};
export type DeleteDraftParams = {
/**
* thread scope
*/
thread_id?: string;
};
export type ListMessagesParams = {
/**
* @nullable
*/
before_seq?: number | null;
/**
* @nullable
*/
after_seq?: number | null;
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
/**
* @nullable
*/
thread_id?: string | null;
/**
* @nullable
*/
author_id?: number | null;
};
export type ListThreadsParams = {
/**
* @nullable
*/
archived?: boolean | null;
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type ModerateMuteParams = {
/**
* false to unmute
*/
muted?: boolean;
};
export type ListWebhooksParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type ListEmojisParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type ListMyThreadsParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type ListBoardsParams = {
/**
* @nullable
*/
dir_id?: string | null;
/**
* @nullable
*/
q?: string | null;
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type ListIssuesParams = {
state?: null | IssueState;
/**
* @nullable
*/
author_id?: number | null;
/**
* One id or a comma-separated id list (`a,b`); `none` matches issues
* without a milestone. Any of the listed values matches.
* @nullable
*/
milestone_id?: string | null;
/**
* One id or a comma-separated id list (`a,b`); matches any of them.
* @nullable
*/
label_id?: string | null;
/**
* One id or a comma-separated id list (`a,b`); matches any of them.
* @nullable
*/
assignee_id?: string | null;
/**
* One priority or a comma-separated list (`high,urgent`).
* @nullable
*/
priority?: string | null;
sort?: null | IssueSort;
order?: null | SortOrder;
/**
* @nullable
*/
q?: string | null;
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type ListCommentsParams = {
/**
* @nullable
*/
parent_id?: string | null;
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
sort?: null | CommentSort;
order?: null | SortOrder;
};
export type RemoveCommentReactionParams = {
emoji: string;
};
export type ListEventsParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type ListContentHistoryParams = {
/**
* @nullable
*/
comment_id?: string | null;
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type ListIssueMembersParams = {
kind?: null | IssueMemberKind;
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type RemoveIssueReactionParams = {
emoji: string;
};
export type ListTrackedTimeParams = {
/**
* @nullable
*/
user_id?: number | null;
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type ListIssueUsersParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type ListLabelsParams = {
/**
* @nullable
*/
q?: string | null;
/**
* @nullable
*/
is_archived?: boolean | null;
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type ListMilestonesParams = {
/**
* @nullable
*/
is_closed?: boolean | null;
/**
* @nullable
*/
q?: string | null;
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type ListLicensesParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type ListDevicesParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type ListMemesParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
};
export type ListSavedMessagesParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type ListNotificationsParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
type?: null | NotificationType;
/**
* @nullable
*/
unread?: boolean | null;
};
export type ListPushSubscriptionsParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type RecentMentionsParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
};
export type MyReportsParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type ListSessionsParams = {
kind?: null | SessionKind;
/**
* @nullable
*/
include_revoked?: boolean | null;
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type MySpacesParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type MySuspensionsParams = {
/**
* @nullable
*/
include_revoked?: boolean | null;
/**
* @nullable
*/
active?: boolean | null;
};
export type ListMyPullsParams = {
/**
* open | closed | merged | all
* @nullable
*/
state?: string | null;
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type ListReposParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
sort?: null | RepoSort;
order?: null | SortOrder;
};
export type CodeActivityParams = {
/**
* @nullable
*/
branch?: string | null;
};
export type GetArchiveParams = {
/**
* archive format
*/
format: string;
/**
* path filter
*/
path_filter?: string;
};
export type BlameParams = {
revision: string;
path: string;
/**
* @minimum 0
* @nullable
*/
range_start?: number | null;
/**
* @minimum 0
* @nullable
*/
range_end?: number | null;
};
export type ListBranchesParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type DeleteBranchParams = {
/**
* @nullable
*/
force?: boolean | null;
};
export type ListCodeCommentsParams = {
/**
* @nullable
*/
path?: string | null;
/**
* @nullable
*/
revision?: string | null;
/**
* @nullable
*/
resolved?: boolean | null;
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type ListCommitsParams = {
/**
* start revision
*/
revision?: string;
/**
* path filter
*/
path?: string;
/**
* max commits per page (1-100)
* @minimum 0
*/
limit?: number;
/**
* skip commits before returning (max 5000)
* @minimum 0
*/
offset?: number;
/**
* since date
*/
since?: string;
/**
* until date
*/
until?: string;
/**
* first parent only
*/
first_parent: boolean;
};
export type IsAncestorParams = {
ancestor: string;
descendant: string;
};
export type CommitStatsParams = {
revision: string;
/**
* @nullable
*/
path?: string | null;
};
export type GetConflictsParams = {
base: string;
head: string;
/**
* @nullable
*/
ancestor?: string | null;
};
export type ConflictDetailParams = {
base: string;
head: string;
path: string;
};
export type GetDiffParams = {
base: string;
head: string;
view?: DiffView;
use_merge_base?: boolean;
};
export type RangeDiffParams = {
from: string;
to: string;
/**
* @nullable
*/
base?: string | null;
};
export type DiffRawParams = {
base: string;
head: string;
};
export type ListLfsPointersParams = {
revision: string;
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
};
export type ListLocksParams = {
/**
* @nullable
*/
cursor?: string | null;
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
};
export type UnlockParams = {
path: string;
/**
* @nullable
*/
force?: boolean | null;
};
export type VerifyLocksParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
};
export type UnlockByIdParams = {
/**
* @nullable
*/
force?: boolean | null;
};
export type PatchGenerateParams = {
base: string;
head: string;
};
export type PathLogParams = {
commit_hash: string;
target_dir: string;
};
export type ListPullsParams = {
/**
* open | closed | merged | all
* @nullable
*/
state?: string | null;
/**
* @nullable
*/
author?: string | null;
/**
* @nullable
*/
base?: string | null;
/**
* @nullable
*/
head?: string | null;
/**
* @nullable
*/
draft?: boolean | null;
/**
* @nullable
*/
search?: string | null;
sort?: null | PullSort;
order?: null | SortOrder;
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type ListPullCommentsParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type ListPullEventsParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type ListReleasesParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
/**
* 仅返回草稿(true)或仅返回已发布(false);缺省返回全部。
* @nullable
*/
draft?: boolean | null;
};
export type ListStargazersParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type SubmoduleListParams = {
revision: string;
};
export type SubmoduleResolveParams = {
revision: string;
path: string;
};
export type ListTagsParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type GetTreeParams = {
path?: string;
recurse?: boolean;
resolve?: boolean;
show_trees?: boolean;
view?: null | TreeView;
};
export type ListWatchersParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
mode?: null | WatchMode;
};
export type SpaceListParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
/**
* @nullable
*/
include_archived?: boolean | null;
};
export type ExploreSpacesParams = {
/**
* @nullable
*/
q?: string | null;
sort?: null | ExploreSort;
order?: null | SortOrder;
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type SpaceDeleteParams = {
/**
* 是否连成员一并清理
*/
force?: boolean;
/**
* 删除原因,最长 512 字符
*/
reason?: string;
};
export type SpaceBanListParams = {
/**
* 每页条数,默认 20,最多 100
* @minimum 0
*/
limit?: number;
/**
* 跳过条数,最多 5000
* @minimum 0
*/
offset?: number;
};
export type GetSpaceDirTreeParams = {
/**
* @nullable
*/
parent_id?: string | null;
};
export type ListGroupsParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type UploadSpaceImageParams = {
/**
* @nullable
*/
width?: number | null;
/**
* @nullable
*/
height?: number | null;
};
export type GetSpaceImageFileParams = {
variant?: null | ImageVariant;
};
export type SpaceInviteListParams = {
/**
* 每页条数,默认 20,最多 100
* @minimum 0
*/
limit?: number;
/**
* 跳过条数,最多 5000
* @minimum 0
*/
offset?: number;
/**
* 包含已撤销邀请
*/
include_revoked?: boolean;
};
export type ListJoinRequestsParams = {
status?: null | SpaceJoinRequestState;
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type SpaceMemberListParams = {
/**
* 每页条数,默认 20,最多 100
* @minimum 0
*/
limit?: number;
/**
* 跳过条数,最多 5000
* @minimum 0
*/
offset?: number;
/**
* 包含已退出成员
*/
include_inactive?: boolean;
/**
* 包含已封禁成员
*/
include_banned?: boolean;
};
export type SpaceMemberRemoveParams = {
/**
* 移除原因
*/
reason?: string;
};
export type ListTopicsParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type ListReposByTopicParams = {
/**
* @minimum 0
* @nullable
*/
limit?: number | null;
/**
* @minimum 0
* @nullable
*/
offset?: number | null;
};
export type ListUsersBatchParams = {
ids: number[];
};
export type GetUserAvatarParams = {
variant?: null | ImageVariant;
};