add length check to github issue url (#3485)

This commit is contained in:
Matt 2024-10-26 20:38:11 +01:00 committed by GitHub
parent 6a93624040
commit ce6ab31c32
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

View File

@ -16,6 +16,8 @@ namespace Bloxstrap.UI.Elements.Dialogs
/// </summary>
public partial class ExceptionDialog
{
const int MAX_GITHUB_URL_LENGTH = 8192;
public ExceptionDialog(Exception exception)
{
InitializeComponent();
@ -27,12 +29,19 @@ namespace Bloxstrap.UI.Elements.Dialogs
string repoUrl = $"https://github.com/{App.ProjectRepository}";
string wikiUrl = $"{repoUrl}/wiki";
string issueUrl = String.Format(
"{0}/issues/new?template=bug_report.yaml&title={1}&log={2}",
repoUrl,
HttpUtility.UrlEncode($"[BUG] {exception.GetType()}: {exception.Message}"),
HttpUtility.UrlEncode(String.Join('\n', App.Logger.History))
);
string title = HttpUtility.UrlEncode($"[BUG] {exception.GetType()}: {exception.Message}");
string log = HttpUtility.UrlEncode(String.Join('\n', App.Logger.History));
string issueUrl = $"{repoUrl}/issues/new?template=bug_report.yaml&title={title}&log={log}";
if (issueUrl.Length > MAX_GITHUB_URL_LENGTH)
{
// url is way too long for github. remove the log parameter.
issueUrl = $"{repoUrl}/issues/new?template=bug_report.yaml&title={title}";
if (issueUrl.Length > MAX_GITHUB_URL_LENGTH)
issueUrl = $"{repoUrl}/issues/new?template=bug_report.yaml"; // bruh
}
string helpMessage = String.Format(Strings.Dialog_Exception_Info_2, wikiUrl, issueUrl);