feat(member): add repository member shortcuts #46
Loading…
Reference in New Issue
No description provided.
Delete Branch "puygob236/gitlink-cli:feat/member-shortcuts"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
合并请求描述
本次合并请求面向子赛题一“增加和完善 GitLink-CLI 能力”,基于 gitlink-cli 现有 shortcuts 架构新增
memberShortcut 命令组,用于补充仓库成员管理和项目邀请链接相关 CLI 能力。本次改动聚焦仓库成员协作场景,覆盖成员列表查询、成员添加、批量添加、成员移除、角色调整,以及邀请链接获取、查看和接受等操作。批量添加命令提供
--dry-run预览能力,便于维护者在执行写操作前确认目标用户 ID。相关 Issue
暂无关联 Issue。
变更内容
1. 新增 member Shortcut 命令组
新增
member相关 Shortcut 能力,包含以下命令:member +list:列出仓库成员。member +add:通过 GitLink 用户 ID 添加仓库成员。member +batch-add:通过用户 ID 列表或 CSV 文件批量添加仓库成员,支持--dry-run。member +remove:通过 GitLink 用户 ID 移除仓库成员。member +role:修改仓库成员角色。member +invite-link:获取或生成当前项目邀请链接。member +invite-info:查看项目邀请链接信息。member +accept-invite:接受项目邀请链接。2. 补充批量成员添加能力
member +batch-add支持两种输入方式:--user-ids 101,102:从命令行传入逗号分隔的用户 ID。--from members.csv:从 CSV 文件读取用户 ID。CSV 支持
user_id、userid、id列名;无表头时读取第一列。示例:
批量添加支持
--dry-run,用于预览将要添加的用户 ID,不会调用远端写接口。3. 封装 GitLink 成员与邀请链接相关 API
本次新增命令封装了以下 GitLink OpenAPI 接口:
GET /api/{owner}/{repo}/collaborators.jsonPOST /api/{owner}/{repo}/collaborators.jsonDELETE /api/{owner}/{repo}/collaborators/remove.jsonPUT /api/{owner}/{repo}/collaborators/change_role.jsonGET /api/{owner}/{repo}/project_invite_links/current_link.jsonGET /api/{owner}/{repo}/project_invite_links/show_link.jsonPOST /api/{owner}/{repo}/project_invite_links/redirect_link.json4. 增加参数校验与输入规范化
新增成员命令包含以下校验逻辑:
Manager、Developer、Reporter,并支持小写别名。manager、developer、reporter。--apply参数限定为true或false。5. 补充测试
新增
shortcuts/member/member_test.go,覆盖:--dry-run不调用远端写接口。6. 更新说明文档
同步更新以下文档:
README.mdREADME.zh-CN.mdskills/README.mdskills/gitlink-member/SKILL.mddoc/changes/member-shortcut.md文档补充了成员管理命令用途、参数示例、CSV 格式、dry-run 使用方式和邀请链接注意事项。
安全边界
本 PR 新增的
member命令中,部分命令会对远端仓库成员关系产生写操作:member +addmember +batch-addmember +removemember +rolemember +accept-invite为降低误操作风险,本次改动提供了以下约束:
member +batch-add支持--dry-run,可在批量添加前预览目标用户 ID。internal/output。测试结果
已在本地执行:
测试结果均通过。
其中:
go test ./...用于验证本次改动未破坏仓库中其他 Go 包。go run . member --help用于验证member命令组已正确注册。go run . member +batch-add --help用于验证批量添加命令帮助信息。go run . member +invite-link --help用于验证邀请链接命令帮助信息。