Skip to main content

Label Configuration

Labels provide visual organization and filtering in GitHub. The connector automatically creates and manages labels based on your configuration.

Label Definitions​

Define labels in the labels section, organized by category:

labels:
hierarchy:
- name: "epic"
color: "0052CC"
description: "High-level initiative"

priorities:
- name: "priority:high"
color: "FF5630"
description: "High priority"

Label Properties​

Each label has three properties:

name​

Type: String (required)
The label text

Format rules:

  • No special characters except - and _
  • Maximum 50 characters
  • Case-sensitive

Naming conventions:

  • Use prefixes for categorization: priority:high, theme:mobile
  • Use kebab-case for multi-word labels: tech-debt, user-facing
  • Be concise and descriptive

color​

Type: String (required)
Hex color code (without #)

Format:

  • 6-character hex code
  • No # prefix
  • Examples: 0052CC, FF5630, 36B37E

Color recommendations:

  • Blues (0052CC, 2684FF) - Hierarchy, neutral categories
  • Reds (DE350B, FF5630) - High priority, critical
  • Oranges (FF8B00, FFAB00) - Medium priority, warnings
  • Greens (36B37E, 00B8D9) - Success, ready states
  • Purples (6554C0, 8777D9) - Epics, large initiatives
  • Grays (97A0AF, C1C7D0) - Low priority, metadata

description​

Type: String (optional)
Human-readable explanation

Guidelines:

  • Explain when to use the label
  • Include time estimates for work items
  • Note any special meaning

Examples:

  • "High-level initiative (2-3 month project)"
  • "Critical priority - immediate action required"
  • "Customer-facing feature"

Label Categories​

Organize labels into logical categories:

Hierarchy Labels​

Indicate issue level in the hierarchy:

labels:
hierarchy:
- name: "epic"
color: "0052CC"
description: "High-level initiative (2-3 month project)"

- name: "story"
color: "2684FF"
description: "Deliverable unit of work (1-2 week effort)"

- name: "task"
color: "4C9AFF"
description: "Implementation task (1-3 day effort)"

Priority Labels​

Indicate urgency and importance:

labels:
priorities:
- name: "priority:critical"
color: "DE350B"
description: "Critical priority - drop everything"

- name: "priority:high"
color: "FF5630"
description: "High priority - schedule soon"

- name: "priority:medium"
color: "FFAB00"
description: "Medium priority - normal schedule"

- name: "priority:low"
color: "97A0AF"
description: "Low priority - nice to have"

Type Labels​

Classify work type:

labels:
types:
- name: "type:feature"
color: "0052CC"
description: "New feature or enhancement"

- name: "type:bug"
color: "DE350B"
description: "Bug fix"

- name: "type:tech-debt"
color: "FF8B00"
description: "Technical debt or refactoring"

- name: "type:documentation"
color: "00B8D9"
description: "Documentation update"

Theme Labels​

Group by strategic theme or product area:

labels:
themes:
- name: "theme:mobile"
color: "6554C0"
description: "Mobile application features"

- name: "theme:web"
color: "8777D9"
description: "Web platform features"

- name: "theme:api"
color: "998DD9"
description: "API and integrations"

Status Labels​

Supplement GitHub's open/closed with workflow stages:

labels:
status:
- name: "status:in-progress"
color: "FFAB00"
description: "Currently being worked on"

- name: "status:blocked"
color: "DE350B"
description: "Blocked by external dependency"

- name: "status:ready-for-review"
color: "00B8D9"
description: "Ready for team review"

Automatic Label Creation​

Labels are automatically created in GitHub when:

  • First sync runs
  • New labels appear in field mappings
  • Label setup command executes

Label Setup Command​

Create labels before syncing:

# Preview what will be created
pnpm run setup-labels --preview

# Create labels in GitHub
pnpm run setup-labels

What it does:

  • Reads label definitions from config
  • Creates missing labels in GitHub
  • Skips labels that already exist
  • Updates descriptions (not colors)
tip

Running setup-labels is optional. Labels are automatically created during sync if they don't exist.

Dynamic Labels from JPD Fields​

Generate labels dynamically from JPD custom fields:

Priority from Select Field​

mappings:
- jpd: "fields.customfield_10001.value" # Priority field
github: "labels"
template: "priority:{{fields.customfield_10001.value | lowercase}}"

Result:

  • JPD value High → GitHub label priority:high
  • JPD value Medium → GitHub label priority:medium

Themes from Multi-Select​

mappings:
- jpd: "fields.customfield_10002" # Themes multi-select
github: "labels"
template: "{{#each fields.customfield_10002}}theme:{{this.value | slugify}} {{/each}}"

Result:

  • JPD values ["Mobile App", "User Experience"]
  • GitHub labels theme:mobile-app, theme:user-experience

Hierarchy from Status​

hierarchy:
enabled: true
epic_statuses:
- "Impact"
story_statuses:
- "Ready for Delivery"

Result:

  • Issues in "Impact" status get epic label
  • Issues in "Ready for Delivery" get story label

See Field Mappings for details on template syntax.

Label Management​

Updating Labels​

To update label descriptions:

  1. Edit config file
  2. Run: pnpm run setup-labels
  3. Descriptions update, colors remain

To update colors:

  1. Manually update in GitHub UI
  2. Or delete label and run setup-labels to recreate

Removing Labels​

From config:

  1. Remove from config
  2. Labels remain in GitHub
  3. Won't be applied to new issues

From GitHub:

# Clear specific labels
pnpm run clear-labels priority:low priority:medium

# Clear all configured labels (careful!)
pnpm run clear-all-labels
warning

clear-all-labels removes ALL labels defined in your config from GitHub. This affects all issues, not just synced ones.

Label Strategies​

Minimalist Strategy​

Just the essentials:

labels:
hierarchy:
- name: "epic"
color: "6554C0"
- name: "story"
color: "0052CC"

priorities:
- name: "priority:high"
color: "DE350B"
- name: "priority:normal"
color: "0052CC"

Pros:

  • Clean, focused
  • Easy to understand
  • Low maintenance

Cons:

  • Less filtering granularity
  • Limited categorization

Comprehensive Strategy​

Full categorization:

labels:
hierarchy:
- name: "epic"
color: "6554C0"
- name: "story"
color: "0052CC"
- name: "task"
color: "4C9AFF"

priorities:
- name: "priority:critical"
color: "DE350B"
- name: "priority:high"
color: "FF5630"
- name: "priority:medium"
color: "FFAB00"
- name: "priority:low"
color: "97A0AF"

types:
- name: "type:feature"
color: "0052CC"
- name: "type:bug"
color: "DE350B"
- name: "type:tech-debt"
color: "FF8B00"

themes:
- name: "theme:mobile"
color: "8777D9"
- name: "theme:web"
color: "998DD9"
- name: "theme:api"
color: "B8ACF6"

Pros:

  • Rich filtering options
  • Clear categorization
  • Detailed tracking

Cons:

  • More labels to manage
  • Can clutter UI
  • Requires discipline

Hybrid Strategy​

Essential categories with selective detail:

labels:
hierarchy:
- name: "epic"
color: "6554C0"
- name: "story"
color: "0052CC"

priorities:
- name: "priority:high"
color: "DE350B"
- name: "priority:normal"
color: "0052CC"
- name: "priority:low"
color: "97A0AF"

themes:
# Only major themes, not every subcategory
- name: "theme:mobile"
color: "8777D9"
- name: "theme:web"
color: "998DD9"

Pros:

  • Balance of detail and simplicity
  • Focus on what matters
  • Easier to maintain

Filtering with Labels​

Use labels for powerful GitHub filtering:

Filter by Priority​

is:issue label:priority:high is:open

Filter by Theme and Level​

is:issue label:theme:mobile label:epic

Complex Filters​

is:issue label:priority:high label:type:bug -label:status:blocked

Save Filters as Views​

In GitHub Projects, create saved views using label filters for quick access to specific issue sets.

Color Schemes​

Atlassian-Inspired​

Match Jira's color scheme:

labels:
hierarchy:
- name: "epic"
color: "6554C0" # Purple
- name: "story"
color: "0052CC" # Blue

priorities:
- name: "priority:highest"
color: "DE350B" # Red
- name: "priority:high"
color: "FF5630" # Orange-red
- name: "priority:medium"
color: "FFAB00" # Orange
- name: "priority:low"
color: "36B37E" # Green

Traffic Light​

Simple priority indication:

labels:
priorities:
- name: "priority:high"
color: "DE350B" # Red - stop and handle
- name: "priority:medium"
color: "FFAB00" # Yellow - proceed with caution
- name: "priority:low"
color: "36B37E" # Green - go when ready

Rainbow Categories​

Visually distinct categories:

labels:
themes:
- name: "theme:mobile"
color: "DE350B" # Red
- name: "theme:web"
color: "FF8B00" # Orange
- name: "theme:api"
color: "FFAB00" # Yellow
- name: "theme:data"
color: "36B37E" # Green
- name: "theme:infra"
color: "00B8D9" # Cyan
- name: "theme:security"
color: "6554C0" # Purple

Complete Example​

labels:
# Hierarchy levels
hierarchy:
- name: "epic"
color: "6554C0"
description: "High-level initiative (2-3 month project)"
- name: "story"
color: "0052CC"
description: "Deliverable unit of work (1-2 week effort)"
- name: "task"
color: "4C9AFF"
description: "Implementation task (1-3 day effort)"

# Priority levels
priorities:
- name: "priority:critical"
color: "DE350B"
description: "Critical priority - immediate action required"
- name: "priority:high"
color: "FF5630"
description: "High priority - schedule in current sprint"
- name: "priority:medium"
color: "FFAB00"
description: "Medium priority - normal scheduling"
- name: "priority:low"
color: "97A0AF"
description: "Low priority - nice to have"

# Work types
types:
- name: "type:feature"
color: "0052CC"
description: "New feature or enhancement"
- name: "type:bug"
color: "DE350B"
description: "Bug fix"
- name: "type:tech-debt"
color: "FF8B00"
description: "Technical debt or refactoring"

# Strategic themes
themes:
- name: "theme:mobile"
color: "8777D9"
description: "Mobile application features"
- name: "theme:web"
color: "998DD9"
description: "Web platform features"

Next Steps​

Label Consistency

Establish a label naming convention early and stick to it. Consistent prefixes (priority:, theme:, type:) make filtering intuitive and powerful.