Skip to main content

Syntaxe des formulaires de catégorie de discussion

Vous pouvez utiliser la syntaxe YAML pour définir les champs dans vos formulaires de catégorie de discussion.

À propos de la syntaxe YAML pour les formulaires de catégorie de discussion

Vous pouvez créer des formulaires de catégorie de discussion en ajoutant un fichier de définition de formulaire YAML au dossier /.github/DISCUSSION_TEMPLATE/ de votre dépôt. Si vous débutez avec YAML et souhaitez en savoir plus, consultez « Découvrir YAML en Y minutes ».

Le nom doit correspondre au slug de l’une de vos catégories de discussion. Par exemple, le modèle pour la catégorie « Announcements » doit être .github/DISCUSSION_TEMPLATE/announcements.yml.

Pour chaque champ, vous pouvez définir le type d’entrée, la validation et une étiquette par défaut.

Quand un membre de la communauté remplit un formulaire de discussion, ses réponses pour chaque entrée sont converties en texte Markdown avant d’être ajoutées au corps d’une discussion. Les membres de la communauté peuvent modifier leurs discussions qui ont été créées à l’aide d’un formulaire de discussion et d’autres personnes peuvent interagir avec la discussion comme une discussion créée par d’autres méthodes.

Cet exemple de fichier de configuration YAML définit un formulaire de catégorie de discussion général.

YAML
title: "[General] "
labels: ["General Introduction"]
body:
  - type: markdown
    attributes:
      value: |
        This is text that will show up in the template!
  - type: textarea
    id: improvements
    attributes:
      label: Top 3 improvements
      description: "What are the top 3 improvements we could make to this project?"
      value: |
        1.
        2.
        3.
        ...
      render: bash
    validations:
      required: true
  - type: markdown
    attributes:
      value: |
        ## Markdown header
        And some more markdown
  - type: input
    id: has-id
    attributes:
      label: Suggestions
      description: A description about suggestions to help you
    validations:
      required: true
  - type: dropdown
    id: download
    attributes:
      label: Which area of this project could be most improved?
      options:
        - Documentation
        - Pull request review time
        - Bug fix time
        - Release cadence
    validations:
      required: true
  - type: checkboxes
    attributes:
      label: Check that box!
      options:
        - label: This one!
          required: true
        - label: I won't stop you if you check this one, too
  - type: markdown
    attributes:
      value: |
        ### The thrilling conclusion
        _to our template_

Syntaxe de niveau supérieur

Le fichier de configuration d’un formulaire de catégorie de discussion doit contenir une clé body, et body doit contenir au moins 1 champ non-Markdown.

YAML
body:
- type: input
  id: suggestion
  attributes:
    label: Suggestion
    description: "How might we make this project better?"
    placeholder: "Adding a CODE_OF_CONDUCT.md file would be a great idea."
  validations:
    required: true

Vous pouvez définir les clés principales suivantes pour chaque formulaire correspondant à une catégorie de discussion.

CléDescriptionObligatoireType
bodyDéfinition des types d’entrée dans le formulaire de discussion.ObligatoireArray
labelsÉtiquettes ajoutées automatiquement aux discussions créées avec ce modèle.FacultatifTableau ou chaîne délimitée par des virgules
titleTitre par défaut prérempli dans le formulaire d’envoi de la discussion.FacultatifString

Pour ajouter des champs à votre formulaire, incluez un tableau d’éléments de formulaire dans la clé body. Pour obtenir la liste des éléments disponibles et leur syntaxe, consultez Syntaxe du schéma de formulaire de GitHub.