Lesson 41 of 60 – GitHub Discussions
68%

GitHub Discussions

GitHub Discussions is a collaboration feature that allows people to have conversations around a repository or project. It is useful for questions, ideas, announcements, polls, and community conversations that do not necessarily need to be tracked as issues.

Note: GitHub Discussions and GitHub Issues serve different purposes. Discussions are generally focused on open-ended conversation and community interaction, while Issues are commonly used to track actionable work such as bugs and tasks.

1. What are GitHub Discussions?

GitHub Discussions provides a space for community members, contributors, and maintainers to communicate about a project.

Repository
    ↓
GitHub Discussions
    ↓
Questions + Ideas + Conversations + Announcements

2. Why Use GitHub Discussions?

Discussions are useful when a conversation does not fit naturally into a bug report or specific development task.

  • Ask questions
  • Share ideas
  • Discuss project direction
  • Make announcements
  • Collect community feedback
  • Build a project community

3. Discussions vs Issues

Discussions Issues
Designed for conversations Designed for tracking work
Useful for questions and ideas Useful for bugs and tasks
Community-focused communication Action-oriented project tracking

4. Questions in Discussions

A discussion can be used when someone needs help understanding a project or wants to ask the community a question.

Title:
How can I configure the project locally?

Question:
What PHP version is required to run this project?

5. Sharing Ideas

Discussions can be used to propose ideas before they become formal development tasks.

Title:
Idea: Add a dark mode

Description:
Would a dark mode be useful for the dashboard?

Community members can discuss the idea before a development decision is made.

6. Announcements

Project maintainers can use discussions for announcements and important community information.

Examples include:

  • New project versions
  • Community updates
  • Upcoming events
  • Major project changes

7. Discussion Categories

Repositories that enable Discussions can organize conversations into categories.

Typical categories may include:

  • General
  • Ideas
  • Q&A
  • Announcements
  • Show and tell

The available categories depend on the repository configuration.

8. General Discussions

A General category can be used for conversations that do not fit into another specific category.

Category: General

Topic:
What are you building with this project?

9. Q&A Discussions

A Q&A category can be used for questions and answers about a project.

Question:
How do I install the project?

Answer:
Clone the repository and follow
the installation instructions.

10. Idea Discussions

Idea discussions can be used to explore possible improvements or future features.

Category: Ideas

Idea:
Add an export-to-PDF feature to reports.

The community can discuss possible approaches and use cases.

11. Show and Tell

A Show and Tell category can be used by contributors to share projects, experiments, integrations, or other work related to the community.

Title:
My first project using this framework

Description:
I created a small student management application.

12. Creating a Discussion

When Discussions are enabled for a repository, an authorized user can create a new discussion from the repository's Discussions area.

A discussion normally includes:

  • Category
  • Title
  • Body

13. Discussion Title

A discussion title should clearly describe the topic.

Example:

How should I configure the database?

A descriptive title makes it easier for community members to understand the discussion.

14. Discussion Body

The discussion body contains the question, idea, announcement, or other information you want to share.

## Question

I have installed the project locally.

## Problem

The database connection is not working.

## Environment

PHP 8
MySQL 8

15. Discussion Comments

Community members can reply to a discussion and continue the conversation.

Discussion
     ↓
Question
     ↓
Reply
     ↓
Additional Reply
     ↓
Solution / Conversation

16. Marking an Answer

In Q&A-style discussions, a helpful response can be marked as the answer when the repository's discussion features and permissions support it.

This helps other visitors identify a response that addresses the question.

17. Discussion Reactions

GitHub discussions can support reactions that allow community members to respond to content without writing a full comment.

Reactions can help indicate agreement, appreciation, or other responses supported by the platform.

18. Discussion Polls

Discussion polls can be used to gather community opinions about a question or proposal when the feature is available in the repository's discussion setup.

Question:
Which feature should be developed next?

Option A: Dark Mode
Option B: PDF Export
Option C: Mobile App

19. Discussion Labels

Discussions can use labels when the repository configuration supports them.

Labels can help organize conversations by topic or purpose.

question
idea
feedback
announcement

20. Linking Discussions and Issues

A discussion may lead to actionable work that is better tracked as an issue.

Discussion
    ↓
Community Conversation
    ↓
Feature Decision
    ↓
GitHub Issue
    ↓
Development
    ↓
Pull Request

This separates open-ended discussion from specific development work.

21. Discussions and Pull Requests

A discussion can provide context for a future implementation, while a pull request is used to propose actual code changes.

Discussion
    ↓
Idea / Question
    ↓
Implementation
    ↓
Pull Request
    ↓
Code Review

22. Discussions for Open Source

Open-source projects can use Discussions to communicate with contributors and users.

  • Answer common questions
  • Discuss proposed features
  • Collect feedback
  • Share project updates
  • Help new contributors

23. Discussions for Learning

Learning communities can use discussions to ask questions and share knowledge.

Question:
How does git rebase work?

Reply:
Rebase moves or reapplies commits
on top of another base commit.

24. Good Discussion Practices

  • Choose an appropriate category.
  • Write a clear title.
  • Explain the topic completely.
  • Search existing discussions first.
  • Stay on topic.
  • Be respectful to other participants.
  • Share useful technical information.
  • Move actionable work to issues when appropriate.

25. Common Discussion Mistakes

  • Creating duplicate discussions.
  • Using an unrelated category.
  • Writing unclear titles.
  • Posting incomplete questions.
  • Sharing sensitive information.
  • Using discussions for every small task.
  • Posting unrelated content.

26. Example Q&A Discussion

Category: Q&A

Title:
How can I run this project locally?

Question:
I cloned the repository and installed
the dependencies. What command should
I use to start the application?

Answer:
Check the README installation section
for the required startup command.

27. Example Idea Discussion

Category: Ideas

Title:
Add a student attendance dashboard

Idea:
A dashboard showing attendance percentage,
absent days and monthly attendance could
help administrators.

Discussion:
What information should the dashboard
display?

28. Complete Discussion Workflow

Create Discussion
       ↓
Choose Category
       ↓
Write Title
       ↓
Explain Topic
       ↓
Community Replies
       ↓
Discussion / Feedback
       ↓
Decision
       ↓
Issue or Pull Request
       ↓
Development

29. GitHub Discussions Checklist

  • Check whether Discussions are enabled.
  • Search existing discussions before creating a new one.
  • Choose the correct category.
  • Write a descriptive title.
  • Explain your question or idea clearly.
  • Add relevant examples or screenshots when useful.
  • Respond constructively to replies.
  • Use an issue when the topic becomes actionable project work.
  • Keep sensitive information private.

30. Summary of GitHub Discussions

GitHub Discussions provides a place for community conversations, questions, ideas, announcements, feedback, and other topics related to a repository.

GitHub Discussions
        ↓
Questions
Ideas
Announcements
Feedback
Community
        ↓
Decision
        ↓
Issue / Pull Request
        ↓
Development

Using discussions for conversation and issues for actionable work can help keep project communication organized.

📌 Key Points

  • GitHub Discussions provide a space for repository conversations.
  • Discussions can be used for questions, ideas, announcements, and feedback.
  • Discussions and Issues serve different purposes.
  • Issues are commonly used for actionable tasks and bugs.
  • Discussions can have categories such as Q&A, Ideas, and General.
  • Community members can reply to discussions.
  • Q&A discussions can identify helpful answers.
  • Discussions can support reactions and other community interaction features.
  • Polls can be used to collect community responses when available.
  • A discussion can lead to an Issue or Pull Request when work becomes actionable.
  • Good discussions use clear titles and detailed descriptions.
  • Never share passwords, API keys, tokens, or other sensitive information.

🧠 Quick Quiz

Question: What is the main purpose of GitHub Discussions?