What Is an Issue Template in GitHub?

What Is an Issue Template in GitHub?

A thorough, zero-prior-knowledge walkthrough of how GitHub helps teams collect the right information every time someone reports a bug or requests a feature — instead of guessing what's missing.

Imagine calling a plumber to report a leak, and they simply ask, “so, what’s wrong?” You might describe the water, but forget to mention which room, how long it’s been leaking, or whether you’ve already tried turning off the main valve — details the plumber actually needed from the very first call. Now imagine instead they hand you a short form: “Which room? How long? Have you shut off the water?” Suddenly the important details come out automatically, without either of you needing to remember to ask. An issue template does exactly this for a software project — it turns a blank, easy-to-get-wrong report into a guided form that reliably captures what a team actually needs. In this guide, we’ll build up this idea from zero — what an issue template is, why it exists, exactly how GitHub processes one behind the scenes, and how to design one that actually gets used.

1Core Concepts: What an Issue Template Actually Is

Before touching any configuration, let’s build a precise, plain-language definition.

What it is: An issue template is a predefined structure that GitHub shows to someone before they create a new issue on a repository — guiding them to fill in specific sections, such as steps to reproduce a bug or the motivation behind a feature request, instead of starting from a completely blank text box.

Why it exists: When anyone can open an issue with no guidance at all, reports naturally end up wildly inconsistent — some overly brief (“it’s broken”), some missing crucial details, some mixing several unrelated problems into one report. An issue template exists to prompt the reporter, at the exact moment they’re writing, for the specific pieces of information the team actually needs to understand and act on the report.

Where it’s used: Issue templates appear on GitHub repositories of every size — a small personal project might use one simple bug-report template, while a large open-source project might offer several different templates (bug report, feature request, documentation issue) so reporters pick whichever matches their situation.

Everyday Analogy

Think of an issue template like a hospital’s intake form. Instead of a nurse asking every new patient to freely describe whatever they feel like, the form specifically asks for symptoms, when they started, and any allergies — because experience has shown these are exactly the details needed to help quickly. An issue template plays the same role for a software team: it encodes hard-won experience about what information is actually useful, so every reporter provides it automatically.

Practical example: A user of an open-source photo-editing tool encounters a crash. Instead of opening a blank issue and writing “it crashed, please fix,” GitHub presents them with a bug-report template asking for the exact steps that led to the crash, the operating system they’re using, and the version of the software installed — information the maintainers would otherwise have to chase down through several back-and-forth comments.

2The Problem & Motivation Behind Issue Templates

Like most collaboration features, issue templates grew directly out of a specific, repeated frustration.

In GitHub’s early years, issues were simply a blank title and a blank description box — completely open-ended. This worked reasonably well for small projects with a handful of contributors who already understood exactly what information mattered. But as open-source projects grew to attract contributors and users who had never interacted with the maintainers before, a predictable pattern emerged: many issues arrived missing exactly the details needed to investigate them, forcing maintainers to spend significant time simply asking follow-up questions before any actual problem-solving could begin.

This back-and-forth wasted time for everyone involved — the reporter had to wait, and the maintainer had to ask, wait, and ask again. Issue templates were introduced specifically to move that information-gathering step earlier, embedding it directly into the reporting process itself so the necessary details show up in the very first message.

i
Key Insight

Git itself has no concept of “issues” at all — issues, and therefore issue templates, are entirely a feature of the GitHub platform’s collaboration tools, built to support project management and communication around a Git repository, not a part of Git’s version-control mechanics.

The core problem issue templates solve: how do you reliably get the specific information a team needs from someone who may have never reported an issue before, without relying on that person already knowing what to include, and without maintainers having to repeatedly ask the same clarifying questions?

3Where Issue Templates Live & How GitHub Finds Them

Understanding where these templates are actually stored demystifies how GitHub knows to show them.

Issue templates are stored as ordinary files inside the repository itself, in a special, reserved folder that GitHub specifically looks for. Because they’re just files in the repository, they’re version-controlled exactly like any other project file — changes to a template go through the same commit history, and can be reviewed through a pull request (as covered in a related guide) just like a code change would be.

There are two supported formats for these files: plain Markdown files with a small block of extra configuration at the top (specifying things like the template’s name and a default title), or a more structured format that lets maintainers define an actual interactive form — with distinct fields, dropdown menus, and checkboxes — rather than just a block of pre-written Markdown text for the reporter to fill in around.

1
RESERVED FOLDER
GitHub scans for templates
2
SUPPORTED FORMATS
Markdown-based or structured form
N
TEMPLATES
a repository can offer at once

Because a repository can contain more than one template file, GitHub can offer multiple distinct options — a reporter creating a new issue is shown a chooser screen listing every available template, so they can pick whichever one actually matches what they’re trying to report.

4Internal Working: What Happens When Someone Opens a New Issue

Now let’s walk through exactly what GitHub does, step by step, from the moment someone clicks “New Issue.”
flowchart LR
    A["User clicks New Issue"] --> B["GitHub checks the repository's template folder"]
    B --> C{"Any templates configured?"}
    C -->|No| D["Plain blank issue form is shown"]
    C -->|Yes, one| E["That template is shown directly"]
    C -->|Yes, multiple| F["Chooser screen lists all templates"]
    F --> G["User selects the matching template"]
    G --> H["Pre-filled or structured form is displayed"]
    E --> H
    H --> I["User completes the fields and submits"]
    
FIG 4.1 — The decision path GitHub follows when a new issue is being created

Step by step, in plain language: first, someone clicks the button to create a new issue on a repository. Second, GitHub checks whether that repository has any template files configured in its reserved folder. Third, if there are none, GitHub simply shows the traditional blank title-and-description box, exactly as it always did before templates existed. Fourth, if exactly one template exists, GitHub shows it immediately; if multiple exist, GitHub first shows a chooser screen listing each one — often with a short description of when to use it — so the reporter picks the option matching their situation. Fifth, once a template is selected, GitHub displays it: either pre-written Markdown headings and prompts the reporter fills in around, or, for the structured form format, distinct labeled fields, dropdowns, and checkboxes the reporter interacts with directly. Finally, the reporter completes the relevant sections and submits, creating a new issue whose content already follows the team’s intended structure.

?
Why It Matters

Because this all happens automatically, based purely on files already committed to the repository, no ongoing manual effort is required from maintainers once a template is set up — every future reporter gets guided the same way, without anyone needing to remember to explain the process to them individually.

5Data Flow & Lifecycle From Report to Resolution

Following one reported issue from creation through to being resolved shows how a template’s structure keeps paying off long after it’s filled in.
1

Reporter Selects a Template

A user encountering a bug chooses the “Bug Report” template from the chooser screen, rather than a blank issue.

2

Structured Information Is Captured

The reporter fills in the requested fields — steps to reproduce, expected versus actual behavior, environment details — as prompted by the template.

3

Maintainer Triages the Issue

Because the needed details are already present, a maintainer can quickly assess severity and priority without an initial round of clarifying questions.

4

Issue Is Labeled & Assigned

Some templates automatically apply labels (like “bug”) or route the issue to a specific team, based on which template was used.

5

Work Begins

A developer picks up the issue with all the context needed already available, often referencing the issue in the pull request that eventually fixes it.

6

Issue Is Closed

Once resolved, the issue is closed, but remains a permanent, searchable record — one that’s especially useful later precisely because it was well-structured from the start.

Notice how the value of a good template compounds: the same handful of upfront questions saves a small amount of back-and-forth on every single issue, and across hundreds or thousands of issues over a project’s lifetime, that adds up to a substantial amount of maintainer time saved.

6Markdown Templates vs. YAML Form Templates

GitHub actually supports two meaningfully different styles of issue template, and picking the right one matters.

The original, simpler style is a Markdown-based template: essentially a pre-written issue description containing headings and instructions, like “## Steps to Reproduce” followed by a blank line for the reporter to type under. It’s easy to create and edit, but it relies entirely on the reporter actually following the structure rather than deleting it or ignoring it.

The newer, more structured style — often called a form-based or “YAML” template, named after the configuration format used to define it — lets maintainers define genuinely separate input fields: a dropdown to select which version of the software is affected, a checkbox confirming the reporter searched for existing issues first, or a required text box that can’t be submitted empty. This format enforces structure far more strongly, since the reporter interacts with real form controls rather than freely editable text.

Markdown Template

  • Simple to write and understand
  • Feels familiar — just a pre-filled text box
  • Easy for a reporter to accidentally delete sections
  • Cannot enforce that a field is actually filled in

Form-Based (YAML) Template

  • Distinct fields, dropdowns, and checkboxes
  • Can mark specific fields as required before submission
  • Produces more consistently structured issues
  • Takes a bit more effort to design correctly upfront
!
Warning

A Markdown template can never truly force a reporter to provide something — the pre-written text is only a suggestion they can freely edit or remove. If a piece of information is absolutely essential to receive every time, a form-based template with a required field is the more reliable choice.

7Common Template Types Teams Create

Most projects converge on a similar small set of template categories, each serving a distinct purpose.
Most Common

Bug Report

Captures what went wrong, steps to reproduce it, expected versus actual behavior, and environment details like operating system or version.

Common

Feature Request

Captures the problem the requester is trying to solve, their proposed solution, and any alternatives they considered.

Specialized

Documentation Issue

Focuses specifically on unclear, missing, or incorrect documentation, distinct from a code bug report.

Specialized

Security Vulnerability Report

Often deliberately routes reporters away from a public issue at all, instead pointing them to a private reporting channel, given how sensitive security details are.

Support

Question / Support Request

Used by projects that want to separate genuine bugs from general usage questions, sometimes redirecting questions to a discussion forum instead.

Config-Only

Blank Issues Disabled

Not a template itself, but a configuration option some projects enable to require every new issue go through one of the defined templates, rather than allowing a free-form blank issue at all.

A project doesn’t need every one of these — a small personal project might get by with just a single, simple bug-report template, while a large, high-traffic open-source project may offer several, each carefully tuned for a specific kind of report.

8Automatic Labels, Assignees & Routing

Issue templates can do more than just structure the description — they can also automate the bookkeeping around a new issue.

A template can be configured to automatically apply one or more labels — the small, colored tags GitHub uses to categorize issues — the moment an issue is created from it. A bug-report template might automatically add a “bug” label, while a feature-request template automatically adds “enhancement,” saving a maintainer the small but repetitive task of labeling every incoming issue by hand.

Templates can similarly be configured to automatically assign a specific person or team as the default assignee, useful when a particular category of issue — say, anything related to a specific part of the codebase — should always start in front of the same group of people responsible for that area.

Routing by Template Choice

A large project with separate teams for its mobile app and its web dashboard offers two distinct bug-report templates — one for each product — each pre-applying a different label and a different default assignee, so a report is automatically routed toward the right team the moment it’s created, without anyone needing to manually triage which team should look at it first.

9Advantages, Disadvantages & Trade-offs

Issue templates solve a real problem, but they come with genuine costs and limitations worth understanding.
AspectAdvantageTrade-off / Limitation
Report qualityReliably captures the specific details maintainers actually needRequires upfront effort to design the right questions
Maintainer timeReduces repetitive back-and-forth asking for missing informationA poorly designed template can feel like unnecessary bureaucracy to reporters
ConsistencyEvery report of a given type follows the same, comparable structureMarkdown templates can’t force compliance — a determined reporter can ignore them
AutomationCan auto-apply labels and assignees, reducing manual triage workForm-based templates take more time to configure correctly than plain text
AccessibilityHelps first-time contributors know exactly what’s expected of themToo many required fields can discourage a quick, simple report

The core trade-off to internalize is this: an issue template trades a small amount of one-time design effort — and a small amount of extra friction for the reporter — for a large, ongoing reduction in wasted back-and-forth communication. Getting the balance right means asking for what’s genuinely necessary, and no more.

10Security Considerations

Issue templates intersect with security in a few specific, easy-to-overlook ways.
!
Warning

Never design a bug-report template that asks reporters to paste raw configuration files, environment variables, or logs without warning them to remove sensitive values first. Reporters frequently copy-paste exactly what a template asks for without reviewing it closely, and logs or config output can easily contain passwords, tokens, or private URLs that shouldn’t become public.

Because issues on a public repository are visible to anyone, a dedicated security-vulnerability template — as mentioned in Chapter 7 — typically avoids collecting sensitive vulnerability details in a public issue at all. Instead, well-designed security templates redirect the reporter to a private reporting channel, so a genuine, unpatched vulnerability isn’t accidentally broadcast to the public, including to anyone who might exploit it, before the maintainers have had a chance to fix it.

It’s also worth remembering that, like any file in the repository, issue template files themselves go through the same code review process as other changes (covered in a related guide) before being merged — this matters because a form-based template can technically include some interactive behavior, so changes to it deserve the same scrutiny as any other configuration affecting how the project’s public-facing tools behave.

11Design Patterns & Anti-Patterns

Teams converge on recognizable approaches to issue templates — some effective, some that quietly backfire.

The Minimal-Friction Pattern keeps a template short, asking only for the two or three pieces of information that are almost always needed, trusting maintainers to ask follow-up questions for anything unusual rather than trying to anticipate every possible case upfront.

The Multi-Template Chooser Pattern offers several distinct templates — bug, feature, documentation — each tightly focused on its own category, so reporters aren’t forced to skip irrelevant sections meant for a different kind of report.

The Guided-Checklist Pattern includes checkboxes confirming the reporter has already searched for existing issues or read the contribution guidelines, reducing duplicate reports and reports that don’t match the project’s actual scope.

DECISION — SHOULD A TEMPLATE ASK FOR EVERYTHING POSSIBLE? Common Pitfall
The Situation

A maintainer, wanting to avoid ever missing a useful detail, designs a bug-report template with fifteen required fields covering every conceivable piece of context.

Why This Becomes a Problem

Reporters facing a long, demanding form often abandon it partway through, or fill in irrelevant fields with placeholder text just to get past them — producing noisy, low-quality reports despite the template’s good intentions.

The Better Pattern

Ask only for what’s genuinely necessary in the vast majority of cases, and rely on comments to gather anything unusual afterward — a short, respected template beats a long, resented one.

Common anti-patterns to avoid: the Ignored Template (a Markdown template so easy to delete that most reporters simply erase it and write a single unstructured line instead); the Never-Updated Template (a template that still references an old version numbering scheme or a discontinued product feature, confusing new reporters); and the One-Size-Fits-All Template (using a single bug-report template for feature requests too, forcing awkward, irrelevant answers).

12Best Practices & Common Mistakes

A handful of deliberate choices separate a template that genuinely helps from one that gets ignored or resented.
1

Start From Real Past Issues

Look at what information you’ve had to ask for repeatedly in past issues, and build the template around exactly that, rather than guessing.

2

Keep It as Short as Possible

Only require fields that are genuinely essential nearly every time — everything else can be a comment follow-up instead.

3

Offer More Than One Template When Needed

Split distinct categories — bugs, features, documentation — into separate templates rather than one template trying to serve every case.

4

Use Required Fields for Truly Essential Information

Reach for a form-based template with required fields when a piece of information is genuinely non-negotiable, rather than hoping a Markdown prompt is followed.

5

Revisit Templates Periodically

Update templates as the project evolves, so they never reference outdated version numbers, discontinued features, or old processes.

Common mistakes beginners make: copying a generic template from another project without adjusting it to their own project’s actual needs; requiring so many fields that reporters give up partway through; and never revisiting a template after initially setting it up, letting it grow stale as the project changes.

13Real-World & Industry Examples

Seeing issue templates used in realistic, industry-style scenarios makes the concept concrete.

Large Open-Source Frameworks

A widely used open-source programming framework typically offers separate bug-report and feature-request templates, with the bug-report version using required fields for the exact framework version and a minimal code example that reproduces the problem, since maintainers receive far too many reports to investigate each one without that baseline information already provided.

Enterprise Internal Tools

An internal engineering team building tools for their own company might use a simple, single template asking just for a description and the affected environment, since the audience is small, trusted, and colleagues can easily be asked follow-up questions directly if something’s missing.

Design-System and Component Libraries

A team maintaining a shared design system often uses a template with a dropdown listing each specific component, so that issues automatically arrive already categorized by which part of the library is affected, streamlining routing to the right sub-team.

Community-Driven Projects with High Volume

A project that regularly receives more issues than its small volunteer team can triage often disables blank issues entirely, forcing every report through a structured template, specifically to reduce the volume of low-quality, hard-to-act-on reports the team has to sift through by hand.

14Frequently Asked Questions

Q1Is an issue template a Git feature?
No. As covered in Chapter 2, issues and issue templates are entirely a GitHub platform feature for project collaboration, not part of Git’s version-control mechanics.
Q2Where are issue template files actually stored?
As covered in Chapter 3, they live as ordinary files inside a special, reserved folder in the repository itself, meaning they’re version-controlled and reviewable just like any other project file.
Q3What’s the difference between a Markdown template and a form-based template?
As covered in Chapter 6, a Markdown template is pre-written text the reporter edits freely, while a form-based template offers real fields, dropdowns, and checkboxes — including fields that can be marked required, which a Markdown template can never truly enforce.
Q4Can a repository offer more than one issue template?
Yes. As covered in Chapter 3 and Chapter 7, a repository can offer several templates at once, and reporters are shown a chooser screen to pick whichever one matches their situation.
Q5Can a template automatically add labels or assign someone?
Yes. As covered in Chapter 8, a template can be configured to automatically apply labels and set a default assignee, reducing manual triage work for maintainers.
Q6Should security vulnerabilities be reported through a normal issue template?
Generally no. As covered in Chapter 10, a dedicated security template typically redirects reporters to a private channel instead, since a public issue could expose an unpatched vulnerability to anyone browsing the repository.

15Summary and Key Takeaways

What to Remember

  • An issue template is a GitHub platform feature, not a Git feature — it guides someone creating a new issue toward providing specific, structured information.
  • It exists to eliminate repetitive back-and-forth — capturing essential details upfront instead of maintainers repeatedly asking for missing context.
  • Templates live as version-controlled files inside the repository itself, in a reserved folder GitHub automatically checks when someone starts a new issue.
  • Two formats exist — simple pre-written Markdown text, or a more structured form with genuinely required fields, dropdowns, and checkboxes.
  • A repository can offer multiple templates, and can even automatically apply labels or assignees based on which one is used.
  • Sensitive details, especially security vulnerabilities, generally shouldn’t go through a public issue template — a private reporting channel is the safer path.
  • The best templates ask only for what’s genuinely essential — a short, respected template consistently outperforms a long, exhaustive one that reporters abandon or ignore.