Skip to content

Domain 3: Collaboration Features (30%) โ€‹

โ† Domain 2 ยท Domain 4 โ†’


Issues โ€‹

Issues are the primary way to track work, bugs, and feature requests in a GitHub repository.

Anatomy of an Issue โ€‹

  • Title โ€” short summary
  • Description โ€” Markdown body; supports task lists, @mentions, #references
  • Labels โ€” categorize the issue (bug, enhancement, help wanted, etc.)
  • Assignees โ€” who's responsible for it
  • Milestone โ€” groups issues toward a goal/release
  • Projects โ€” links to a GitHub Project board

Issue Templates โ€‹

Stored in .github/ISSUE_TEMPLATE/. Templates guide contributors to provide the right information:

.github/
  ISSUE_TEMPLATE/
    bug_report.md
    feature_request.md
    config.yml           โ† controls template chooser

Exam Tip

Issue templates are YAML/Markdown files in .github/ISSUE_TEMPLATE/. config.yml can disable blank issues and add external links to the template chooser.

Labels โ€‹

Labels help filter and categorize issues and PRs. Default labels include: bug ยท documentation ยท duplicate ยท enhancement ยท good first issue ยท help wanted ยท invalid ยท question ยท wontfix

Custom labels can be created at the repo or organization level.

Milestones โ€‹

A milestone groups issues and PRs with a target due date and shows completion progress (%).

  • Issues and PRs can belong to one milestone at a time
  • Closing all linked issues auto-completes the milestone
  • Used to track sprints, versions, or project phases

Pull Requests โ€‹

Pull Requests (PRs) are how changes are proposed, reviewed, and merged into a branch.

PR Lifecycle โ€‹

Feature branch โ†’ open PR โ†’ review โ†’ resolve feedback โ†’ merge โ†’ delete branch

PR Types โ€‹

TypeDescription
Draft PRWork in progress โ€” not ready for review. Cannot be merged until marked ready.
Ready for reviewStandard PR, reviewers are notified
Auto-mergeMerges automatically when all required checks pass

Merge Strategies โ€‹

StrategyWhat it doesUse when
Merge commitKeeps all commits + adds a merge commitFull history preservation
Squash and mergeCombines all commits into oneClean, atomic history
Rebase and mergeReplays commits on top of base branchLinear history, no merge commit

Common Trap

Squash and merge loses individual commit history from the feature branch โ€” all changes appear as one commit. Ideal for feature branches but destructive to detailed history.

PR Reviews โ€‹

Reviewers can:

  • Comment โ€” general feedback, no blocking
  • Approve โ€” signals the PR is ready to merge
  • Request changes โ€” blocks merge until addressed

Branch protection rules can require a minimum number of approvals before merging.

Linking Issues to PRs โ€‹

Use keywords in PR descriptions to auto-close issues on merge:

KeywordEffect
Fixes #42Closes Issue #42 when PR merges to default branch
Closes #42Same as Fixes
Resolves #42Same as Fixes

Exam Tip

The auto-close only happens when the PR merges into the default branch. Merging to a feature branch will NOT close the issue.

PR Templates โ€‹

Stored in .github/PULL_REQUEST_TEMPLATE.md (or in .github/PULL_REQUEST_TEMPLATE/ for multiple). Automatically populates the PR description field.


Code Review โ€‹

CODEOWNERS as Reviewers โ€‹

When a PR modifies files owned by users in CODEOWNERS, those users are automatically requested as reviewers.

Review Assignments โ€‹

Organization admins can configure auto-assignment of reviewers:

  • Round robin โ€” distribute evenly
  • Load balance โ€” assign to least-busy reviewer

Suggested Changes โ€‹

During review, reviewers can suggest specific code changes inline โ€” authors can accept with one click, which commits the suggestion directly.


Discussions โ€‹

Discussions are a forum-style communication channel within a repository โ€” separate from Issues.

FeatureIssuesDiscussions
Best forTrackable bugs and tasksOpen-ended Q&A, ideas, announcements
Can be closedโœ… Yesโœ… Yes (marked answered)
Can be convertedโ†’ Discussionโ†’ Issue
Linked to PRsโœ… YesโŒ No
CategoriesโŒ Noโœ… Yes (Q&A, Announcements, etc.)

Key Point

A Q&A category in Discussions lets a maintainer mark an answer as "accepted." Announcements category is write-restricted to maintainers.


Wikis โ€‹

Wikis provide a space for long-form documentation within a repository:

  • Enabled per-repo in settings
  • Has its own Git repository (cloneable)
  • Supports Markdown
  • Can be made public or restricted to collaborators

Exam Tip

Wikis have their own URL (/wiki) and their own Git repo โ€” you can clone them separately: git clone https://github.com/org/repo.wiki.git


Notifications and Subscriptions โ€‹

Notification Triggers โ€‹

You receive notifications when:

  • You are @mentioned
  • You are assigned to an Issue or PR
  • You watch a repository
  • You subscribe to an individual thread
  • Activity on Issues/PRs you created or commented on

Notification Routing โ€‹

Notifications can go to:

  • GitHub inbox (web)
  • Email
  • Both, or filtered by type

Watching Options โ€‹

Watch LevelNotifications for
Participating and @mentionsOnly direct involvement
All ActivityEvery issue, PR, release, discussion
IgnoreNothing
CustomSpecific event types (releases, issues, PRs, etc.)

Gists โ€‹

Gists are lightweight repositories for sharing single files or code snippets:

  • Public or secret (not truly private โ€” anyone with URL can view)
  • Full Git repo underneath โ€” can be cloned, forked, and commented on
  • Supports Markdown, syntax highlighting, embedding
  • Found at gist.github.com
FeatureGistRepo
Multiple filesLimitedUnlimited
Issues/PRsโŒโœ…
ActionsโŒโœ…
Good forSnippets, one-off sharingFull projects

Domain 3: Collaboration Features

1 / 7
โ“

What is the difference between a Draft PR and a regular PR?

(Click to reveal)
๐Ÿ’ก
A Draft PR signals work in progress โ€” it cannot be merged until marked ready for review. Reviewers are not automatically notified.

โ† Domain 2 ยท Domain 4 โ†’

Happy Studying! ๐Ÿš€ โ€ข Privacy-friendly analytics โ€” no cookies, no personal data
Privacy Policy โ€ข AI Disclaimer โ€ข Report an issue