Skip to main content

Syntax für Issueformulare

Du kannst verschiedene Eingabetypen, Überprüfungen, Standardpersonen für die Zuweisungen und Standardbezeichnungen für deine Issueformulare definieren.

Note

Problemformulare befinden sich derzeit in der beta. Änderungen sind vorbehalten.

Informationen zur YAML-Syntax für Issueformulare

Du kannst benutzerdefinierte Issueformulare erstellen, indem du dem Ordner /.github/ISSUE_TEMPLATE in deinem Repository eine YAML-Formulardefinitionsdatei hinzufügst. Wenn du noch nicht mit YAML arbeitest und mehr erfahren möchtest, lies den Artikel zum Erlernen von YAML in Y Minuten. Du kannst verschiedene Eingabetypen, Überprüfungen, Standardpersonen für die Zuweisungen und Standardbezeichnungen für deine Issueformulare definieren.

Wenn ein Mitwirkender ein Issueformular ausfüllt, werden seine Antworten für jede Eingabe in Markdown konvertiert und dem Textkörper eines Issues hinzugefügt. Mitwirkende können ihre über Issueformulare erstellten Issues bearbeiten, und andere Personen können mit den Issues genau wie mit Issues interagieren, die über andere Methoden erstellt wurden.

Issueformulare werden für Pull Requests nicht unterstützt. Du kannst in deinen Repositorys Pull Request-Vorlagen erstellen, die von Mitarbeitern verwendet werden sollen. Weitere Informationen findest du unter Eine Pull-Request-Vorlage für dein Repository erstellen.

In diesem Beispiel definiert die YAML-Konfigurationsdatei ein Issueformular mit mehreren Eingaben zum Melden eines Fehlers.

Note

Der Feldschlüssel required wird nur in öffentlichen Repositorys unterstützt. In privaten und internen Repositorys sind alle Felder optional.

YAML
name: Bug Report
description: File a bug report.
title: "[Bug]: "
labels: ["bug", "triage"]
projects: ["octo-org/1", "octo-org/44"]
assignees:
  - octocat
body:
  - type: markdown
    attributes:
      value: |
        Thanks for taking the time to fill out this bug report!
  - type: input
    id: contact
    attributes:
      label: Contact Details
      description: How can we get in touch with you if we need more info?
      placeholder: ex. email@example.com
    validations:
      required: false
  - type: textarea
    id: what-happened
    attributes:
      label: What happened?
      description: Also tell us, what did you expect to happen?
      placeholder: Tell us what you see!
      value: "A bug happened!"
    validations:
      required: true
  - type: dropdown
    id: version
    attributes:
      label: Version
      description: What version of our software are you running?
      options:
        - 1.0.2 (Default)
        - 1.0.3 (Edge)
      default: 0
    validations:
      required: true
  - type: dropdown
    id: browsers
    attributes:
      label: What browsers are you seeing the problem on?
      multiple: true
      options:
        - Firefox
        - Chrome
        - Safari
        - Microsoft Edge
  - type: textarea
    id: logs
    attributes:
      label: Relevant log output
      description: Please copy and paste any relevant log output. This will be automatically formatted into code, so no need for backticks.
      render: shell
  - type: checkboxes
    id: terms
    attributes:
      label: Code of Conduct
      description: By submitting this issue, you agree to follow our [Code of Conduct](https://example.com). 
      options:
        - label: I agree to follow this project's Code of Conduct
          required: true

Syntax auf oberster Ebene

Alle Konfigurationsdateien für Issueformulare müssen mit Schlüssel-Wert-Paaren für name, description und body beginnen.

YAML
name:
description:
body:

Du kannst für jedes Issueformular die folgenden Schlüssel auf oberster Ebene festlegen.

SchlüsselBESCHREIBUNGErforderlichtype
nameEin Name für die Issueformularvorlage. Muss sich von allen anderen Vorlagen, einschließlich Markdownvorlagen, eindeutig unterscheiden.ErforderlichString
descriptionEine Beschreibung für die Issueformularvorlage, die in der Oberfläche zur Vorlagenauswahl angezeigt wird.ErforderlichString
bodyDefinition der Eingabetypen im Formular.ErforderlichArray
assigneesPersonen, die automatisch den mit dieser Vorlage erstellten Issues zugewiesen werden.OptionalArray oder durch Trennzeichen getrennte Zeichenfolge
labelsBezeichnungen, die automatisch den mit dieser Vorlage erstellten Issues hinzugefügt werden. Wenn eine Bezeichnung noch nicht im Repository vorhanden ist, wird sie dem Issue nicht automatisch hinzugefügt.OptionalArray oder durch Trennzeichen getrennte Zeichenfolge
titleEin Standardtitel, der im Issueübermittlungsformular vorab ausgefüllt wird.OptionalString

Die verfügbaren body-Eingabetypen und ihre Syntax findest du unter Syntax für das GitHub-Formularschema.

Konvertieren einer Markdownissuevorlage in eine YAML-Issueformularvorlage

Du kannst sowohl Markdown- als auch YAML-Issuevorlagen in deinem Repository verwenden. Wenn du eine Markdownissuevorlage in eine YAML-Issueformularvorlage konvertieren möchtest, musst du eine neue YAML-Datei erstellen, um das Issueformular zu definieren. Du kannst eine vorhandene Markdownissuevorlage manuell in ein YAML-Issueformular transponieren. Weitere Informationen findest du unter Issuevorlagen für Dein Repository konfigurieren.

Wenn du denselben Dateinamen für dein YAML-Issueformular verwenden möchtest, musst du die Markdownissuevorlage löschen, wenn du die neue Datei per Commit in dein Repository übernimmst.

Ein Beispiel für eine Markdownissuevorlage und eine entsprechende YAML-Issueformularvorlage findest du unten.

Markdownissuevorlage

Markdown
---
name: 🐞 Bug
about: File a bug/issue
title: '[BUG] <title>'
labels: Bug, Needs Triage
assignees: ''

---

<!--
Note: Please search to see if an issue already exists for the bug you encountered.
-->

### Current Behavior:
<!-- A concise description of what you're experiencing. -->

### Expected Behavior:
<!-- A concise description of what you expected to happen. -->

### Steps To Reproduce:
<!--
Example: steps to reproduce the behavior:
1. In this environment...
1. With this config...
1. Run '...'
1. See error...
-->

### Environment:
<!--
Example:
- OS: Ubuntu 20.04
- Node: 13.14.0
- npm: 7.6.3
-->

### Anything else:
<!--
Links? References? Anything that will give us more context about the issue that you are encountering!
-->

YAML-Issueformularvorlage

YAML
name: 🐞 Bug
description: File a bug/issue
title: "[BUG] <title>"
labels: ["Bug", "Needs Triage"]
body:
- type: checkboxes
  attributes:
    label: Is there an existing issue for this?
    description: Please search to see if an issue already exists for the bug you encountered.
    options:
    - label: I have searched the existing issues
      required: true
- type: textarea
  attributes:
    label: Current Behavior
    description: A concise description of what you're experiencing.
  validations:
    required: false
- type: textarea
  attributes:
    label: Expected Behavior
    description: A concise description of what you expected to happen.
  validations:
    required: false
- type: textarea
  attributes:
    label: Steps To Reproduce
    description: Steps to reproduce the behavior.
    placeholder: |
      1. In this environment...
      1. With this config...
      1. Run '...'
      1. See error...
  validations:
    required: false
- type: textarea
  attributes:
    label: Environment
    description: |
      examples:
        - **OS**: Ubuntu 20.04
        - **Node**: 13.14.0
        - **npm**: 7.6.3
    value: |
        - OS:
        - Node:
        - npm:
    render: markdown
  validations:
    required: false
- type: textarea
  attributes:
    label: Anything else?
    description: |
      Links? References? Anything that will give us more context about the issue you are encountering!

      Tip: You can attach images or log files by clicking this area to highlight it and then dragging files in.
  validations:
    required: false

Weitere Informationsquellen