| name | glab-issue |
| description | Create, view, update, and manage GitLab issues. Use when working with issue tracking, bug reports, feature requests, or task management. Operations include creating issues, listing with filters, viewing details, adding comments/notes, updating labels/assignees/milestones, closing/reopening, and board management. Triggers on issue, bug, task, ticket, feature request, list issues, create issue. |
glab issue
Create, view, update, and manage GitLab issues.
Quick start
glab issue create --title "Fix login bug" --label bug
glab issue list --state opened
glab issue view 123
glab issue view https://gitlab.com/group/project/-/work_items/123
glab issue note https://gitlab.com/group/project/-/issues/123 -m "Working on this now"
glab issue note 123 -m "Working on this now"
glab issue close 123
Common workflows
Issue and work item URL inputs
Issue argument parsing accepts GitLab work item URLs in addition to issue URLs where the glab issue subcommand resolves an issue argument. This is URL compatibility for issue-style operations such as view, note, update, close, and related commands; use glab work-items when you need dedicated work item fields or work-item-specific lifecycle behavior.
glab issue view https://gitlab.com/group/project/-/work_items/123
glab issue note https://gitlab.com/group/project/-/work_items/123 -m "Follow-up note"
glab issue update https://gitlab.com/group/project/-/work_items/123 --label needs-triage
Bug reporting workflow
-
Create bug issue:
glab issue create \
--title "Login fails with 500 error" \
--label bug \
--label priority::high \
--assignee @dev-lead
If your project keeps reusable issue templates in-repo, use --template to start from a template file instead of pasting recurring boilerplate:
glab issue create \
--title "Login fails with 500 error" \
--template .gitlab/issue_templates/bug.md \
--label bug
-
Add reproduction steps:
glab issue note 456 -m "Steps to reproduce:
1. Navigate to /login
2. Enter valid credentials
3. Click submit
Expected: Dashboard loads
Actual: 500 error"
Issue triage
-
List untriaged issues:
glab issue list --label needs-triage --state opened
-
Update labels and assignee:
glab issue update 789 \
--label backend,priority::medium \
--assignee @backend-team \
--milestone "Sprint 23"
-
Remove triage label:
glab issue update 789 --unlabel needs-triage
Batch labeling:
For applying labels to multiple issues at once, use the script bundled with this
skill under scripts/ (paths below are relative to the skill's own directory):
scripts/batch-label-issues.sh "priority::high" 100 101 102
scripts/batch-label-issues.sh bug 200 201 202 203
Sprint planning
View current sprint issues:
glab issue list --milestone "Sprint 23" --assignee @me
Add to sprint:
glab issue update 456 --milestone "Sprint 23"
Board view:
glab issue board view
Linking issues to work
Create MR for issue:
glab mr for 456
Automated workflow (create branch + draft MR):
scripts/create-mr-from-issue.sh 456 --create-mr
This automatically: creates branch from issue title → empty commit → pushes → creates draft MR.
Close via commit/MR:
git commit -m "Fix login bug
Closes #456"
Related Skills
Creating MRs from issues:
- See
glab-mr for merge request operations
- Use
glab mr for <issue-id> to create MR that closes issue
- Script:
scripts/create-mr-from-issue.sh automates branch creation + draft MR
Label management:
- See
glab-label for creating and managing labels
- Script:
scripts/batch-label-issues.sh for bulk labeling operations
Project planning:
- See
glab-milestone for release planning
- See
glab-iteration for sprint/iteration management
Command reference
For complete command documentation and all flags, see references/commands.md.
Available commands:
create - Create new issue
list - List issues with filters
view - Display issue details
note - Add comment to issue
update - Update title, labels, assignees, milestone
close - Close issue
reopen - Reopen closed issue
delete - Delete issue
subscribe / unsubscribe - Manage notifications
board - Work with issue boards