feat(shortcuts): add user shortcuts

This commit is contained in:
co63oc 2026-06-16 21:39:24 +08:00
parent 982f2cb336
commit eece6bc53c
5 changed files with 3126 additions and 5 deletions

View File

@ -267,5 +267,105 @@
"success.config.set": "✓ {key} = {value}",
"warning.auth.not_logged_in": "✗ Not logged in",
"warning.auth.token_unverified": "✓ Token stored (but cannot verify: {message})",
"warning.auth.user_unavailable": "✓ Token stored (user info unavailable)"
}
"warning.auth.user_unavailable": "✓ Token stored (user info unavailable)",
"cmd.user.update.short": "Update user profile",
"cmd.user.update.long": "Update user nickname, gender, province, city, description and department.",
"cmd.user.projects.short": "List user projects",
"cmd.user.projects.long": "List projects for a given user with category, sort and search filters.",
"flag.user.nickname": "User nickname",
"flag.user.gender": "User gender (integer)",
"flag.user.province": "User province",
"flag.user.city": "User city",
"flag.user.description": "User bio / description",
"flag.user.custom_department": "User department / organization",
"flag.user.projects_category": "Project category: all/join/created/manage/only_watched/watched/forked",
"flag.user.projects_is_public": "Filter by public visibility",
"flag.user.projects_project_type": "Project type: common/mirror/sync_mirror",
"flag.user.projects_search": "Search keyword",
"cmd.user.current_info.short": "Show current user info (detailed)",
"cmd.user.current_info.long": "Fetch detailed information for the currently authenticated user via /api/users/get_user_info.json.",
"flag.user.projects_start_at": "Start timestamp (only for watched/only_watched/forked categories)",
"flag.user.projects_end_at": "End timestamp (only for watched/only_watched/forked categories)",
"cmd.user.messages_list.short": "List user messages",
"cmd.user.messages_list.long": "List messages for the current user, with optional type and status filters.",
"cmd.user.messages_read.short": "Mark messages as read",
"cmd.user.messages_read.long": "Mark specified messages as read. Use --ids=-1 to mark all unread messages as read.",
"cmd.user.messages_delete.short": "Delete messages",
"cmd.user.messages_delete.long": "Delete specified messages. Use --ids=-1 to delete all messages of the given type.",
"flag.user.messages_type": "Message type: notification or atme (default: all)",
"flag.user.messages_status": "Read status: 1=unread, 2=read (default: all)",
"flag.user.messages_ids": "Comma-separated message IDs (use -1 for all)",
"cmd.user.messages_create.short": "Create a message (@me notification)",
"cmd.user.messages_create.long": "Create a message notification for specified users. Requires --receivers (comma-separated logins), --atmeable-type (Journal/Issue/PullRequest), and --atmeable-id.",
"cmd.user.platform_settings.short": "Get platform message settings",
"cmd.user.platform_settings.long": "Get the platform-wide message setting templates, showing all configurable notification categories.",
"cmd.user.user_settings.short": "Get user message settings",
"cmd.user.user_settings.long": "Get the current user's notification and email settings for all message categories.",
"flag.user.messages_receivers": "Comma-separated receiver login names",
"flag.user.messages_atmeable_type": "AT target type: Journal, Issue, or PullRequest",
"flag.user.messages_atmeable_id": "AT target object ID",
"cmd.user.update_settings.short": "Update user message settings",
"cmd.user.update_settings.long": "Update user notification and email settings, toggling each category on or off.",
"flag.user.settings_notification": "Comma-separated categories to enable for in-app notifications (e.g. CreateOrAssign::IssueAssigned,ManageProject::Issue)",
"flag.user.settings_email": "Comma-separated categories to enable for email notifications",
"flag.user.settings_notification_off": "Comma-separated categories to disable for in-app notifications",
"flag.user.settings_email_off": "Comma-separated categories to disable for email notifications",
"cmd.user.pinned_list.short": "List pinned projects",
"cmd.user.pinned_list.long": "List the user's pinned/starred projects with basic info and sort position.",
"cmd.user.pinned_update.short": "Update pinned projects",
"cmd.user.pinned_update.long": "Batch-set the user's pinned/starred projects by passing a list of project IDs.",
"flag.user.pinned_project_ids": "Comma-separated project IDs to pin",
"cmd.user.pinned_sort.short": "Reorder a pinned project",
"cmd.user.pinned_sort.long": "Adjust the display order of a pinned project. Higher position = higher rank.",
"flag.user.pinned_id": "Pinned project ID",
"flag.user.pinned_position": "Sort position (higher number = higher rank)",
"cmd.user.feedback.short": "Submit feedback",
"cmd.user.feedback.long": "Submit feedback or suggestions to the GitLink platform.",
"flag.user.feedback_content": "Feedback content",
"cmd.user.transfer_list.short": "List project transfer requests",
"cmd.user.transfer_list.long": "List pending project transfer requests for the specified user, with optional pagination.",
"cmd.user.transfer_accept.short": "Accept project transfer",
"cmd.user.transfer_accept.long": "Accept a project transfer request initiated by the specified user.",
"flag.user.transfer_id": "Transfer request ID",
"cmd.user.transfer_refuse.short": "Refuse project transfer",
"cmd.user.transfer_refuse.long": "Refuse a project transfer request initiated by the specified user.",
"cmd.user.send_email_code.short": "Send email verification code",
"cmd.user.send_email_code.long": "Send a verification code to the specified email for email change.",
"flag.user.email_code_type": "Verification code type (10: update email)",
"flag.user.email": "Target email address",
"flag.user.email_md5": "Email MD5 hash value",
"cmd.user.verify_email_code.short": "Verify email code",
"cmd.user.verify_email_code.long": "Verify the email verification code received.",
"flag.user.verify_code": "Verification code",
"cmd.user.check_password.short": "Verify user password",
"cmd.user.check_password.long": "Verify the current user login password is correct.",
"flag.user.password": "User password",
"cmd.user.applied_list.short": "List project applications",
"cmd.user.applied_list.long": "List pending project join applications (paginated).",
"flag.user.applied_page": "Page number",
"flag.user.applied_per_page": "Items per page",
"cmd.user.applied_accept.short": "Accept project application",
"cmd.user.applied_accept.long": "Accept the specified user project join application.",
"flag.user.applied_id": "Application ID",
"cmd.user.applied_refuse.short": "Refuse project application",
"cmd.user.applied_refuse.long": "Refuse the specified user project join application.",
"cmd.user.check_email.short": "Check email availability",
"cmd.user.check_email.long": "Check if the specified email is already in use.",
"cmd.user.update_email.short": "Change email",
"cmd.user.update_email.long": "Change the user bound email (requires password and email verification code).",
"flag.user.email_code": "Email verification code",
"cmd.user.update_phone.short": "Change phone number",
"cmd.user.update_phone.long": "Change the user bound phone number (requires SMS code).",
"flag.user.phone": "Target phone number",
"flag.user.phone_code": "SMS verification code",
"cmd.user.change_password.short": "Change password",
"cmd.user.change_password.long": "Change the current user login password.",
"flag.user.old_password": "Current password",
"flag.user.new_password": "New password",
"flag.user.new_password_repeat": "Confirm new password",
"cmd.user.check_delete.short": "Check if account can be deleted",
"cmd.user.check_delete.long": "Check if the current user meets deletion criteria (no orgs/projects).",
"cmd.user.delete_account.short": "Delete account",
"cmd.user.delete_account.long": "Permanently delete the user account (irreversible). Confirm before executing.",
"flag.user.delete_memo": "Deletion reason"
}

View File

@ -267,5 +267,105 @@
"success.config.set": "✓ 已设置 {key} = {value}",
"warning.auth.not_logged_in": "✗ 未登录",
"warning.auth.token_unverified": "✓ Token 已保存(但无法验证:{message}",
"warning.auth.user_unavailable": "✓ Token 已保存(用户信息不可用)"
}
"warning.auth.user_unavailable": "✓ Token 已保存(用户信息不可用)",
"cmd.user.update.short": "更新用户信息",
"cmd.user.update.long": "更新用户的昵称、性别、省份、城市、简介和单位等扩展信息。",
"cmd.user.projects.short": "列出用户项目",
"cmd.user.projects.long": "列出指定用户的项目列表,支持分类、排序和搜索筛选。",
"flag.user.nickname": "用户昵称",
"flag.user.gender": "用户性别(整数)",
"flag.user.province": "用户所在省份",
"flag.user.city": "用户所在城市",
"flag.user.description": "用户简介",
"flag.user.custom_department": "用户所在单位",
"flag.user.projects_category": "项目分类all/join/created/manage/only_watched/watched/forked",
"flag.user.projects_is_public": "是否为公有项目",
"flag.user.projects_project_type": "项目类型common/mirror/sync_mirror",
"flag.user.projects_search": "搜索关键词",
"cmd.user.current_info.short": "获取当前用户详细信息",
"cmd.user.current_info.long": "通过 /api/users/get_user_info.json 获取当前认证用户的详细资料。",
"flag.user.projects_start_at": "开始时间戳(仅对 watched/only_watched/forked 分类有效)",
"flag.user.projects_end_at": "结束时间戳(仅对 watched/only_watched/forked 分类有效)",
"cmd.user.messages_list.short": "列出用户消息",
"cmd.user.messages_list.long": "列出当前用户的消息,支持按类型和已读状态筛选。",
"cmd.user.messages_read.short": "标记消息为已读",
"cmd.user.messages_read.long": "将指定消息标记为已读。使用 --ids=-1 可将所有未读消息标记为已读。",
"cmd.user.messages_delete.short": "删除消息",
"cmd.user.messages_delete.long": "删除指定消息。使用 --ids=-1 可删除指定类型的所有消息。",
"flag.user.messages_type": "消息类型notification系统消息或 atme@我消息),不传为全部",
"flag.user.messages_status": "已读状态1=未读2=已读(不传为全部)",
"flag.user.messages_ids": "消息ID列表逗号分隔使用 -1 表示全部)",
"cmd.user.messages_create.short": "创建消息(@我通知)",
"cmd.user.messages_create.long": "为指定用户创建@我消息通知。需要 --receivers逗号分隔的用户名、--atmeable-typeJournal/Issue/PullRequest和 --atmeable-id。",
"cmd.user.platform_settings.short": "获取平台消息设置",
"cmd.user.platform_settings.long": "获取平台级别的消息设置模板,展示所有可配置的通知分类。",
"cmd.user.user_settings.short": "获取用户消息设置",
"cmd.user.user_settings.long": "获取当前用户所有消息分类的站内信和邮件设置。",
"flag.user.messages_receivers": "接收消息的用户名列表,逗号分隔",
"flag.user.messages_atmeable_type": "@目标类型Journal评论、Issue疑修、PullRequest合并请求",
"flag.user.messages_atmeable_id": "@目标对象ID",
"cmd.user.update_settings.short": "更新用户消息设置",
"cmd.user.update_settings.long": "更新用户的站内信和邮件通知设置,支持批量设置各分类的开关状态。",
"flag.user.settings_notification": "站内信设置,逗号分隔的分类列表(如 CreateOrAssign::IssueAssigned,ManageProject::Issue设为 true",
"flag.user.settings_email": "邮件设置,逗号分隔的分类列表,设为 true",
"flag.user.settings_notification_off": "站内信设置,逗号分隔的分类列表,设为 false",
"flag.user.settings_email_off": "邮件设置,逗号分隔的分类列表,设为 false",
"cmd.user.pinned_list.short": "列出用户星标项目",
"cmd.user.pinned_list.long": "列出用户精选/星标的项目列表,包含项目基本信息和排序位置。",
"cmd.user.pinned_update.short": "更新用户星标项目",
"cmd.user.pinned_update.long": "批量设置用户的星标/精选项目,传入项目 ID 列表。",
"flag.user.pinned_project_ids": "要设为星标的项目 ID 列表,逗号分隔",
"cmd.user.pinned_sort.short": "调整星标项目排序",
"cmd.user.pinned_sort.long": "调整指定星标项目的显示顺序,数字越大排名越靠前。",
"flag.user.pinned_id": "星标项目 ID",
"flag.user.pinned_position": "排序位置(数字越大越靠前)",
"cmd.user.feedback.short": "提交反馈建议",
"cmd.user.feedback.long": "向 GitLink 平台提交反馈建议或意见。",
"flag.user.feedback_content": "反馈内容",
"cmd.user.transfer_list.short": "列出项目迁移请求",
"cmd.user.transfer_list.long": "列出指定用户的待接受项目迁移请求,支持分页。",
"cmd.user.transfer_accept.short": "接受项目迁移",
"cmd.user.transfer_accept.long": "接受指定用户发起的项目迁移请求。",
"flag.user.transfer_id": "迁移请求 ID",
"cmd.user.transfer_refuse.short": "拒绝项目迁移",
"cmd.user.transfer_refuse.long": "拒绝指定用户发起的项目迁移请求。",
"cmd.user.send_email_code.short": "发送邮箱验证码",
"cmd.user.send_email_code.long": "向指定邮箱发送验证码,用于邮箱变更验证。",
"flag.user.email_code_type": "验证码类型10: 更新邮箱)",
"flag.user.email": "目标邮箱地址",
"flag.user.email_md5": "邮箱 MD5 加密值",
"cmd.user.verify_email_code.short": "验证邮箱验证码",
"cmd.user.verify_email_code.long": "验证用户收到的邮箱验证码是否正确。",
"flag.user.verify_code": "验证码",
"cmd.user.check_password.short": "验证用户密码",
"cmd.user.check_password.long": "验证当前用户的登录密码是否正确。",
"flag.user.password": "用户密码",
"cmd.user.applied_list.short": "列出项目申请",
"cmd.user.applied_list.long": "列出待处理的项目加入申请(分页)。",
"flag.user.applied_page": "页码",
"flag.user.applied_per_page": "每页个数",
"cmd.user.applied_accept.short": "接受项目申请",
"cmd.user.applied_accept.long": "接受指定用户的项目加入申请。",
"flag.user.applied_id": "申请 ID",
"cmd.user.applied_refuse.short": "拒绝项目申请",
"cmd.user.applied_refuse.long": "拒绝指定用户的项目加入申请。",
"cmd.user.check_email.short": "验证邮箱可用性",
"cmd.user.check_email.long": "检查指定邮箱是否已被占用。",
"cmd.user.update_email.short": "更改邮箱",
"cmd.user.update_email.long": "更改用户绑定的邮箱地址(需先验证密码和邮箱验证码)。",
"flag.user.email_code": "邮箱验证码",
"cmd.user.update_phone.short": "更改手机号",
"cmd.user.update_phone.long": "更改用户绑定的手机号(需手机验证码)。",
"flag.user.phone": "目标手机号",
"flag.user.phone_code": "手机验证码",
"cmd.user.change_password.short": "更改密码",
"cmd.user.change_password.long": "修改当前用户的登录密码。",
"flag.user.old_password": "当前密码",
"flag.user.new_password": "新密码",
"flag.user.new_password_repeat": "新密码确认",
"cmd.user.check_delete.short": "检测账号是否可注销",
"cmd.user.check_delete.long": "检测当前用户是否满足注销条件(无组织/项目)。",
"cmd.user.delete_account.short": "注销账号",
"cmd.user.delete_account.long": "永久删除用户账号(不可恢复)。执行前务必二次确认。",
"flag.user.delete_memo": "删除原因"
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
---
name: gitlink-user
version: 1.0.0
description: "用户操作:查看当前用户、用户详情。当用户需要查看 GitLink 用户信息时触发。"
description: "用户操作:查看当前用户、用户详情、关注/取关、更新资料、项目列表、消息设置、星标项目、反馈建议、项目迁移、邮箱验证、密码验证、项目申请、邮箱变更、手机变更、更改密码、注销。当用户需要查看或管理 GitLink 用户信息时触发。"
metadata:
requires:
bins: ["gitlink-cli"]
@ -21,7 +21,36 @@ metadata:
| Shortcut | 说明 | 需要认证 |
|----------|------|----------|
| `user +me` | 当前登录用户 | 是 |
| `user +current-info` | 当前用户详细信息 | 是 |
| `user +info` | 查看用户详情 | 否 |
| `user +update` | 更新用户资料 | 是 |
| `user +projects` | 用户项目列表 | 是 |
| `user +messages-list` | 列出用户消息 | 是 |
| `user +messages-read` | 标记消息为已读 | 是 |
| `user +messages-delete` | 删除消息 | 是 |
| `user +messages-create` | 创建@我消息通知 | 是 |
| `user +platform-settings` | 获取平台消息设置模板 | 是 |
| `user +user-settings` | 获取用户消息设置 | 是 |
| `user +update-settings` | 更新用户消息设置(站内信/邮件) | 是 |
| `user +pinned-list` | 列出用户星标项目 | 是 |
| `user +pinned-update` | 批量更新星标项目 | 是 |
| `user +pinned-sort` | 调整星标项目排序 | 是 |
| `user +feedback` | 提交反馈建议 | 是 |
| `user +transfer-list` | 列出项目迁移请求 | 是 |
| `user +transfer-accept` | 接受项目迁移 | 是 |
| `user +transfer-refuse` | 拒绝项目迁移 | 是 |
| `user +send-email-code` | 发送邮箱验证码 | 是 |
| `user +verify-email-code` | 验证邮箱验证码 | 是 |
| `user +check-password` | 验证用户密码 | 是 |
| `user +applied-list` | 列出项目申请 | 是 |
| `user +applied-accept` | 接受项目申请 | 是 |
| `user +applied-refuse` | 拒绝项目申请 | 是 |
| `user +check-email` | 验证邮箱可用性 | 是 |
| `user +update-email` | 更改邮箱 | 是 |
| `user +update-phone` | 更改手机号 | 是 |
| `user +change-password` | 更改密码 | 是 |
| `user +check-delete` | 检测账号是否可注销 | 是 |
| `user +delete-account` | 注销账号(不可恢复) | 是 |
## 使用示例
@ -29,10 +58,120 @@ metadata:
# 查看当前用户
gitlink-cli user +me
# 获取当前用户详细信息
gitlink-cli user +current-info
# 查看其他用户
gitlink-cli user +info --login zhangsan
# 更新用户资料
gitlink-cli user +update --login yystopf --nickname "新昵称" --gender 0 --province "广东" --city "深圳" --description "个性签名" --custom-department "某单位"
# 列出用户项目
gitlink-cli user +projects --login zhangsan --page 1 --limit 15 --category created
# 搜索用户项目
gitlink-cli user +projects --login zhangsan --search "关键词" --sort-by updated_at --sort-direction desc
# 列出用户消息
gitlink-cli user +messages-list --login alice --type notification --status 1
# 标记消息已读(全部)
gitlink-cli user +messages-read --login alice --type notification --ids -1
# 标记指定消息已读
gitlink-cli user +messages-read --login alice --type atme --ids 101,102,103
# 删除消息
gitlink-cli user +messages-delete --login alice --type atme --ids 201,202
# 创建@我消息通知
gitlink-cli user +messages-create --login alice --receivers bob,carol --atmeable-type Issue --atmeable-id 123
# 获取平台消息设置模板
gitlink-cli user +platform-settings
# 获取用户消息设置
gitlink-cli user +user-settings --login alice
# 更新用户消息设置(开启站内信、关闭邮件)
gitlink-cli user +update-settings --login alice \
--notification "CreateOrAssign::IssueAssigned,ManageProject::Issue" \
--email "Normal::Permission" \
--notification-off "ManageProject::Member" \
--email-off "Normal::Organization"
# 列出用户星标项目
gitlink-cli user +pinned-list --login alice
# 批量更新星标项目
gitlink-cli user +pinned-update --login alice --project-ids 17,23,42
# 调整星标项目排序(数字越大越靠前)
gitlink-cli user +pinned-sort --login alice --pinned-id 5 --position 10
# 提交反馈建议
gitlink-cli user +feedback --login alice --content "希望增加批量操作功能"
# 接受项目迁移
gitlink-cli user +transfer-accept --login alice --transfer-id 42
# 拒绝项目迁移
gitlink-cli user +transfer-refuse --login alice --transfer-id 42
# 发送邮箱验证码(用于更新邮箱)
gitlink-cli user +send-email-code --login alice --code-type 10 --email new@example.com --email-md5 abc123md5hash
# 验证邮箱验证码
gitlink-cli user +verify-email-code --login alice --code-type 10 --email new@example.com --code 123456
# 验证用户密码
gitlink-cli user +check-password --login alice --password mysecretpass
# 列出项目申请(支持分页)
gitlink-cli user +applied-list --login alice --page 1 --per-page 10
# 接受项目申请
gitlink-cli user +applied-accept --login alice --applied-id 7
# 拒绝项目申请
gitlink-cli user +applied-refuse --login alice --applied-id 7
# 检查邮箱是否可用
gitlink-cli user +check-email --login alice --email new@example.com
# 更改邮箱(需先发送验证码)
gitlink-cli user +update-email --login alice --password *** --email new@example.com --code 123456
# 更改手机号(需手机验证码)
gitlink-cli user +update-phone --login alice --phone 13800138000 --code 654321 --password ***
# 更改密码
gitlink-cli user +change-password --login alice --old-password *** --new-password *** --new-password-repeat newpass456
# 检测账号是否可注销
gitlink-cli user +check-delete --login alice
# 注销账号(⚠️ 不可恢复)
gitlink-cli user +delete-account --login alice --password *** --memo "不再使用"
```
## 消息设置分类
更新消息设置(`+update-settings`)时,`--notification` / `--email` / `--notification-off` / `--email-off` 支持以下分类 key
| 分类 Key | 说明 |
|----------|------|
| `CreateOrAssign::IssueAssigned` | 创建或指派给我的疑修 |
| `CreateOrAssign::PullRequestAssigned` | 创建或指派给我的合并请求 |
| `ManageProject::Issue` | 我管理的项目的疑修 |
| `ManageProject::PullRequest` | 我管理的项目的合并请求 |
| `ManageProject::Member` | 我管理的项目的成员变更 |
| `ManageProject::SettingChanged` | 我管理的项目的设置变更 |
| `Normal::Organization` | 组织相关通知 |
| `Normal::Project` | 项目相关通知 |
| `Normal::Permission` | 权限变更通知 |
## Raw API 补充
```bash