gardener / dashboard

Web-based GUI for Gardener installations.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Support GitHub issue forms with `create ticket` button

hendrikKahl opened this issue · comments

What would you like to be added:

It would be great, if a user could be forwarded to an issue forms template when creating tickets for a cluster via the dashboard.

With issue forms, you can create issue templates that have customizable web form fields. You can encourage contributors to include specific, structured information by using issue forms in your repository.

https://docs.github.com/en/communities/using-templates-to-encourage-useful-issues-and-pull-requests/configuring-issue-templates-for-your-repository#creating-issue-forms

Why is this needed:
As of today, a markdown template is rendered and added to the URL represented by the create ticket button.

The markdown template does not enforce any user input and can be ignored at the users will. With issue forms the operator of a Gardener landscape has more control and can guide a user to give meaningful input.

A simple template could look like this.
name: "Sample Issue Form"
description: "Guided creation of an issue for a Shoot cluster"
title: "[<cluster>]: <problem> "
labels: ["topology/shoot"]
body:
  - type: markdown
    attributes:
      value: "# Gardener help center "
  - type: markdown
    attributes:
      value: |
        Please provide metadata and information for this issue, such as specifying which cluster is affected.
        By categorizing and prioritizing the issue appropriately, you can help us process this ticket more quickly.
  - type: input
    id: cluster-link
    attributes:
      label: "Which cluster is affected?"
      description:  Please provide the link to your cluster in the Gardener Dashboard, so that we can identify it and run some self-diagnoses upfront.
    validations:
      required: true
  - type: textarea
    id: how-to-reproduce
    attributes:
      label: "How can we reproduce the issue (concisely and precisely)?"
      placeholder: |
        1. 
        2.
        3.
    validations:
      required: true

Let's assume the template's file name would be shoot_issue.yml. It could be addressed like this to open a new issue:

https://github.com/<org>/<repo>/issues/new?assignees=&labels=&template=shoot_issue.yml&title=test

Individual text areas are addressable by their id as well. For example, the input field cluster-link could be pre-filled with some-shoot like this:
https://github.com/<org>/<repo>/issues/new?assignees=&labels=&template=shoot_issue.yml&cluster-link=some-shoot&tilte=test

/assign