feat(diagnostics): send a bug report to a private Gitea issue tracker (E16 S4)
- admin config group "Bug reports": Gitea address, repository, token (secret),
and "Check the connection" — the repository must answer, take issues and
be PRIVATE (a report carries its reporter's log); checked on every send too
- POST /api/debug-sessions/{id}/issue sends the SAVED draft: create the issue,
upload each file on its own request (the measured API), then show the
screenshots inline; progress is kept in the draft, so a send that stops
half-way keeps its issue and the retry sends only what is missing; 5 new
issues an hour per user; audited as issue_create
- the composer: Create issue (only where a tracker is set up, naming the
repository), a partial-send banner with retry, and a Preview — the tracker's
own rendering in a sandboxed frame, or the zip's markdown without one
- the recorder's refusals answer in the localized family (debug_session_*,
screenshot_*, issue(s)_*), not bare codes the UI could only call generic
- a tracker refusal logs the status only: its message can quote the title back
This commit is contained in:
@@ -24,5 +24,6 @@
|
||||
"download_credential_set": "Download cookies set",
|
||||
"download_credential_delete": "Download cookies removed",
|
||||
"invite_delete": "Whitelist entry deleted",
|
||||
"invite_send": "Invitation sent"
|
||||
"invite_send": "Invitation sent",
|
||||
"issue_create": "Bug report sent"
|
||||
}
|
||||
|
||||
@@ -16,7 +16,8 @@
|
||||
"plex": "Plex",
|
||||
"tmdb": "TMDB",
|
||||
"audit": "Audit log",
|
||||
"diagnostics": "Diagnostics"
|
||||
"diagnostics": "Diagnostics",
|
||||
"issues": "Bug reports"
|
||||
},
|
||||
"fields": {
|
||||
"smtp_host": {
|
||||
@@ -226,6 +227,18 @@
|
||||
"tmdb_language": {
|
||||
"label": "TMDB metadata language",
|
||||
"hint": "Language of the data fetched from TMDB (keywords, overviews), as a TMDB locale code such as en-US or hu-HU. Default en-US."
|
||||
},
|
||||
"issues_gitea_url": {
|
||||
"label": "Gitea address",
|
||||
"hint": "The Gitea instance, e.g. https://git.example.com. Left empty, reports can only be downloaded as a zip."
|
||||
},
|
||||
"issues_gitea_repo": {
|
||||
"label": "Repository",
|
||||
"hint": "As owner/repository. It must be PRIVATE: a report carries its reporter's log, and nothing is sent to a public one."
|
||||
},
|
||||
"issues_gitea_token": {
|
||||
"label": "Token",
|
||||
"hint": "A Gitea access token with write:issue and read:repository. Stored encrypted; write-only."
|
||||
}
|
||||
},
|
||||
"choices": {
|
||||
@@ -292,5 +305,9 @@
|
||||
"plexPickHint": "Unchecking all is the same as exposing every library. Remember to Save.",
|
||||
"plexMovies": "Movies",
|
||||
"plexShows": "TV Shows",
|
||||
"emailOff": "Email sending is not configured — Siftlode silently skips every message: verification links, password resets and access-request notices. Fill in the fields above, then send a test."
|
||||
"emailOff": "Email sending is not configured — Siftlode silently skips every message: verification links, password resets and access-request notices. Fill in the fields above, then send a test.",
|
||||
"issuesTest": "Check the connection",
|
||||
"issuesTestHint": "Checks that the repository answers, is private and takes issues. Save your changes first.",
|
||||
"issuesTestOk": "Works: {{repo}} (private)",
|
||||
"issuesTestFailed": "The issue tracker check failed"
|
||||
}
|
||||
|
||||
@@ -207,6 +207,21 @@
|
||||
"wrong_password": "The current password is incorrect.",
|
||||
"wrong_share_password": "Wrong password.",
|
||||
"youtube_editing_off": "Turn on YouTube editing in Settings first.",
|
||||
"youtube_read_scope": "Connect your YouTube account (read access) first."
|
||||
"youtube_read_scope": "Connect your YouTube account (read access) first.",
|
||||
"debug_session_conflict": "A recording just started in another tab. Reload the page.",
|
||||
"issue_already_sent": "This report was already sent; its draft can no longer change.",
|
||||
"issue_title_required": "Give the report a title before you send it.",
|
||||
"screenshot_already_sent": "The report was already sent; this session takes no more images.",
|
||||
"screenshot_too_many": "A session can have at most {{limit}} screenshots.",
|
||||
"screenshot_empty": "The image is empty.",
|
||||
"screenshot_not_an_image": "This is not a PNG, JPEG or WebP image.",
|
||||
"issues_not_configured": "No issue tracker is set up. Download the report as a zip instead.",
|
||||
"issues_unreachable": "The issue tracker isn't answering. Try again later.",
|
||||
"issues_bad_token": "The issue tracker refused the token, or it lacks the permission.",
|
||||
"issues_repo_not_found": "The configured issue repository was not found.",
|
||||
"issues_public_repo": "The issue repository is public. Because of the log, reports go only to a private one.",
|
||||
"issues_disabled": "The issue repository has its issue tracker switched off.",
|
||||
"issues_rejected": "The issue tracker refused the request.",
|
||||
"issues_rate_limited": "You can send at most 5 reports an hour. Try again later."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,7 +93,19 @@
|
||||
"os": "System",
|
||||
"window": "Window",
|
||||
"language": "Language"
|
||||
}
|
||||
},
|
||||
"send": "Create issue",
|
||||
"sending": "Sending…",
|
||||
"sentOk": "Issue created",
|
||||
"sendFailed": "Couldn't send the report",
|
||||
"target": "To: {{repo}} · private",
|
||||
"partial": "The issue was created, but not every attachment went: {{files}}.",
|
||||
"retry": "Send the missing ones",
|
||||
"edit": "Edit",
|
||||
"preview": "Preview",
|
||||
"previewFailed": "Couldn't load the preview",
|
||||
"previewTitle": "Preview of the report",
|
||||
"previewLocal": "Without an issue tracker, this is the zip's issue.md."
|
||||
},
|
||||
"issue": {
|
||||
"steps": "Steps",
|
||||
|
||||
@@ -24,5 +24,6 @@
|
||||
"download_credential_set": "Letöltési cookie-k beállítva",
|
||||
"download_credential_delete": "Letöltési cookie-k eltávolítva",
|
||||
"invite_delete": "Whitelista-bejegyzés törölve",
|
||||
"invite_send": "Meghívó elküldve"
|
||||
"invite_send": "Meghívó elküldve",
|
||||
"issue_create": "Hibajegy elküldve"
|
||||
}
|
||||
|
||||
@@ -16,7 +16,8 @@
|
||||
"plex": "Plex",
|
||||
"tmdb": "TMDB",
|
||||
"audit": "Auditnapló",
|
||||
"diagnostics": "Diagnosztika"
|
||||
"diagnostics": "Diagnosztika",
|
||||
"issues": "Hibajegyek"
|
||||
},
|
||||
"fields": {
|
||||
"smtp_host": {
|
||||
@@ -226,6 +227,18 @@
|
||||
"tmdb_language": {
|
||||
"label": "TMDB metaadat-nyelv",
|
||||
"hint": "A TMDB-ből lekért adatok (kulcsszavak, leírások) nyelve, TMDB nyelvkóddal, pl. en-US vagy hu-HU. Alapérték en-US."
|
||||
},
|
||||
"issues_gitea_url": {
|
||||
"label": "Gitea címe",
|
||||
"hint": "A Gitea-példány címe, pl. https://git.example.com. Üresen hagyva a hibajegyek csak zipként tölthetők le."
|
||||
},
|
||||
"issues_gitea_repo": {
|
||||
"label": "Tárhely",
|
||||
"hint": "tulajdonos/tárhely alakban. PRIVÁT tárhely legyen: a hibajegy a bejelentő naplóját viszi, és nyilvános tárhelyre nem küldünk."
|
||||
},
|
||||
"issues_gitea_token": {
|
||||
"label": "Token",
|
||||
"hint": "Gitea hozzáférési token write:issue és read:repository jogosultsággal. Titkosítva tárolva; csak írható."
|
||||
}
|
||||
},
|
||||
"choices": {
|
||||
@@ -292,5 +305,9 @@
|
||||
"plexPickHint": "Ha egyiket sem jelölöd be, az az összes könyvtár megjelenítésével egyenértékű. Ne feledj menteni.",
|
||||
"plexMovies": "Filmek",
|
||||
"plexShows": "Sorozatok",
|
||||
"emailOff": "Az e-mail-küldés nincs beállítva — a Siftlode némán kihagy minden üzenetet: megerősítő linkeket, jelszó-visszaállításokat és hozzáférés-kérés értesítőket. Töltsd ki a fenti mezőket, majd küldj tesztet."
|
||||
"emailOff": "Az e-mail-küldés nincs beállítva — a Siftlode némán kihagy minden üzenetet: megerősítő linkeket, jelszó-visszaállításokat és hozzáférés-kérés értesítőket. Töltsd ki a fenti mezőket, majd küldj tesztet.",
|
||||
"issuesTest": "Kapcsolat ellenőrzése",
|
||||
"issuesTestHint": "Megnézi, hogy a tárhely elérhető, privát, és fogad hibajegyet. Előbb mentsd a módosításokat.",
|
||||
"issuesTestOk": "Rendben: {{repo}} (privát)",
|
||||
"issuesTestFailed": "A hibajegy-kezelő ellenőrzése nem sikerült"
|
||||
}
|
||||
|
||||
@@ -207,6 +207,21 @@
|
||||
"wrong_password": "A jelenlegi jelszó helytelen.",
|
||||
"wrong_share_password": "Hibás jelszó.",
|
||||
"youtube_editing_off": "Előbb kapcsold be a YouTube-szerkesztést a Beállításokban.",
|
||||
"youtube_read_scope": "Előbb kapcsold össze a YouTube-fiókodat (olvasási hozzáférés)."
|
||||
"youtube_read_scope": "Előbb kapcsold össze a YouTube-fiókodat (olvasási hozzáférés).",
|
||||
"debug_session_conflict": "Egy másik lapon épp most indult rögzítés. Frissítsd az oldalt.",
|
||||
"issue_already_sent": "Ezt a hibajegyet már elküldted, a vázlata nem változtatható.",
|
||||
"issue_title_required": "Adj címet a hibajegynek, mielőtt elküldöd.",
|
||||
"screenshot_already_sent": "A hibajegy már elment, ehhez a munkamenethez nem adhatsz több képet.",
|
||||
"screenshot_too_many": "Egy munkamenethez legfeljebb {{limit}} képernyőkép tartozhat.",
|
||||
"screenshot_empty": "A kép üres.",
|
||||
"screenshot_not_an_image": "Ez nem PNG, JPEG vagy WebP kép.",
|
||||
"issues_not_configured": "Nincs beállítva hibajegy-kezelő. Töltsd le a hibajegyet zipként.",
|
||||
"issues_unreachable": "A hibajegy-kezelő nem válaszol. Próbáld újra később.",
|
||||
"issues_bad_token": "A hibajegy-kezelő nem fogadta el a tokent, vagy hiányzik a jogosultsága.",
|
||||
"issues_repo_not_found": "A beállított hibajegy-tárhely nem található.",
|
||||
"issues_public_repo": "A hibajegy-tárhely nyilvános. A napló miatt csak privát tárhelyre küldünk.",
|
||||
"issues_disabled": "A hibajegy-tárhelyen ki van kapcsolva a hibajegy-kezelés.",
|
||||
"issues_rejected": "A hibajegy-kezelő visszautasította a kérést.",
|
||||
"issues_rate_limited": "Óránként legfeljebb 5 hibajegyet küldhetsz. Próbáld újra később."
|
||||
}
|
||||
}
|
||||
|
||||
@@ -93,7 +93,19 @@
|
||||
"os": "Rendszer",
|
||||
"window": "Ablak",
|
||||
"language": "Nyelv"
|
||||
}
|
||||
},
|
||||
"send": "Hibajegy létrehozása",
|
||||
"sending": "Küldés…",
|
||||
"sentOk": "Hibajegy létrehozva",
|
||||
"sendFailed": "Nem sikerült elküldeni a hibajegyet",
|
||||
"target": "Cél: {{repo}} · privát",
|
||||
"partial": "A hibajegy létrejött, de nem ment el minden csatolmány: {{files}}.",
|
||||
"retry": "Hiányzók küldése",
|
||||
"edit": "Szerkesztés",
|
||||
"preview": "Előnézet",
|
||||
"previewFailed": "Nem sikerült betölteni az előnézetet",
|
||||
"previewTitle": "A hibajegy előnézete",
|
||||
"previewLocal": "Hibajegy-kezelő nélkül ez a zip issue.md fájlja."
|
||||
},
|
||||
"issue": {
|
||||
"steps": "Lépések",
|
||||
|
||||
Reference in New Issue
Block a user