Skip to content

Labels categorize issues. Milestones group issues into releases or sprints. Together they provide powerful filtering and progress tracking.

Labels

Creating Labels

Via Web UI

  1. Go to IssuesLabelsNew Label
  2. Configure:
    • Name: Short identifier (e.g., bug, feature)
    • Description: What it means
    • Color: Hex color code
  3. Click Create

Via API

bash
curl -X POST /api/v1/repos/org/repo/labels \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
    "name": "security",
    "description": "Security-related issues",
    "color": "d73a4a"
  }'

Default Labels

Kizuna creates common labels automatically:

LabelColorUse
bug#d73a4aSomething is broken
feature#a2eeefNew functionality
documentation#0075caDocs improvement
good first issue#7057ffFor newcomers
help wanted#008672Community contribution
duplicate#cfd3d7Already reported
invalid#e4e669Not an issue

Label Categories

Use prefixes for organization:

priority-critical
priority-high
priority-medium
priority-low

type-bug
type-feature
type-task
type-docs

area-auth
area-api
area-ui
area-db

Applying Labels

bash
# Add labels
curl -X POST /api/v1/repos/org/repo/issues/42/labels \
  -d '{"labels": ["bug", "priority-high"]}'

# Remove label
curl -X DELETE /api/v1/repos/org/repo/issues/42/labels/bug

# Set labels (replaces all)
curl -X PUT /api/v1/repos/org/repo/issues/42/labels \
  -d '{"labels": ["feature"]}'

Milestones

Creating Milestones

Via Web UI

  1. Go to IssuesMilestonesNew Milestone
  2. Configure:
    • Title: Sprint or release name
    • Description: Goals, scope
    • Due Date: When it should complete
  3. Click Create

Via API

bash
curl -X POST /api/v1/repos/org/repo/milestones \
  -H "Authorization: Bearer $TOKEN" \
  -d '{
    "title": "v1.0.0 Release",
    "description": "First stable release",
    "due_on": "2026-04-01T00:00:00Z"
  }'

Milestone Progress

View progress in milestone page:

v1.0.0 Release — Due April 1, 2026
━━━━━━━━━░ 85% complete

Open: 3 | Closed: 17 | Total: 20

Assigning Issues to Milestones

bash
curl -X PATCH /api/v1/repos/org/repo/issues/42 \
  -d '{"milestone": 1}'

Or via web UI:

  1. Open issue
  2. Select milestone in sidebar

Filtering

By Label

bash
# Issues with bug label
curl /api/v1/repos/org/repo/issues?labels=bug

# Issues with ANY of these labels
curl /api/v1/repos/org/repo/issues?labels=bug,security

# Issues with ALL labels (when supported)
curl /api/v1/repos/org/repo/issues?labels=bug&labels=priority-high

By Milestone

bash
# Issues in milestone
curl /api/v1/repos/org/repo/issues?milestone=v1.0.0

# Issues without milestone
curl /api/v1/repos/org/repo/issues?milestone=none

Combined

bash
# Critical bugs in v1.0.0
curl /api/v1/repos/org/repo/issues?labels=bug,priority-critical&milestone=v1.0.0

Best Practices

Labels

  1. Consistent naming — Use prefixes for categories
  2. Clear descriptions — Help team understand meaning
  3. Not too many — 10-15 labels max usually
  4. Color coding — Visual distinction (red = urgent)
  5. Regular cleanup — Remove unused labels

Milestones

  1. Time-boxed — 1-4 weeks typical for sprints
  2. Achievable scope — Don't overcommit
  3. Clear goals — What defines success?
  4. Regular review — Progress check-ins
  5. Close when done — Archive completed milestones

Automation

Auto-Labeling

Configure rules in .kizuna/workflows/labeler.yml:

yaml
name: Labeler
on:
  issues:
    types: [opened]

jobs:
  label:
    runs-on: ubuntu-latest
    steps:
      - uses: kizuna/labeler-action@v1
        with:
          config: |
            bug:
              - '(?i)bug|error|broken|fail'
            feature:
              - '(?i)feature|enhancement|add'

Milestone Automation

Auto-assign based on issue content or templates.

Summary

Labels and milestones provide:

  • Categorization — Organize by type, priority, area
  • Progress tracking — See milestone completion
  • Filtering — Find relevant issues quickly
  • Reporting — Metrics by label/milestone

They're essential for managing issue volume at scale.