diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
deleted file mode 100644
index 904de8b36c9a9..0000000000000
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ /dev/null
@@ -1,29 +0,0 @@
----
-name: Bug report
-about: Create a report to help reproduce and fix the issue
----
-
-
-## Issue Summary
-
-
-
-## Round ID:
-
-
-
-
-
-## Testmerges:
-
-
-
-## Reproduction:
-
-
-
-
-
-
diff --git a/.github/ISSUE_TEMPLATE/bug_report_form.yml b/.github/ISSUE_TEMPLATE/bug_report_form.yml
new file mode 100644
index 0000000000000..1c159ea8f77c9
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/bug_report_form.yml
@@ -0,0 +1,63 @@
+name: Bug report
+description: Create a report to help reproduce and fix the issue.
+body:
+ - type: markdown
+ attributes:
+ value: |
+ ## **Please read the following guidelines and follow all guidelines or else your issue is subject to closure.**
+ If you are reporting an issue found in another branch or codebase, you MUST link the branch or codebase repo in your issue report or it will be closed.
+ For branches, If you have not pushed your code up, you must either reproduce it on master or push your code up before making an issue report.
+ For other codebases, if you do not have a public code repo you will be refused help unless you can completely reproduce the issue on our code.
+ - type: input
+ id: reporting-version
+ attributes:
+ label: Client Version
+ description: |
+ The BYOND version you are using to report this issue. You can find this information in the bottom left corner of the "About BYOND" window in the BYOND client.
+ placeholder: "515.1642"
+ validations:
+ required: true
+ - type: textarea
+ id: issue-summary
+ attributes:
+ label: Issue Summary
+ description: |
+ Briefly explain your issue in a few plain sentences. You may copy and paste the issue title here if it is suitable.
+ placeholder: |
+ "When I do X, Y happens instead of Z."
+ "X on Y map has Z issue."
+ validations:
+ required: true
+ - type: input
+ id: round-id
+ attributes:
+ label: Round ID
+ description: |
+ If you discovered this issue from playing tgstation hosted servers, the Round ID can be found in the Status panel or retrieved from https://sb.atlantaned.space/rounds
+ The Round ID lets us look up valuable information and logs for the round the bug happened. Leave this blank if there is no round ID.
+ placeholder: "123456"
+ validations:
+ required: false
+ - type: textarea
+ id: test-merges
+ attributes:
+ label: Test Merges
+ description: |
+ If you're certain the issue is to be caused by a test merge [OOC tab -> Show Server Revision], report it in the pull request's comment section rather than on the tracker.
+ If you're unsure you can refer to the issue number by prefixing said number with #. The issue number can be found beside the title after submitting it to the tracker.
+ If no testmerges are active, feel free to leave this section blank.
+ validations:
+ required: false
+ - type: textarea
+ id: reproduction
+ attributes:
+ label: Reproduction steps
+ description: |
+ Describe the steps to reproduce the issue in detail. Include any relevant information, such as the map, round type, and any other factors that may be relevant.
+ If it is a runtime-related error, please include the runtime here as that is pertient information. Issues are not for oddities introduced by admin varedits, ensure these occur in normal circumstances.
+ placeholder: |
+ 1. Go to the X location
+ 2. Do Y action
+ 3. Observe Z result
+ validations:
+ required: true
diff --git a/.github/ISSUE_TEMPLATE/config.yml b/.github/ISSUE_TEMPLATE/config.yml
new file mode 100644
index 0000000000000..c7c3507e8d4f3
--- /dev/null
+++ b/.github/ISSUE_TEMPLATE/config.yml
@@ -0,0 +1,6 @@
+blank_issues_enabled: false
+contact_links:
+ - name: Feature Requests
+ url: https://tgstation13.org/phpBB/viewforum.php?f=9
+ about: Post feature requests and suggestions on the forums. This repository does not handle them.
+
diff --git a/.github/ISSUE_TEMPLATE/feature_request.md b/.github/ISSUE_TEMPLATE/feature_request.md
deleted file mode 100644
index 11687283df4c7..0000000000000
--- a/.github/ISSUE_TEMPLATE/feature_request.md
+++ /dev/null
@@ -1,7 +0,0 @@
----
-name: Feature request
-about: Suggest an idea for this project
-
----
-
-Feature requests are not handled in the repository. The best place to discuss these ideas would be on the /tg/station 13 forums here: https://tgstation13.org/phpBB/viewforum.php?f=9&sid=5153c1c704a4fb1006bf7a265e45e03f
diff --git a/interface/interface.dm b/interface/interface.dm
index a32bb758a204f..e75fa1d523591 100644
--- a/interface/interface.dm
+++ b/interface/interface.dm
@@ -57,46 +57,43 @@
set name = "report-issue"
set desc = "Report an issue"
set hidden = TRUE
- var/githuburl = CONFIG_GET(string/githuburl)
- if(githuburl)
- var/message = "This will open the Github issue reporter in your browser. Are you sure?"
- if(GLOB.revdata.testmerge.len)
- message += "
The following experimental changes are active and are probably the cause of any new or sudden issues you may experience. If possible, please try to find a specific thread for your issue instead of posting to the general issue tracker:
"
- message += GLOB.revdata.GetTestMergeInfo(FALSE)
- // We still use tgalert here because some people were concerned that if someone wanted to report that tgui wasn't working
- // then the report issue button being tgui-based would be problematic.
- if(tgalert(src, message, "Report Issue","Yes","No")!="Yes")
- return
+ var/githuburl = "https://github.com/san7890/bruhstation" //san7890 fix me
+ if(!githuburl)
+ to_chat(src, span_danger("The Github URL is not set in the server configuration."))
+ return
- // Keep a static version of the template to avoid reading file
- var/static/issue_template = file2text(".github/ISSUE_TEMPLATE/bug_report.md")
+ var/message = "This will open the Github issue reporter in your browser. Are you sure?"
+ if(GLOB.revdata.testmerge.len)
+ message += "
The following experimental changes are active and are probably the cause of any new or sudden issues you may experience. If possible, please try to find a specific thread for your issue instead of posting to the general issue tracker:
"
+ message += GLOB.revdata.GetTestMergeInfo(FALSE)
- // Get a local copy of the template for modification
- var/local_template = issue_template
+ // We still use tgalert here because some people were concerned that if someone wanted to report that tgui wasn't working
+ // then the report issue button being tgui-based would be problematic.
+ if(tgalert(src, message, "Report Issue","Yes","No") != "Yes")
+ return
- // Remove comment header
- var/content_start = findtext(local_template, "<")
- if(content_start)
- local_template = copytext(local_template, content_start)
+ var/base_link = githuburl + "/issues/new?template=bug_report_form.yml"
+ var/list/concatable = list(base_link)
- // Insert round
- if(GLOB.round_id)
- local_template = replacetext(local_template, "## Round ID:\n", "## Round ID:\n[GLOB.round_id]")
+ var/client_version = "[byond_version].[byond_build]"
+ concatable += ("&reporting-version=" + client_version)
- // Insert testmerges
- if(GLOB.revdata.testmerge.len)
- var/list/all_tms = list()
- for(var/entry in GLOB.revdata.testmerge)
- var/datum/tgs_revision_information/test_merge/tm = entry
- all_tms += "- \[[tm.title]\]([githuburl]/pull/[tm.number])"
- var/all_tms_joined = all_tms.Join("\n") // for some reason this can't go in the []
- local_template = replacetext(local_template, "## Testmerges:\n", "## Testmerges:\n[all_tms_joined]")
+ // the way it works is that we use the ID's that are baked into the template YML and replace them with values that we can collect in game.
+ if(GLOB.round_id)
+ concatable += ("&round-id=" + GLOB.round_id)
+
+ // Insert testmerges
+ if(GLOB.revdata.testmerge.len)
+ var/list/all_tms = list()
+ for(var/entry in GLOB.revdata.testmerge)
+ var/datum/tgs_revision_information/test_merge/tm = entry
+ all_tms += "- \[[tm.title]\]([githuburl]/pull/[tm.number])"
+ var/all_tms_joined = jointext(all_tms, "\n") // for some reason this can't go in the []
+
+ concatable += ("&test-merges=" + all_tms_joined)
+
+ DIRECT_OUTPUT(src, link(jointext(concatable, "")))
- var/url_params = "Reporting client version: [byond_version].[byond_build]\n\n[local_template]"
- DIRECT_OUTPUT(src, link("[githuburl]/issues/new?body=[url_encode(url_params)]"))
- else
- to_chat(src, span_danger("The Github URL is not set in the server configuration."))
- return
/client/verb/changelog()
set name = "Changelog"