fix request-url limit for error reports

This commit is contained in:
marhali 2022-04-22 11:27:22 +02:00
parent d58a6478a9
commit ba405393ac
2 changed files with 19 additions and 2 deletions

View File

@ -21,6 +21,7 @@
### Fixed
- AlreadyDisposedException on FileChangeListener after project dispose
- Request-URL limit for error reports
## [3.2.0]
### Added

View File

@ -2,12 +2,15 @@ package de.marhali.easyi18n.service;
import com.intellij.ide.BrowserUtil;
import com.intellij.ide.DataManager;
import com.intellij.ide.plugins.IdeaPluginDescriptor;
import com.intellij.ide.plugins.PluginManagerCore;
import com.intellij.openapi.actionSystem.CommonDataKeys;
import com.intellij.openapi.actionSystem.DataContext;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.diagnostic.ErrorReportSubmitter;
import com.intellij.openapi.diagnostic.IdeaLoggingEvent;
import com.intellij.openapi.diagnostic.SubmittedReportInfo;
import com.intellij.openapi.extensions.PluginId;
import com.intellij.openapi.progress.ProgressIndicator;
import com.intellij.openapi.progress.Task;
import com.intellij.openapi.project.Project;
@ -45,7 +48,14 @@ public class ErrorReportHandler extends ErrorReportSubmitter {
DataContext context = mgr.getDataContext(parentComponent);
Project project = CommonDataKeys.PROJECT.getData(context);
String title = "IDE Error Report";
if(additionalInfo == null) {
additionalInfo = "/";
}
IdeaPluginDescriptor plugin = PluginManagerCore.getPlugin(PluginId.getId("de.marhali.easyi18n"));
String version = plugin != null ? plugin.getVersion() : "???";
String title = "IDE Error Report (v" + version + ")";
String labels = "ide report";
String body = "# Additional information\n"
+ additionalInfo + "\n"
@ -58,10 +68,16 @@ public class ErrorReportHandler extends ErrorReportSubmitter {
String url = "https://github.com/marhali/easy-i18n/issues/new?title="
+ encodeParam(title) + "&labels=" + encodeParam(labels) + "&body=" + encodeParam(body);
if(url.length() > 8201) { // Consider github request url limit
url = url.substring(0, 8201);
}
String finalUrl = url;
new Task.Backgroundable(project, "Sending error report") {
@Override
public void run(@NotNull ProgressIndicator indicator) {
BrowserUtil.browse(url);
BrowserUtil.browse(finalUrl);
ApplicationManager.getApplication().invokeLater(() ->
consumer.consume(new SubmittedReportInfo(SubmittedReportInfo.SubmissionStatus.NEW_ISSUE)));