GitHub Issues & Labels: complete project management
Issues are the heartbeat of GitHub collaboration. Track bugs, request features, assign tasks, and organize work with labels, milestones, and templates. Learn how to manage projects like a pro.
What are Issues?
Issues are like digital sticky notes for your project. They help you track:
Each issue has a title, description, labels, assignees, and can be linked to milestones and projects.
Go to your repository → click the "Issues" tab → click the green "New issue" button.
Repository URL: https://github.com/username/repo/issues
Fill in:
- Title: Short summary (e.g., "Fix login button not working")
- Description: Detailed explanation, steps to reproduce, expected behavior
## Bug Report
**Steps to reproduce:**
1. Go to login page
2. Enter valid credentials
3. Click "Sign In"
**Expected:** User gets redirected to dashboard
**Actual:** Nothing happens, console error shows 500
Click "Submit new issue". Congratulations, you've created your first issue!
Labels help you categorize issues. GitHub provides default labels, and you can create custom ones.
Default GitHub labels:
Something isn't working
New feature request
Improve documentation
Further information requested
Improve existing feature
Good for beginners
How to add labels:
- On an issue page, click the "Labels" section in the right sidebar
- Select one or more labels from the dropdown
- To create custom labels: go to Issues → Labels → New label
Assign issues to team members to show who is working on it.
- In the right sidebar of any issue, click "Assignees"
- Select one or more people from your team
- The assigned person will get a notification
Milestones help you group related issues and track progress toward a goal (e.g., a software release).
Create a milestone:
- Go to Issues → Milestones → New milestone
- Set title, description, and due date
- Add issues to the milestone from the issue page
"v2.0 Release" – due: June 30, 2026
Contains: 8 open issues (3 bugs, 5 features)
Milestones show progress with a completion percentage bar. Great for sprint planning!
Create templates so users and contributors follow a consistent format when filing issues.
How to create templates:
In your repository, create a folder: .github/ISSUE_TEMPLATE/ and add markdown files.
.github/ISSUE_TEMPLATE/bug_report.md
.github/ISSUE_TEMPLATE/feature_request.md
---
name: Bug report
about: Create a report to help us improve
title: '[BUG] '
labels: bug
assignees: ''
---
**Describe the bug**
**To Reproduce**
**Expected behavior**
**Screenshots**
**Environment (please complete):**
- OS: [e.g. Windows]
- Browser [e.g. chrome, safari]
GitHub has powerful search syntax to filter issues.
is:issue is:openOpen issues
label:bugAll bug issues
assignee:usernameAssigned to someone
milestone:v2.0Specific milestone
author:usernameCreated by someone
sort:updated-descRecently updated
Combine filters: is:issue label:bug assignee:@me milestone:v2.0
When an issue is resolved, close it. If it reappears, you can reopen.
- At the bottom of an issue, click "Close issue" button
- Closed issues are archived but can be reopened anytime
- You can also close issues via commit messages:
Fixes #123in a commit will auto-close issue #123 when merged
git commit -m "Fix login button issue Fixes #42"
Closes #123, Fixes #456, or Resolves #789 in PR descriptions to auto-close issues when merged.✅ Write clear, descriptive titles
✅ Use labels consistently
✅ Always assign someone responsible
✅ Link related issues and PRs
✅ Close issues when resolved
✅ Use templates for consistent reporting
Issues & Labels FAQ
@username in the comment. That person will get a notification. Great for asking questions or assigning tasks.
Closes #123 or Fixes #123. GitHub will automatically link them and close the issue when the PR is merged.
-label:bug to exclude bugs. Example: is:open -label:bug shows all open issues that are not bugs.
:smile: for 😄, or use the emoji picker in the comment toolbar.
Issues are the foundation of great project management. Start tracking your work today!