Labelling Issues

Last updated on 2026-07-14 | Edit this page

Overview

Questions

  • How do you make and assign labels to issues?
  • How do labels help you triage and prioritize work?

Objectives

  • Learn how to make, modify, apply, and filter by labels for GitHub issues.

GitHub Labels


Each new GitHub repository comes with a set of default labels that can be assigned to issues, pull requests, or discussions.

From GitHub’s official documentation:

Label Description
bug Indicates an unexpected problem or unintended behavior
documentation Indicates a need for improvements or additions to documentation
duplicate Indicates similar issues, pull requests, or discussions
enhancement Indicates new feature requests
good first issue Indicates a good issue for first-time contributors
help wanted Indicates that a maintainer wants help on an issue or pull request
invalid Indicates that an issue, pull request, or discussion is no longer relevant
question Indicates that an issue, pull request, or discussion needs more information
wontfix Indicates that work won’t continue on an issue, pull request, or discussion

These labels can be viewed from the Issues and Pull Requests pages.

The issue page with the labels option ("Labels - 9") highlighted
The default set of labels, listed in the table above

Several of these labels are aimed towards large, open-source communities with many collaborators. This is not always the case in Research Software Engineering, however, so we will need to modify these.

Modifying Labels


Labels can be added, edited, or deleted from the Labels page. Each label has three attributes: a name, a description, and a color (hex code).

Label attributes - label name, description, color - and the buttons "Cancel" and "Save changes"
Discussion

Tidy Up StarSort’s Labels

The StarSort maintainers want the label set to fit their small research team. In your practice repository’s Labels page:

  • Add a new label for discussion
  • Remove the label for good first issue
  • Change the color of the wontfix label to your favorite color

Using Labels


Now that the labels are created, they can be assigned to issues.

Labels can be applied from the main Issues page or within a single issue.

From the main Issues page, simply checkmark the issue, hit the “Label” dropdown, select your preferred label(s), and click outside of the dropdown.

Display of the "Apply Labels" dropdown from the main Issues page - shows all of the label colors and names

To apply within a single issue, click on the issue to open it. Then you will see the “Labels” option on the right-hand side.

Highlighted Labels section on the right-hand side within a single issue (has been labeled "enhancement")

Click on “Labels”. A dropdown will appear in which you can select or deselect your preferred label(s).

Cog-wheel option selected to reveal the label dropdown within a single issue
Discussion

Triage Time

A new idea came in for StarSort: supporting a new image format. In your practice repository’s issue page:

  • Create a new issue entitled “[YOUR NAME]: support FITS image format”
  • Add the discussion label so the team knows it needs further discussion
Callout

GenAI: Triage assistant

Faced with a backlog of 50 unlabeled issues? An LLM can read an issue’s text and suggest a label (bug, enhancement, question…) or even a priority. It’s a great way to get a first pass — but a human should confirm before the labels drive real decisions, since a mislabeled issue hides in the wrong filter.

Filter by Labels


Another feature of labels within GitHub is the ability to filter issues by them. This is a powerful and useful feature for any project that uses GitHub Issues for tracking, organizing, and prioritizing work.

To filter, navigate to the main Issues page. With no issue selected, click the “Labels” dropdown again. You’ll see that this dropdown now says “Filter by label” rather than “Apply labels.”

Filter by label dropdown on main Issue page - allows you to filter by a single label

Click on a label in the list to filter by it. GitHub will only show issues that have that label applied.

You can select multiple labels or use the hints at the bottom of the “Labels” dropdown to do more advanced filtering, such as exclusion.

Challenge

Filter Like a Pro

Let’s go back to some real research software. Navigate to https://github.com/spack/spack and find the issues page.

  • Filter by the environments label?
  • Filter by both the environments and bug labels?
  • (CHALLENGE) Filter by macOS but exclude bug?

The last one uses the exclusion syntax in the search bar: is:issue is:open label:macOS -label:bug.

You now understand how to make, change, apply, and filter by labels in GitHub Issues.

Key Points
  • Labelling issues can help with organization and filtering.
  • Curate the default label set to fit your project and team size.
  • Filtering (including exclusion, e.g. -label:bug) makes a big backlog manageable.