Collaborate Using GitHub Study Guide — GH-900

13% of the exam · domain 3 of 7 · GitHub Foundations · Free Collaborate Using GitHub practice questions

0 of 57 topics covered
What the exam asks here — tap to tick off0 / 9 covered
Domain 3 of 7

Collaboration Features — Issues, PRs, Discussions

This domain covers GitHub's core collaboration toolset: Issues, Pull Requests, Discussions, GitHub Projects, code review mechanics, branch protection, and automation through CODEOWNERS and cross-references. It constitutes 25% of the GitHub Foundations exam, making it the single largest domain. Questions test precise knowledge of feature names, configuration options, behavioral defaults, and when to use one tool over another.


Issues: Creating, Labels, Milestones, Assignees, Closing with Keywords

Issues are the primary unit of work tracking on GitHub. Any repository member (or external contributor with appropriate permissions) can open an issue.

Core Issue Components

ComponentDetails
LabelsColor-coded tags; up to 100 labels per repository; default set includes bug, enhancement, good first issue, help wanted, invalid, question, wontfix; custom labels can be created
MilestonesGroup issues and PRs toward a goal; show progress as a percentage of closed items; have an optional due date; a single issue can belong to only one milestone
AssigneesUp to 10 assignees per issue; must be repository collaborators or organization members
ProjectsIssues can be added to one or more GitHub Projects (v2)

Closing Issues with Keywords

When a commit message, PR description, or comment contains a closing keyword followed by an issue reference, GitHub automatically closes the issue when the PR merges into the default branch.

Accepted closing keywords: close, closes, closed, fix, fixes, fixed, resolve, resolves, resolved

Syntax examples:

  • Fixes #42
  • Closes org/repo#17
  • Resolves https://github.com/owner/repo/issues/5

Common traps

  • Closing keywords in a PR comment do not close the issue when the comment is posted — they close it when the PR merges.
  • Closing keywords only auto-close issues when the PR targets the default branch. Merging into a feature branch does NOT close the issue.
  • Fixed and fix both work — keywords are case-insensitive.
  • You can reference an issue without closing it using #42 alone (no keyword).

Issue Templates and Forms: YAML-Based Forms, Required Fields

GitHub supports two types of issue templates stored in .github/ISSUE_TEMPLATE/:

TypeFile FormatFeatures
Markdown templates (legacy).mdPre-fills the issue body; no enforcement
Issue forms (modern).ymlStructured fields; can mark fields as required; renders validated UI

Issue Form Structure (YAML)

Key top-level keys in an issue form file:

name: Bug Report
description: File a bug report
title: "[Bug]: "
labels: ["bug"]
assignees: ["octocat"]
body:
  - type: input
    id: title
    attributes:
      label: Short description
    validations:
      required: true
  - type: dropdown
  - type: textarea
  - type: checkboxes

Field types: input, textarea, dropdown, checkboxes, markdown (display-only)

required: true under validations prevents form submission if the field is empty. The markdown type cannot be marked required (it is display-only).

A special file .github/ISSUE_TEMPLATE/config.yml controls whether blank issues are allowed (blank_issues_enabled: true/false) and can add external links to the template chooser.

Common traps

  • Issue forms use .yml extension; Markdown templates use .md — mixing them up is a frequent distractor.
  • Setting blank_issues_enabled: false in config.yml forces users through templates but requires at least one template to exist.
  • assignees and labels in the form YAML auto-apply on creation; users can still modify them.
  • The markdown field type renders informational text but cannot be required.

Unlock with a paid plan

12 more sections (about 2,817 words) continue below. Every paid plan unlocks all GH-900 study guides, the full question bank and mock exams, from $4.97/month.