Lesson 40 of 60 – GitHub Issues
67%

GitHub Issues

GitHub Issues is a feature used to track bugs, feature requests, tasks, questions, and other work related to a repository.

Note: Issues help teams organize project work and communicate about problems or improvements directly inside a repository.

1. What are GitHub Issues?

A GitHub Issue is a discussion or work item created inside a repository.

Issues can be used for:

  • Bug reports
  • Feature requests
  • Tasks
  • Questions
  • Improvements

2. Why Use GitHub Issues?

Issues provide a central place for tracking project-related work.

  • Track bugs
  • Record feature ideas
  • Assign tasks
  • Discuss problems
  • Track progress
  • Organize development work

3. Creating an Issue

To create an issue, open a repository where you have permission to create issues and use the repository's Issues section.

A new issue normally contains:

  • Title
  • Description
  • Labels
  • Assignees
  • Milestones or project information when applicable

4. Issue Title

The issue title should clearly describe the problem, task, or request.

Example:

Login button does not work on mobile

A clear title helps developers understand the issue quickly.

5. Issue Description

The description contains detailed information about the issue.

For a bug report, useful information can include:

  • What happened?
  • What was expected?
  • How can the problem be reproduced?
  • What environment was used?
  • Are there error messages?

6. Example Bug Report

Title:
Login button does not work on mobile

Description:

Steps to reproduce:
1. Open the login page.
2. Enter username and password.
3. Tap the Login button.

Expected:
User should be logged in.

Actual:
Nothing happens after clicking the button.

7. Feature Request

Issues can also be used to request new features.

Title:
Add dark mode to dashboard

Description:
Add a dark mode option to the user dashboard
so users can switch between light and dark themes.

8. Issue Comments

Team members and contributors can use comments to discuss an issue.

Issue:
Dashboard loading slowly

Comment:
I tested this on the latest version.
The problem appears when there are many records.

Comments keep project discussions connected to the relevant issue.

9. Issue Labels

Labels help categorize and organize issues.

Examples include:

  • bug
  • feature
  • documentation
  • enhancement
  • help wanted
  • question

The exact labels available depend on the repository.

10. Using Labels

Labels can make it easier to filter and understand project work.

Bug
Feature
Documentation
Priority
Question

For example, a developer can view issues labeled bug to focus on bug reports.

11. Assigning an Issue

An issue can be assigned to one or more people when the repository settings and permissions allow it.

Assignment helps indicate who is responsible for working on the issue.

Issue
  ↓
Assigned Developer
  ↓
Work
  ↓
Resolution

12. Issue Status

Issues commonly have an open or closed state.

Status Meaning
Open Issue still requires attention or discussion.
Closed Issue has been resolved, completed, or otherwise closed.

13. Closing an Issue

After the work represented by an issue is completed, the issue can be closed.

Closing an issue does not necessarily mean that the issue was fixed by a particular method. The project team can decide when an issue should be closed.

14. Reopening an Issue

A closed issue may be reopened when further work or discussion is needed, depending on repository permissions and settings.

For example, a bug may need to be reopened if the reported problem still exists after a proposed fix.

15. Linking Issues to Pull Requests

Issues can be connected to pull requests so that development work can be associated with the problem or feature being addressed.

For example:

Issue #25
   ↓
Feature Branch
   ↓
Pull Request
   ↓
Code Review
   ↓
Merge

16. Closing Issues with Keywords

GitHub supports certain keywords in commit messages and pull request descriptions that can automatically close linked issues when the relevant pull request is merged.

Example:

Fixes #25

The exact behavior depends on how the issue is linked and how the change is merged.

17. Issue Numbers

Issues normally have unique numbers within a repository.

#1
#2
#3
#25

An issue number makes it easy to refer to a particular issue.

18. Mentioning an Issue

You can refer to an issue using its number:

#25

When used in an appropriate GitHub repository context, the issue reference can become a clickable link.

19. Issue Templates

Repositories can provide issue templates to help contributors submit consistent information.

Common templates include:

  • Bug report
  • Feature request
  • Documentation issue
  • Question

20. Bug Report Template

## Description

Describe the problem.

## Steps to Reproduce

1. Step one
2. Step two
3. Step three

## Expected Behavior

What should happen?

## Actual Behavior

What actually happens?

## Environment

Browser:
Operating System:

21. Issue Search

GitHub provides search and filtering features for finding issues.

You can search based on information such as:

  • Keywords
  • Labels
  • Authors
  • Assignees
  • Status

This is useful in repositories containing many issues.

22. Issue Milestones

Milestones can group issues and pull requests around a larger goal or release.

Milestone: Version 2.0

Issues:
#10 Login improvement
#15 Dashboard update
#20 Report feature

Milestones help teams organize related work.

23. Issue and Project Management

Issues can be used together with GitHub's project management features to organize tasks and development work.

Issue
  ↓
Project Board
  ↓
Task Tracking
  ↓
Development
  ↓
Pull Request

24. Issue Notifications

GitHub can provide notifications for repository activity depending on your notification settings and your relationship to the issue.

Notifications can help contributors keep track of discussions and updates.

25. Good Issue Writing Practices

  • Use a clear title.
  • Explain the problem or requested feature.
  • Provide steps to reproduce bugs.
  • Include relevant error messages.
  • Add screenshots when useful.
  • Use appropriate labels.
  • Avoid unnecessary information.
  • Keep the discussion focused.

26. Common Issue Mistakes

  • Writing unclear titles.
  • Not explaining how to reproduce a bug.
  • Creating duplicate issues without checking existing ones.
  • Providing incomplete information.
  • Using irrelevant labels.
  • Posting sensitive information.
  • Using issues for unrelated conversations.

27. Example Feature Issue

Title:
Add student attendance report

Description:

The application currently shows daily
attendance but does not provide a monthly
attendance report.

Requested feature:
Add a monthly attendance report with
student name, total classes, present days
and attendance percentage.

Expected result:
Admin should be able to select a month
and view the attendance report.

28. Complete Issue Workflow

Create Issue
     ↓
Describe Problem
     ↓
Add Labels
     ↓
Assign Developer
     ↓
Create Branch
     ↓
Make Changes
     ↓
Create Pull Request
     ↓
Review Code
     ↓
Merge Changes
     ↓
Close Issue

29. GitHub Issues Checklist

  • Search for an existing issue first.
  • Write a clear title.
  • Describe the problem or request.
  • Add reproduction steps for bugs.
  • Attach useful screenshots or error information.
  • Use suitable labels.
  • Assign the issue when appropriate.
  • Link related pull requests.
  • Update the issue as work progresses.
  • Close the issue when appropriate.

30. Summary of GitHub Issues

GitHub Issues provide a structured way to track bugs, features, tasks, questions, and other project work.

Issue
  ↓
Discussion
  ↓
Task / Bug / Feature
  ↓
Development
  ↓
Pull Request
  ↓
Review
  ↓
Resolution

Using clear titles, useful descriptions, labels, assignments, and links to development work can make issue tracking easier for teams and open-source contributors.

📌 Key Points

  • GitHub Issues are used to track project work.
  • Issues can represent bugs, features, tasks, questions, or improvements.
  • A good issue should have a clear title and useful description.
  • Labels help categorize issues.
  • Issues can be assigned to contributors when appropriate.
  • Issues can be open or closed.
  • Issue numbers make individual issues easy to reference.
  • Issues can be connected to pull requests and development work.
  • Issue templates can help contributors provide consistent information.
  • Milestones can group issues around a larger goal or release.
  • Searching existing issues can help prevent duplicate reports.
  • Never publish passwords, tokens, or other sensitive information in an issue.

🧠 Quick Quiz

Question: What is the main purpose of GitHub Issues?