chore: Add GitHub issue templates#357
Conversation
Adds three files under .github/ISSUE_TEMPLATE/ to structure incoming issues and reduce the back-and-forth maintainers currently spend extracting version/config/log details from terse reports. - bug_report.yml: required fields for decluttarr version, deployment method, *arr versions, download client, sanitized config, debug logs, repro steps, and expected vs. actual behavior. Auto-applies the "Bug" label. - feature_request.yml: structured around problem statement, proposed solution, alternatives considered. Auto-applies the "Feature" label. - config.yml: disables blank issues so users must pick a template, and adds two contact links — one to GitHub Discussions for questions/config help (which currently land in the issue tracker and clutter triage), and one to the README's FAQ section that already covers many common problems. Closes part of the chore list in discussion ManiMatter#345 ("Set up Issue templates"). Co-Authored-By: Claude Opus 4.7 <[email protected]>
…g template Self-review pass on the templates flagged four gaps that would otherwise be extracted via comments. Adding upfront: - Host OS / architecture dropdown (Linux x86_64, Linux ARM, macOS, Windows, Other) — path-related bugs and qBit issues sometimes behave differently on Windows or ARM (cf. ManiMatter#308 Windows path mappings). - test_run state dropdown — removal-related bugs are very different in test_run=true vs false; capturing this avoids the "wait, were removals actually happening?" round-trip. - Reproduction frequency dropdown (Always / Sometimes / Once / Unknown) — affects triage priority and whether the report is actionable. - Log-sanitization warning: decluttarr already redacts X-Api-Key headers but not ?apikey=... query strings or session cookies, so the description now explicitly tells reporters to scrub those. All four are required fields. Field ordering follows a setup → context → detail narrative. Co-Authored-By: Claude Opus 4.7 <[email protected]>
|
Thank you, this looks very good, appreciate the addition. |
Per @ManiMatter's review on ManiMatter#357: the previous description told reporters to find their version in a log line `Decluttarr <version>` that doesn't actually exist. image_tag and short_commit_id come from env vars set by the Docker build pipeline (only surfaced in the web UI footer once ManiMatter#337 lands), not from any startup log message. Replace with practical instructions for both deployment paths: - Docker users: the image tag they pulled (latest/dev) - Local Python users: short commit hash from git rev-parse --short HEAD Co-Authored-By: Claude Opus 4.7 <[email protected]>
|
Thanks for the look! Fix pushed in |
I am not sure I follow. When I switch to debug level, I see these logs:
From here, users could provide us the tag as well as the commit ID. As example:
|
|
So something like replacing these three fields:
With one consolidated field:
|
|
Yes, I think that sound sensible, what do you think? |
|
Yeah logs can be a pain. I like pastebin as alternative |
…r#357 ManiMatter pointed out that decluttarr already prints a complete configuration dump at startup under the `🛠️ Decluttarr - Settings 🛠️` header (when log level is DEBUG or VERBOSE) — covering image_tag, short_commit_id, all general settings, jobs, instances, and download clients with API keys already masked as `*****`. Asking for a separate "Sanitized config" field is therefore redundant with what reporters will paste in the logs field anyway. Changes: - Drop the "Sanitized config" textarea entirely - Rewrite "Debug-level logs" → "Decluttarr startup banner + debug logs" with the three-step workflow @ManiMatter described: 1. disable jobs not related to the issue 2. set log_level: DEBUG 3. paste everything from the startup banner through the failing cycle - Tweak the version-field description to mention that the banner also contains image_tag / short_commit_id, so reporters can cross-check Net change: 13 fields instead of 14, less duplication, more useful content per report. Co-Authored-By: Claude Opus 4.7 <[email protected]>
|
Good call — Medium path applied in
Net: 13 fields instead of 14, less duplication. Kept |
|
I think it‘s a good first version. Let‘s run with it snd finetune it along the way. Good to be merged from my point of view. |
|
I think that is a good idea as if you’re submitting bugs I think you can
pull the commit hash.
…On Mon, May 11, 2026 at 11:19 AM ManiMatter ***@***.***> wrote:
***@***.**** approved this pull request.
------------------------------
In .github/ISSUE_TEMPLATE/bug_report.yml
<#357 (comment)>
:
> +description: Report a reproducible problem with decluttarr
+title: "[Bug] "
+labels: ["Bug"]
+body:
+ - type: markdown
+ attributes:
+ value: |
+ Thanks for taking the time to file a bug. **Please fill in every required field** — incomplete reports take much longer to resolve and may be closed pending more info.
+
+ Before submitting, please confirm:
+ - You've read the [README](https://github.com/ManiMatter/decluttarr#dependencies--hints--faq), especially the **Dependencies & Hints & FAQ** section
+ - You've searched [open and closed issues](https://github.com/ManiMatter/decluttarr/issues?q=is%3Aissue) for the same problem
+ - This is a reproducible bug, not a configuration question (use [Discussions](https://github.com/ManiMatter/decluttarr/discussions) for those)
+
+ - type: input
+ id: version
Should we be explicit here and request the commit hash, rather than
leaving it open and also accept latest/dev tags?
I fear that "latest"/"dev" may be misleading when versions change fast,
and to reproduce knowing the specific commit would be helpful.
wdyt?
—
Reply to this email directly, view it on GitHub
<#357 (review)>,
or unsubscribe
<https://github.com/notifications/unsubscribe-auth/ADBC4Q3Z7WHUOUBN545HOP342IKT7AVCNFSM6AAAAACYVJWUFOVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHM2DENJTGA3TGMBVHA>
.
You are receiving this because you authored the thread.Message ID:
***@***.***>
|
ManiMatter pointed out that accepting `latest` / `dev` tags as version values is misleading since those tags move quickly — for reproducible bugs we need the specific commit. Drop the tag aliases, ask for the short commit hash directly, point Docker users at the startup banner's `short_commit_id` and local Python users at `git rev-parse --short HEAD`. Co-Authored-By: Claude Opus 4.7 <[email protected]>
|
Good call — applied in
Ready to merge whenever. |
Summary
Adds GitHub issue templates under
.github/ISSUE_TEMPLATE/to address the "Set up Issue templates" item in discussion #345.Two structured templates (Bug, Feature) plus a chooser config that disables blank issues and redirects general questions to Discussions.
What's in here
bug_report.yml— required fields for: decluttarr version, deployment method, host OS / architecture, *arr versions, download client + version,test_runstate, reproduction frequency, sanitized config, debug logs (with API-key sanitization reminder), steps to reproduce, expected vs actual behavior. Auto-applies theBuglabel.feature_request.yml— required: problem statement, proposed solution. Optional: alternatives, extras. Auto-applies theFeaturelabel.config.yml—blank_issues_enabled: falseplus contact links to GitHub Discussions and the README's Dependencies & Hints & FAQ section.Why these fields
Surveyed the last 25 closed issues and noticed the same pattern repeatedly: 7–13 comment threads spent extracting version, deployment method, debug logs, and config from terse OPs. The required fields here are exactly the info that was being asked for in those comment threads.
The
Unclearlabel exists because maintainers can't always tell whether a report is a bug, a config question, or unclear behavior — that's whatconfig.yml's blank-issue lockout + Discussions redirect is meant to fix.Test plan
/issues/new/chooseand confirm the chooser shows two templates + two contact linksBugandFeaturelabels are auto-appliedCloses part of the chore list in #345.