feat(member): add application shortcuts #267

Merged
wbtiger merged 1 commits from wangyue111/gitlink-cli:feat/member-application-shortcuts into master 2026-07-14 20:44:03 +08:00
Contributor

背景

GitLink OpenAPI 提供用户加入 / 退出项目的成员生命周期接口,但 CLI 当前只覆盖仓库管理员侧的成员增删、角色调整和邀请链接,缺少用户侧:

  • 通过项目邀请码申请加入项目
  • 主动退出仓库成员关系

这两个能力适合社区协作、课程 / 科研项目成员流转、Agent 辅助 onboarding/offboarding 场景。

新增功能

1. member +apply

通过邀请码申请加入项目:

gitlink-cli member +apply --code MPzQgH --role developer --dry-run
gitlink-cli member +apply --code MPzQgH --role developer

对齐 OpenAPI:

POST /api/applied_projects.json
body: {"applied_project":{"code":"MPzQgH","role":"developer"}}

参数设计:

  • --code:项目邀请码,必填
  • --role:申请角色,必填,仅允许 manager / developer / reporter
  • --dry-run:预览请求,不提交申请

2. member +quit

退出仓库成员关系:

gitlink-cli member +quit --owner Gitlink --repo forgeplus --dry-run
gitlink-cli member +quit --owner Gitlink --repo forgeplus --yes

对齐 OpenAPI:

POST /api/{owner}/{repo}/quit.json

安全设计:

  • 真实退出必须显式 --yes
  • 支持 --dry-run 预览,不调用线上接口

交付内容

  • 功能代码:shortcuts/member/member.go
  • 单元测试:shortcuts/member/member_test.go
  • README / README.zh-CN 示例更新
  • Skill 文档:skills/gitlink-member/SKILL.md
  • 变更说明:doc/changes/member-application-shortcuts.md

测试

git diff --check
GOPROXY=https://goproxy.cn,direct go test ./shortcuts/member ./shortcuts
go vet ./shortcuts/member ./shortcuts
go run . member +apply --help
go run . member +quit --help
GOPROXY=https://goproxy.cn,direct go test ./...
go vet ./...
## 背景 GitLink OpenAPI 提供用户加入 / 退出项目的成员生命周期接口,但 CLI 当前只覆盖仓库管理员侧的成员增删、角色调整和邀请链接,缺少用户侧: - 通过项目邀请码申请加入项目 - 主动退出仓库成员关系 这两个能力适合社区协作、课程 / 科研项目成员流转、Agent 辅助 onboarding/offboarding 场景。 ## 新增功能 ### 1. `member +apply` 通过邀请码申请加入项目: ```bash gitlink-cli member +apply --code MPzQgH --role developer --dry-run gitlink-cli member +apply --code MPzQgH --role developer ``` 对齐 OpenAPI: ```text POST /api/applied_projects.json body: {"applied_project":{"code":"MPzQgH","role":"developer"}} ``` 参数设计: - `--code`:项目邀请码,必填 - `--role`:申请角色,必填,仅允许 `manager` / `developer` / `reporter` - `--dry-run`:预览请求,不提交申请 ### 2. `member +quit` 退出仓库成员关系: ```bash gitlink-cli member +quit --owner Gitlink --repo forgeplus --dry-run gitlink-cli member +quit --owner Gitlink --repo forgeplus --yes ``` 对齐 OpenAPI: ```text POST /api/{owner}/{repo}/quit.json ``` 安全设计: - 真实退出必须显式 `--yes` - 支持 `--dry-run` 预览,不调用线上接口 ## 交付内容 - 功能代码:`shortcuts/member/member.go` - 单元测试:`shortcuts/member/member_test.go` - README / README.zh-CN 示例更新 - Skill 文档:`skills/gitlink-member/SKILL.md` - 变更说明:`doc/changes/member-application-shortcuts.md` ## 测试 ```bash git diff --check GOPROXY=https://goproxy.cn,direct go test ./shortcuts/member ./shortcuts go vet ./shortcuts/member ./shortcuts go run . member +apply --help go run . member +quit --help GOPROXY=https://goproxy.cn,direct go test ./... go vet ./... ```
wangyue111 force-pushed feat/member-application-shortcuts from 7e0d6cbb2e to 4c23b8f180 2026-06-22 12:30:55 +08:00 Compare
wbtiger merged commit e448f383ee into master 2026-07-14 20:43:48 +08:00
Sign in to join this conversation.
No reviewers
No Label
No Milestone
No project
No Assignees
1 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: Gitlink/gitlink-cli#267
No description provided.