Manage labels at project and group level.
Quick start
# Create project label
glab label create --name bug --color "#FF0000"
# Create group label
glab label create --group my-group --name priority::high --color "#FF6B00"
# List labels
glab label list
# Update label
glab label edit bug --color "#CC0000" --description "Software defects"
Delete label
glab label delete bug
## Decision: Project vs Group Labels?
Where should this label live? ├─ Used across multiple projects in a group │ └─ Group-level: glab label create --group --name └─ Specific to one project └─ Project-level: glab label create --name
**Use group-level labels when:**
- You want consistent labeling across all projects in a group
- Managing organization-wide workflows
- Examples: `priority::high`, `type::bug`, `status::blocked`
- Reduces duplication and ensures consistency
**Use project-level labels when:**
- Label is specific to project workflow
- Team wants control over their own labels
- Examples: `needs-ux-review`, `deploy-to-staging`, `legacy-code`
## Common workflows
### Creating a label taxonomy
**Set up priority labels (group-level):**
```bash
glab label create --group engineering --name "priority::critical" --color "#FF0000"
glab label create --group engineering --name "priority::high" --color "#FF6B00"
glab label create --group engineering --name "priority::medium" --color "#FFA500"
glab label create --group engineering --name "priority::low" --color "#FFFF00"
Set up type labels (group-level):
glab label create --group engineering --name "type::bug" --color "#FF0000"
glab label create --group engineering --name "type::feature" --color "#00FF00"
glab label create --group engineering --name "type::maintenance" --color "#0000FF"
Managing project-specific labels
Create workflow labels:
glab label create --name "needs-review" --color "#428BCA"
glab label create --name "ready-to-merge" --color "#5CB85C"
glab label create --name "blocked" --color "#D9534F"
Bulk operations
List all labels to review:
glab label list --per-page 100 > labels.txt
When GitLab supplies a total in its pagination response, the text header reports that real total label count rather than merely the number returned on the current page. Use --page and --per-page to retrieve additional pages; do not infer that every label is present just because the displayed total is larger than the rows shown.
Delete deprecated labels:
glab label delete old-label-1
glab label delete old-label-2
Related Skills
Using labels:
- See
glab-issuefor applying labels to issues - See
glab-mrfor applying labels to merge requests - Script:
scripts/batch-label-issues.shfor bulk labeling
Structured output
glab label get supports --output json / -F json for structured output, which is useful for agent automation.
# Get a label with JSON output
glab label get <label-id> --output json
glab label get <label-id> -F json
Command reference
For complete command documentation and all flags, see references/commands.md.
Available commands:
create- Create label (project or group)list- List labelsedit- Update label propertiesdelete- Delete labelget- View single label details