关于 gitlab-issue
gitlab-issue 是使用 `glab` CLI 管理 GitLab Issue 的技能,支持查看、创建、更新、讨论和状态变更,适用于项目事项跟踪。
主要功能
- 01列出并查看 Issue
- 02创建和更新 Issue 详情
- 03关闭或重新打开 Issue
- 04添加评论并管理订阅
适用场景
- 01分诊未分配的 Issue
- 02创建详细的缺陷报告
- 03更新负责人、标签或里程碑
- 04评论 Issue 的处理进展
安装
复制下面的命令,在终端中运行。
$
npx skills add https:/ / github.com/ grandcamel/ gitlab-assistant-skills --skill gitlab-issue安装后在 Claude Code 中输入/gitlab-issue确认已加载。
详细介绍
Issue 技能
使用 glab CLI 执行 GitLab 的 Issue 操作。
快速参考
| 操作 | 命令 | 风险 |
|---|---|---|
| 列出 Issue | glab issue list | - |
| 查看 Issue | glab issue view <id> | - |
| 创建 Issue | glab issue create | ⚠️ |
| 更新 Issue | glab issue update <id> | ⚠️ |
| 关闭 Issue | glab issue close <id> | ⚠️ |
| 重新打开 Issue | glab issue reopen <id> | ⚠️ |
| 删除 Issue | glab issue delete <id> | ⚠️⚠️ |
| 添加备注 | glab issue note <id> | ⚠️ |
风险说明:- 安全 | ⚠️ 谨慎 | ⚠️⚠️ 警告 | ⚠️⚠️⚠️ 危险
使用此技能的时机
始终在以下情况下使用:
- 用户想要处理 Issue
- 用户提到“issue”“bug”“task”“ticket”或相关术语
- 用户想要跟踪或管理工作事项
以下情况下绝不要使用:
- 用户想要对 10 个或更多 Issue 执行批量操作(改用 gitlab-bulk)
- 用户只想搜索或筛选 Issue(改用 gitlab-search)
可用命令
列出 Issue
glab issue list [options]
选项:
| 标志 | 说明 |
|---|---|
-a, --assignee=<user> | 按受派人筛选(使用 @me 表示自己) |
--author=<user> | 按作者筛选 |
-l, --label=<labels> | 按逗号分隔的标签筛选 |
-m, --milestone=<milestone> | 按里程碑筛选 |
-s, --state=<state> | 按状态筛选:opened、closed、all(默认:opened) |
-c, --closed | 仅获取已关闭的 Issue |
--all | 获取所有 Issue |
-P, --per-page=<n> | 每页的条目数 |
--confidential | 仅筛选机密 Issue |
--search=<query> | 按标题/描述搜索 Issue |
示例:
# List all open issues
glab issue list
# List issues assigned to you
glab issue list --assignee=@me
# List closed issues
glab issue list --closed
# List issues with specific label
glab issue list --label=bug
# List issues in a milestone
glab issue list --milestone="Release 1.0"
# Search issues
glab issue list --search="login bug"
# Get all issues (paginated)
glab issue list --all
查看 Issue 详情
glab issue view <id> [options]
选项:
| 标志 | 说明 |
|---|---|
-w, --web | 在浏览器中打开 Issue |
-c, --comments | 显示 Issue 评论 |
-s, --system-logs | 显示系统活动 |
示例:
# View issue in terminal
glab issue view 42
# Open issue in browser
glab issue view 42 --web
# View with comments
glab issue view 42 --comments
创建 Issue
glab issue create [options]
选项:
| 标志 | 说明 |
|---|---|
-t, --title=<title> | Issue 标题 |
-d, --description=<desc> | Issue 描述 |
-a, --assignee=<users> | 逗号分隔的受派人 |
-l, --label=<labels> | 逗号分隔的标签 |
-m, --milestone=<milestone> | 里程碑标题 |
--confidential | 创建为机密 Issue |
--weight=<n> | Issue 权重(0-9) |
-w, --web | 创建后在浏览器中打开 |
-y, --yes | 跳过确认提示 |
示例:
# Create issue with title
glab issue create -t "Fix login bug"
# Create issue with full details
glab issue create -t "Add dark mode" -d "Implement dark mode toggle" -l "enhancement,ui"
# Create issue with milestone and assignee
glab issue create -t "Release prep" -m "Release 2.0" -a "@me"
# Create confidential issue
glab issue create -t "Security vulnerability" --confidential
# Create and open in browser
glab issue create -t "New feature" --web
更新 Issue
glab issue update <id> [options]
选项:
| 标志 | 说明 |
|---|---|
-t, --title=<title> | 更新标题 |
-d, --description=<desc> | 更新描述 |
-a, --assignee=<users> | 更新受派人 |
--unassign | 移除所有受派人 |
-l, --label=<labels> | 添加标签 |
--unlabel=<labels> | 移除标签 |
-m, --milestone=<milestone> | 设置里程碑 |
--confidential | 标记为机密 |
--public | 标记为公开 |
--lock-discussion | 锁定讨论 |
--unlock-discussion | 解锁讨论 |
示例:
# Update title
glab issue update 42 -t "Updated title"
# Add labels
glab issue update 42 -l "priority,reviewed"
# Remove labels
glab issue update 42 --unlabel="needs-review"
# Change assignee
glab issue update 42 -a "username"
# Add to milestone
glab issue update 42 -m "Sprint 5"
关闭/重新打开 Issue
# Close issue
glab issue close <id>
# Reopen issue
glab issue reopen <id>
删除 Issue
glab issue delete <id>
**警告:**这会永久删除该 Issue。请谨慎操作。
添加备注/评论
glab issue note <id> -m "<message>"
示例:
# Add comment
glab issue note 42 -m "Working on this now"
# Add closing comment
glab issue note 42 -m "Fixed in !123"
订阅/取消订阅
# Subscribe to issue notifications
glab issue subscribe <id>
# Unsubscribe
glab issue unsubscribe <id>
常见工作流
工作流 1:Issue 分类处理
# 1. List unassigned issues
glab issue list --assignee=""
# 2. View issue details
glab issue view 42
# 3. Assign and label
glab issue update 42 -a "developer" -l "bug,priority"
工作流 2:处理 Issue
# 1. Find assigned issues
glab issue list --assignee=@me
# 2. View details
glab issue view 42
# 3. Create branch and work
git checkout -b fix/issue-42
# 4. Add progress note
glab issue note 42 -m "Started work on this"
# 5. Close when MR is merged
glab issue close 42
工作流 3:快速报告 Bug
# Create issue with all details
glab issue create \
-t "Login fails with special characters" \
-d "Steps to reproduce:
1. Enter username with @ symbol
2. Click login
3. Error: 500
Expected: Login succeeds" \
-l "bug,login"
故障排除
| 问题 | 原因 | 解决方案 |
|---|---|---|
| 身份验证失败 | 令牌无效/已过期 | 运行 glab auth login |
| 未找到 Issue | ID 无效或无权访问 | 使用 glab issue list 验证 ID |
| 权限被拒绝 | 权限不足 | 检查项目权限 |
| 无法关闭 | Issue 已锁定 | 请求维护者解锁 |
相关文档
评论
支持 Markdown