From f7c94dfc24f724bd6ca9817280cca82c367ff87b Mon Sep 17 00:00:00 2001 From: ERWAN KAFANDO Date: Mon, 6 Apr 2026 20:54:46 +0000 Subject: [PATCH 1/7] feat: add GitHub issue and PR templates (#48) --- .github/ISSUE_TEMPLATE/bug_report.yml | 103 +++++++++++++++++++++ .github/ISSUE_TEMPLATE/config.yml | 8 ++ .github/ISSUE_TEMPLATE/feature_request.yml | 0 .github/PULL_REQUEST_TEMPLATE.md | 12 +++ 4 files changed, 123 insertions(+) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.yml create mode 100644 .github/ISSUE_TEMPLATE/config.yml create mode 100644 .github/ISSUE_TEMPLATE/feature_request.yml create mode 100644 .github/PULL_REQUEST_TEMPLATE.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml new file mode 100644 index 0000000..63feefc --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -0,0 +1,103 @@ +name: Bug Report +description: File a bug report to help us improve sortie +title: "[Bug]: " +labels: ["bug", "triage"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to fill out this bug report! + Please include as much detail as possible to help us reproduce and fix the issue. + + - type: textarea + id: description + attributes: + label: Description + description: A clear and concise description of what the bug is. + placeholder: Tell us what the bug is. + validations: + required: true + + - type: textarea + id: steps-to-reproduce + attributes: + label: Steps to Reproduce + description: How do you trigger this bug? Please walk us through the steps. + placeholder: | + 1. Go to '...' + 2. Click on 'Launch' for app '...' + 3. Observe the error + validations: + required: true + + - type: textarea + id: expected-behavior + attributes: + label: Expected Behavior + description: What did you expect to happen? + validations: + required: true + + - type: textarea + id: actual-behavior + attributes: + label: Actual Behavior + description: What actually happened? Include error message if any. + validations: + required: true + + - type: input + id: sortie-version + attributes: + label: Sortie Version + description: Commit hash, tag, or `sortie version` output + validations: + required: true + + - type: dropdown + id: deployment-method + attributes: + label: Deployment Method + options: + - local (make dev) + - Docker + - Kubernetes (Kind) + - Kubernetes (Helm) + - Other (please specify) + validations: + required: true + + - type: input + id: host-os + attributes: + label: Host OS + description: OS where Sortie backend or K8s cluster runs + placeholder: e.g., Ubuntu 22.04, macOS 14, Windows 11 + + - type: input + id: client-browser + attributes: Client Browser + description: Browser used to access sortie + placeholder: e.g. Chrome 124, Firefox 125 + + - type: input + id: k8s-version + attributes: + label: Kubernetes Version + description: Output of `kubectl version --short` or `kind version` + + - type: textarea + id: logs + attributes: + label: Relevant log output + description: Paste backend, browser console, or kubectl logs. This will be auto-formatted as code. + render: shell + + - type: checkboxes + id: terms + attributes: + label: Code of Conduct + description: By submitting this issue, you agree to follow this project's Code of Conduct + options: + - label: I agree to follow this project's Code of Conduct + required: true \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml new file mode 100644 index 0000000..948719d --- /dev/null +++ b/.github/ISSUE_TEMPLATE/config.yml @@ -0,0 +1,8 @@ +blank_issues_enabled: true +contact_links: + - name: Documentation + url: https://github.com/rjsadow/sortie/tree/main/docs-site + about: Check the docs before opening an issue. + - name: Discussions + url: https://github.com/rjsadow/sortie/discussions + about: Ask questions and discuss ideas with the community. \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml new file mode 100644 index 0000000..e69de29 diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..b50734b --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,12 @@ +## Summary of changes + + +## Related Issue(s) + +- Closes # + +## Checklist +- [ ] Tests pass (`go test ./...`, `npm test`, or `make test`) +- [ ] Lint passes (`golangci-lint run`, `npm run lint`, or `make fmt`) +- [ ] Documentation updated if behavior or configuration changed From e980e848b02c6f5a3b07cd5e0f03f22738b6814d Mon Sep 17 00:00:00 2001 From: ERWAN KAFANDO Date: Mon, 6 Apr 2026 21:13:48 +0000 Subject: [PATCH 2/7] fix: add content to feature_request.yml --- .github/ISSUE_TEMPLATE/feature_request.yml | 66 ++++++++++++++++++++++ 1 file changed, 66 insertions(+) diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index e69de29..62d93cb 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -0,0 +1,66 @@ +name: Feature Request +description: Suggest an idea for Sortie +title: "[Feature]: " +labels: ["enhancement", "triage"] +body: + - type: markdown + attributes: + value: | + Thanks for taking the time to suggest a feature! + Please describe your idea and how it would help Sortie users. + + - type: textarea + id: problem + attributes: + label: Problem Description + description: Is your feature request related to a problem? Please describe. + placeholder: "I'm always frustrated when..." + validations: + required: true + + - type: textarea + id: proposed-solution + attributes: + label: Proposed Solution + description: Describe the solution you'd like to see. + placeholder: A clear and concise description of what you want to happen. + validations: + required: true + + - type: textarea + id: alternatives-considered + attributes: + label: Alternatives Considered + description: Describe any alternative solutions or features you've considered. + + - type: textarea + id: use-case + attributes: + label: Use Case + description: How will this feature benefit your workflow or organization? + placeholder: Example: "As a DevOps engineer, I want to..." + validations: + required: true + + - type: dropdown + id: affected-component + attributes: + label: Affected Component + options: + - Backend (Go/API) + - Frontend (React/UI) + - Kubernetes/Orchestration + - Streaming (noVNC/Guacamole) + - Documentation/DevX + - Other + validations: + required: true + + - type: checkboxes + id: terms + attributes: + label: Code of Conduct + description: By submitting this issue, you agree to follow this project's Code of Conduct + options: + - label: I agree to follow this project's Code of Conduct + required: true \ No newline at end of file From 45489fc47239deb00287424cfba3dd42223577b9 Mon Sep 17 00:00:00 2001 From: ERWAN KAFANDO Date: Mon, 6 Apr 2026 21:19:10 +0000 Subject: [PATCH 3/7] fix: correct YAML syntax and schema for issue templates (#48) --- .github/ISSUE_TEMPLATE/bug_report.yml | 47 ++++++++++++---------- .github/ISSUE_TEMPLATE/feature_request.yml | 18 +++++---- 2 files changed, 35 insertions(+), 30 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 63feefc..21e1752 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,31 +1,31 @@ name: Bug Report -description: File a bug report to help us improve sortie +description: File a bug report to help us improve Sortie title: "[Bug]: " labels: ["bug", "triage"] body: - type: markdown attributes: - value: | + value: | Thanks for taking the time to fill out this bug report! - Please include as much detail as possible to help us reproduce and fix the issue. + Please include as much detail as possible to help us reproduce the issue. - type: textarea id: description attributes: label: Description description: A clear and concise description of what the bug is. - placeholder: Tell us what the bug is. + placeholder: Tell us what you see... validations: required: true - type: textarea id: steps-to-reproduce attributes: - label: Steps to Reproduce - description: How do you trigger this bug? Please walk us through the steps. + label: Steps to reproduce + description: How do you trigger this bug? placeholder: | - 1. Go to '...' - 2. Click on 'Launch' for app '...' + 1. Go to ... + 2. Click on Launch for app ... 3. Observe the error validations: required: true @@ -33,7 +33,7 @@ body: - type: textarea id: expected-behavior attributes: - label: Expected Behavior + label: Expected behavior description: What did you expect to happen? validations: required: true @@ -41,8 +41,8 @@ body: - type: textarea id: actual-behavior attributes: - label: Actual Behavior - description: What actually happened? Include error message if any. + label: Actual behavior + description: What actually happened? validations: required: true @@ -50,7 +50,7 @@ body: id: sortie-version attributes: label: Sortie Version - description: Commit hash, tag, or `sortie version` output + description: Commit hash, tag, or sortie version output validations: required: true @@ -58,12 +58,14 @@ body: id: deployment-method attributes: label: Deployment Method + description: How did you deploy Sortie? options: - - local (make dev) + - Local (make dev) - Docker - Kubernetes (Kind) - Kubernetes (Helm) - - Other (please specify) + - Other + default: Local (make dev) validations: required: true @@ -72,32 +74,33 @@ body: attributes: label: Host OS description: OS where Sortie backend or K8s cluster runs - placeholder: e.g., Ubuntu 22.04, macOS 14, Windows 11 + placeholder: e.g. Ubuntu 22.04, macOS 14, Windows 11 - type: input id: client-browser - attributes: Client Browser - description: Browser used to access sortie - placeholder: e.g. Chrome 124, Firefox 125 + attributes: + label: Client Browser + description: Browser used to access Sortie + placeholder: e.g. Chrome 124, Firefox 125 - type: input id: k8s-version attributes: label: Kubernetes Version - description: Output of `kubectl version --short` or `kind version` + description: Output of kubectl version --short or kind version - type: textarea id: logs attributes: label: Relevant log output - description: Paste backend, browser console, or kubectl logs. This will be auto-formatted as code. + description: Paste backend, browser console, or kubectl logs render: shell - type: checkboxes id: terms attributes: label: Code of Conduct - description: By submitting this issue, you agree to follow this project's Code of Conduct + description: By submitting this issue, you agree to follow this project Code of Conduct options: - - label: I agree to follow this project's Code of Conduct + - label: I agree to follow this projects Code of Conduct required: true \ No newline at end of file diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index 62d93cb..576fa9d 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -1,4 +1,4 @@ -name: Feature Request +name: 💡 Feature Request description: Suggest an idea for Sortie title: "[Feature]: " labels: ["enhancement", "triage"] @@ -13,8 +13,8 @@ body: id: problem attributes: label: Problem Description - description: Is your feature request related to a problem? Please describe. - placeholder: "I'm always frustrated when..." + description: Is your feature request related to a problem? + placeholder: "I am always frustrated when..." validations: required: true @@ -22,7 +22,7 @@ body: id: proposed-solution attributes: label: Proposed Solution - description: Describe the solution you'd like to see. + description: Describe the solution you would like to see. placeholder: A clear and concise description of what you want to happen. validations: required: true @@ -31,14 +31,14 @@ body: id: alternatives-considered attributes: label: Alternatives Considered - description: Describe any alternative solutions or features you've considered. + description: Describe any alternative solutions or features you have considered. - type: textarea id: use-case attributes: label: Use Case description: How will this feature benefit your workflow or organization? - placeholder: Example: "As a DevOps engineer, I want to..." + placeholder: "Example: As a DevOps engineer, I want to..." validations: required: true @@ -46,6 +46,7 @@ body: id: affected-component attributes: label: Affected Component + description: Which part of Sortie does this affect? options: - Backend (Go/API) - Frontend (React/UI) @@ -53,6 +54,7 @@ body: - Streaming (noVNC/Guacamole) - Documentation/DevX - Other + default: Other validations: required: true @@ -60,7 +62,7 @@ body: id: terms attributes: label: Code of Conduct - description: By submitting this issue, you agree to follow this project's Code of Conduct + description: By submitting this issue, you agree to follow this project Code of Conduct options: - - label: I agree to follow this project's Code of Conduct + - label: I agree to follow this projects Code of Conduct required: true \ No newline at end of file From 25096aab8af770191911417bce5dd318abc2fafb Mon Sep 17 00:00:00 2001 From: ERWAN KAFANDO Date: Mon, 6 Apr 2026 21:26:28 +0000 Subject: [PATCH 4/7] fix: Correct YAML syntaxe and schemas --- .github/ISSUE_TEMPLATE/bug_report.yml | 68 +++++++++++++-------------- 1 file changed, 34 insertions(+), 34 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 21e1752..46f71da 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -1,5 +1,5 @@ -name: Bug Report -description: File a bug report to help us improve Sortie +name: "Bug Report" +description: "File a bug report to help us improve Sortie" title: "[Bug]: " labels: ["bug", "triage"] body: @@ -12,17 +12,17 @@ body: - type: textarea id: description attributes: - label: Description - description: A clear and concise description of what the bug is. - placeholder: Tell us what you see... + label: "Description" + description: "A clear and concise description of what the bug is." + placeholder: "Tell us what you see..." validations: required: true - type: textarea id: steps-to-reproduce attributes: - label: Steps to reproduce - description: How do you trigger this bug? + label: "Steps to reproduce" + description: "How do you trigger this bug?" placeholder: | 1. Go to ... 2. Click on Launch for app ... @@ -33,74 +33,74 @@ body: - type: textarea id: expected-behavior attributes: - label: Expected behavior - description: What did you expect to happen? + label: "Expected behavior" + description: "What did you expect to happen?" validations: required: true - type: textarea id: actual-behavior attributes: - label: Actual behavior - description: What actually happened? + label: "Actual behavior" + description: "What actually happened?" validations: required: true - type: input id: sortie-version attributes: - label: Sortie Version - description: Commit hash, tag, or sortie version output + label: "Sortie Version" + description: "Commit hash, tag, or sortie version output" validations: required: true - type: dropdown id: deployment-method attributes: - label: Deployment Method - description: How did you deploy Sortie? + label: "Deployment Method" + description: "How did you deploy Sortie?" options: - - Local (make dev) - - Docker - - Kubernetes (Kind) - - Kubernetes (Helm) - - Other - default: Local (make dev) + - "Local (make dev)" + - "Docker" + - "Kubernetes (Kind)" + - "Kubernetes (Helm)" + - "Other" + default: "Local (make dev)" validations: required: true - type: input id: host-os attributes: - label: Host OS - description: OS where Sortie backend or K8s cluster runs - placeholder: e.g. Ubuntu 22.04, macOS 14, Windows 11 + label: "Host OS" + description: "OS where Sortie backend or K8s cluster runs" + placeholder: "e.g. Ubuntu 22.04, macOS 14, Windows 11" - type: input id: client-browser attributes: - label: Client Browser - description: Browser used to access Sortie - placeholder: e.g. Chrome 124, Firefox 125 + label: "Client Browser" + description: "Browser used to access Sortie" + placeholder: "e.g. Chrome 124, Firefox 125" - type: input id: k8s-version attributes: - label: Kubernetes Version - description: Output of kubectl version --short or kind version + label: "Kubernetes Version" + description: "Output of kubectl version --short or kind version" - type: textarea id: logs attributes: - label: Relevant log output - description: Paste backend, browser console, or kubectl logs + label: "Relevant log output" + description: "Paste backend, browser console, or kubectl logs" render: shell - type: checkboxes id: terms attributes: - label: Code of Conduct - description: By submitting this issue, you agree to follow this project Code of Conduct + label: "Code of Conduct" + description: "By submitting this issue, you agree to follow this project Code of Conduct" options: - - label: I agree to follow this projects Code of Conduct + - label: "I agree to follow this projects Code of Conduct" required: true \ No newline at end of file From 210ca8502a2caa5e00ea033c526789fa76ecbe54 Mon Sep 17 00:00:00 2001 From: ERWAN KAFANDO Date: Mon, 6 Apr 2026 21:33:21 +0000 Subject: [PATCH 5/7] fix: (2)Correct YAML syntaxe and schemas --- .github/ISSUE_TEMPLATE/bug_report.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/bug_report.yml b/.github/ISSUE_TEMPLATE/bug_report.yml index 46f71da..dc4003c 100644 --- a/.github/ISSUE_TEMPLATE/bug_report.yml +++ b/.github/ISSUE_TEMPLATE/bug_report.yml @@ -65,7 +65,7 @@ body: - "Kubernetes (Kind)" - "Kubernetes (Helm)" - "Other" - default: "Local (make dev)" + default: 0 validations: required: true From 005894030a808491fb6413ece3f2abf4b375a1a2 Mon Sep 17 00:00:00 2001 From: ERWAN KAFANDO Date: Mon, 6 Apr 2026 21:37:50 +0000 Subject: [PATCH 6/7] fix: Correct YAML syntaxe and schemas in feature_request.yml --- .github/ISSUE_TEMPLATE/feature_request.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index 576fa9d..8540f8f 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -1,4 +1,4 @@ -name: 💡 Feature Request +name: Feature Request description: Suggest an idea for Sortie title: "[Feature]: " labels: ["enhancement", "triage"] From c0f7efb91c604886d930b5fb59f3f773a4eeed53 Mon Sep 17 00:00:00 2001 From: ERWAN KAFANDO Date: Mon, 6 Apr 2026 21:43:34 +0000 Subject: [PATCH 7/7] fix: remove default dropdown to fix validation error --- .github/ISSUE_TEMPLATE/feature_request.yml | 47 ++++++++++------------ 1 file changed, 22 insertions(+), 25 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/feature_request.yml b/.github/ISSUE_TEMPLATE/feature_request.yml index 8540f8f..9c0240e 100644 --- a/.github/ISSUE_TEMPLATE/feature_request.yml +++ b/.github/ISSUE_TEMPLATE/feature_request.yml @@ -1,5 +1,5 @@ -name: Feature Request -description: Suggest an idea for Sortie +name: "Feature Request" +description: "Suggest an idea for Sortie" title: "[Feature]: " labels: ["enhancement", "triage"] body: @@ -12,8 +12,8 @@ body: - type: textarea id: problem attributes: - label: Problem Description - description: Is your feature request related to a problem? + label: "Problem Description" + description: "Is your feature request related to a problem?" placeholder: "I am always frustrated when..." validations: required: true @@ -21,23 +21,23 @@ body: - type: textarea id: proposed-solution attributes: - label: Proposed Solution - description: Describe the solution you would like to see. - placeholder: A clear and concise description of what you want to happen. + label: "Proposed Solution" + description: "Describe the solution you would like to see." + placeholder: "A clear and concise description of what you want to happen." validations: required: true - type: textarea id: alternatives-considered attributes: - label: Alternatives Considered - description: Describe any alternative solutions or features you have considered. + label: "Alternatives Considered" + description: "Describe any alternative solutions or features you have considered." - type: textarea id: use-case attributes: - label: Use Case - description: How will this feature benefit your workflow or organization? + label: "Use Case" + description: "How will this feature benefit your workflow or organization?" placeholder: "Example: As a DevOps engineer, I want to..." validations: required: true @@ -45,24 +45,21 @@ body: - type: dropdown id: affected-component attributes: - label: Affected Component - description: Which part of Sortie does this affect? + label: "Affected Component" + description: "Which part of Sortie does this affect?" options: - - Backend (Go/API) - - Frontend (React/UI) - - Kubernetes/Orchestration - - Streaming (noVNC/Guacamole) - - Documentation/DevX - - Other - default: Other - validations: - required: true + - "Backend (Go/API)" + - "Frontend (React/UI)" + - "Kubernetes/Orchestration" + - "Streaming (noVNC/Guacamole)" + - "Documentation/DevX" + - "Other" - type: checkboxes id: terms attributes: - label: Code of Conduct - description: By submitting this issue, you agree to follow this project Code of Conduct + label: "Code of Conduct" + description: "By submitting this issue, you agree to follow this project Code of Conduct" options: - - label: I agree to follow this projects Code of Conduct + - label: "I agree to follow this projects Code of Conduct" required: true \ No newline at end of file