forked from Gitlink/gitlink-cli
fix(newcomer-skill): 修复 label 命令 Bug,加入状态过滤与幂等去重
This commit is contained in:
parent
bb0ef89450
commit
c2eb3c8f1a
|
|
@ -12,6 +12,7 @@ metadata:
|
|||
|
||||
**CRITICAL — 开始前必须先阅读 [`../gitlink-shared/SKILL.md`](../gitlink-shared/SKILL.md),其中包含认证、权限处理和 API 注意事项。**
|
||||
**CRITICAL — 所有 Shortcuts 在执行写入/删除操作前,务必先确认用户意图。**
|
||||
**CRITICAL — `issue +comment` 是写操作,执行前必须确认用户意图;重复运行通过标记串幂等去重,不会刷屏。**
|
||||
|
||||
## 说明
|
||||
|
||||
|
|
@ -19,23 +20,29 @@ metadata:
|
|||
|
||||
## 依赖的 Shortcuts
|
||||
|
||||
| Shortcut | 用途 |
|
||||
| Shortcut / 命令 | 用途 |
|
||||
|----------|------|
|
||||
| `issue +list` | 获取标记了 good-first-issue 的 Issue |
|
||||
| `issue +list` | 列出 Issue(用返回的 `tags[].name` 检测 good-first-issue) |
|
||||
| `issue +view` | 查看 Issue 详细内容 |
|
||||
| `issue +comment` | 添加引导评论 |
|
||||
| `label +list` | 查看可用标签 |
|
||||
| `issue +comment` | 添加引导评论(写操作,先确认) |
|
||||
| `api GET .../issues/:number/journals` | 读取已有评论,做幂等去重 |
|
||||
| `repo +info` | 获取仓库基本信息 |
|
||||
|
||||
> 说明:`gitlink-cli` 没有 `label` 子命令(实测 `unknown command "label"`)。good-first-issue 直接从 `issue +list` 的 `tags[].name` 字段判断,无需单独列标签。
|
||||
|
||||
## 工作流程
|
||||
|
||||
```
|
||||
1. issue +list → 获取所有打开的 Issue
|
||||
2. 筛选含 good-first-issue 标签的 Issue
|
||||
3. issue +view --number {id} → 查看 Issue 详情
|
||||
4. 分析 Issue 内容 → 判断适合的引导信息
|
||||
5. issue +comment --body "..." → 添加引导评论
|
||||
6. 可选:issue +update → 分配 mentor
|
||||
1. repo +info → 确认 owner/repo、默认分支
|
||||
2. issue +list --state open --format json(必要时 --page 2.. 翻页)
|
||||
3. 客户端按 status_id 过滤:保留 1(新增)、2(正在解决);排除 3(已解决)、5(关闭)
|
||||
—— 抵消 --state open 过滤不准确的已知问题
|
||||
4. 按 tags[].name 匹配入门标签(/good.?first.?issue|新手|入门|help.?wanted|easy|beginner|低难度/i)
|
||||
5. 排除已分配(assigners 非空)的 Issue,除非标签是 help wanted
|
||||
6. issue +view --number <index> → 取 description / comment_journals_count 判断 Issue 类型
|
||||
7. 【去重】api GET /v1/:owner/:repo/issues/<index>/journals --format json
|
||||
→ 扫描已有评论是否含标记串 `gitlink-newcomer-guide:v1`,命中则跳过
|
||||
8. issue +comment --number <index> --body "<模板 + 标记串>" → 写操作,先确认用户意图
|
||||
```
|
||||
|
||||
## 引导评论模板
|
||||
|
|
@ -62,6 +69,8 @@ metadata:
|
|||
- 在开发过程中遇到任何问题,也欢迎随时提问
|
||||
|
||||
祝你编码愉快!
|
||||
|
||||
<!-- gitlink-newcomer-guide:v1 -->
|
||||
```
|
||||
|
||||
### 功能需求类 Issue
|
||||
|
|
@ -85,6 +94,8 @@ metadata:
|
|||
4. 提交 Pull Request,描述你的改动
|
||||
|
||||
如有任何问题,随时留言!
|
||||
|
||||
<!-- gitlink-newcomer-guide:v1 -->
|
||||
```
|
||||
|
||||
### 文档类 Issue
|
||||
|
|
@ -108,25 +119,29 @@ metadata:
|
|||
- 代码块请标注语言类型
|
||||
|
||||
期待你的贡献!
|
||||
|
||||
<!-- gitlink-newcomer-guide:v1 -->
|
||||
```
|
||||
|
||||
## 使用示例
|
||||
|
||||
```bash
|
||||
# 1. 查找所有标记了 good-first-issue 的 Issue
|
||||
# 1. 列出开放 Issue(用返回的 tags[].name 检测 good-first-issue)
|
||||
gitlink-cli issue +list --owner myuser --repo myrepo --state open --format json
|
||||
|
||||
# 2. 查看某个 Issue 的详细内容(判断类型)
|
||||
# 2. 客户端过滤:status_id ∈ {1,2} 且 tags[].name 匹配 good-first-issue,且 assigners 为空
|
||||
|
||||
# 3. 查看 Issue 详情,判断类型
|
||||
gitlink-cli issue +view --owner myuser --repo myrepo --number 10 --format json
|
||||
|
||||
# 3. 查看仓库可用标签
|
||||
gitlink-cli label +list --owner myuser --repo myrepo
|
||||
# 4. 【去重】读取已有评论,检查是否含标记串
|
||||
gitlink-cli api GET /v1/myuser/myrepo/issues/10/journals --format json
|
||||
|
||||
# 4. 添加引导评论
|
||||
gitlink-cli issue +comment --owner myuser --repo myrepo --number 10 --body "你好!欢迎参与贡献..."
|
||||
# 5. 添加引导评论(写操作,先确认;评论末尾含 <!-- gitlink-newcomer-guide:v1 -->)
|
||||
gitlink-cli issue +comment --owner myuser --repo myrepo --number 10 --body "你好!欢迎参与贡献 🎉
|
||||
...(正文)...
|
||||
|
||||
# 5. 可选:将 Issue 标记为已分配
|
||||
gitlink-cli issue +update --owner myuser --repo myrepo --number 10
|
||||
<!-- gitlink-newcomer-guide:v1 -->"
|
||||
```
|
||||
|
||||
## 注意事项
|
||||
|
|
@ -135,3 +150,5 @@ gitlink-cli issue +update --owner myuser --repo myrepo --number 10
|
|||
- 如果 Issue 已经被 Assignee 认领,不需要再添加引导评论。
|
||||
- 不要修改 good-first-issue 标签,由项目维护者管理。
|
||||
- 引导评论建议使用温和、鼓励的语气。
|
||||
- good-first-issue 检测依赖 `issue +list` 返回的 `tags[].name`;`gitlink-cli` 无 `label` 子命令,不要尝试调用任何形如 `gitlink-cli` + `label` 的写法
|
||||
- `--state open` 过滤不准确,必须客户端按 `status_id`(保留 1、2)二次过滤
|
||||
|
|
|
|||
Loading…
Reference in New Issue