Skip to main content
This lesson compares GitHub’s three collaboration spaces—issues, discussions, and pull requests—so you can choose the right tool for each stage of development. Each space serves a distinct purpose in the workflow:
  • Issues track actionable items like bugs, tasks, and feature requests.
  • Discussions host open-ended community conversations, brainstorming, and Q&A.
  • Pull requests propose code changes and provide a structured review and integration process.
Use the sections below to understand purpose, best practices, and expected outcomes for each.
Use Issues to define and track work, Discussions to collect context and community input, and Pull Requests to submit, review, and merge code. Linking these together (discussion → issue → pull request) creates a clear trace of decision-making and implementation.
Issues
  • Purpose: Track specific work items—bugs, tasks, or feature requests.
  • Best uses: Assigning work, prioritizing via labels/milestones, and tracking progress with project boards.
  • Integrations: Assignees, labels, milestones, and references to commits and pull requests.
The image provides a comparison of GitHub features: Issues, Discussions, and Pull Requests, highlighting their primary purposes and best uses for project management, community engagement, and code integration.
Discussions
  • Purpose: Host open-ended conversations such as brainstorming, Q&A, and polls.
  • Best uses: Gathering feedback, developing ideas before formalizing requirements, and maintaining community knowledge.
  • Outcome: A persistent knowledge base or community consensus that can inform issues or future development.
Pull requests
  • Purpose: Propose concrete code or documentation changes and run them through review and CI processes.
  • Best uses: Line-by-line code review, running automated tests, tracking CI/CD status, and merging approved changes into the main branch.
  • Outcome: Reviewed and tested code merged into the repository.
How they differ at a glance
  • Issues: Action-oriented and integrated with project management.
  • Discussions: Community-focused, exploratory, and documentation-friendly.
  • Pull requests: Implementation-focused with review, CI, and merge gates.
Table — Feature comparison Key feature differences
  • Issues integrate with project-tracking features (milestones, assignees, labels).
  • Discussions act as a forum for long-form community engagement (Q&A, polls, brainstorming).
  • Pull requests enforce quality control through peer review, CI statuses, and merge checks.
Successful outcomes
  • Issues: The task or bug is resolved and the issue is closed.
  • Discussions: The conversation becomes a documented resource or leads to a clear decision.
  • Pull requests: The changes pass review and CI, and are merged into the target branch.
Workflow hierarchy (recommended)
  1. Discussions — explore the “why” (ideas, goals, feasibility).
  2. Issues — define the “what” (tasks, acceptance criteria).
  3. Pull requests — deliver the “how” (implementation, review, merge).
References and further reading
The image is a comparison table of GitHub features: Issues, Discussions, and Pull Requests. It outlines their key features, ideal outcomes, and workflow roles.

Watch Video