2
0
mirror of https://github.com/inventree/inventree-app.git synced 2025-04-27 21:16:48 +00:00

Simplify DSN file (#475)

* Add checks for empty sentry DSN

* Add default DSN key

* Fix CI workflows
This commit is contained in:
Oliver 2024-03-06 21:09:06 +11:00 committed by GitHub
parent a889c4adbe
commit b02dc5bac7
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
8 changed files with 25 additions and 16 deletions

View File

@ -37,5 +37,4 @@ jobs:
- name: Build for Android - name: Build for Android
run: | run: |
flutter pub get flutter pub get
cp lib/dummy_dsn.dart lib/dsn.dart
flutter build apk --debug flutter build apk --debug

View File

@ -43,7 +43,6 @@ jobs:
python3 collect_translations.py python3 collect_translations.py
- name: Static Analysis Tests - name: Static Analysis Tests
run: | run: |
cp lib/dummy_dsn.dart lib/dsn.dart
python3 find_dart_files.py python3 find_dart_files.py
flutter pub get flutter pub get
flutter analyze flutter analyze

View File

@ -38,5 +38,4 @@ jobs:
pod repo update pod repo update
pod install pod install
cd .. cd ..
cp lib/dummy_dsn.dart lib/dsn.dart
flutter build ios --release --no-codesign --no-tree-shake-icons flutter build ios --release --no-codesign --no-tree-shake-icons

3
.gitignore vendored
View File

@ -15,9 +15,6 @@ coverage/*
test/coverage_helper_test.dart test/coverage_helper_test.dart
InvenTreeSettings.db InvenTreeSettings.db
# Sentry API key
lib/dsn.dart
# App signing key # App signing key
android/key.properties android/key.properties

7
lib/dsn.dart Normal file
View File

@ -0,0 +1,7 @@
/*
* For integration with sentry.io, fill out the SENTRY_DSN_KEY value below.
* This should be set to a valid DSN key, from your sentry.io account
*
*/
String SENTRY_DSN_KEY = "https://fea705aa4b8e4c598dcf9b146b3d1b86@o378676.ingest.sentry.io/5202450";

View File

@ -1,3 +0,0 @@
// Dummy DSN to use for unit testing, etc
const String SENTRY_DSN_KEY = "https://12345678901234567890@abcdef.ingest.sentry.io/11223344";

View File

@ -6,6 +6,7 @@ import "package:package_info_plus/package_info_plus.dart";
import "package:sentry_flutter/sentry_flutter.dart"; import "package:sentry_flutter/sentry_flutter.dart";
import "package:inventree/api.dart"; import "package:inventree/api.dart";
import "package:inventree/dsn.dart";
import "package:inventree/preferences.dart"; import "package:inventree/preferences.dart";
Future<Map<String, dynamic>> getDeviceInfo() async { Future<Map<String, dynamic>> getDeviceInfo() async {
@ -85,6 +86,10 @@ bool isInDebugMode() {
Future<bool> sentryReportMessage(String message, {Map<String, String>? context}) async { Future<bool> sentryReportMessage(String message, {Map<String, String>? context}) async {
if (SENTRY_DSN_KEY.isEmpty) {
return false;
}
final server_info = getServerInfo(); final server_info = getServerInfo();
final app_info = await getAppInfo(); final app_info = await getAppInfo();
final device_info = await getDeviceInfo(); final device_info = await getDeviceInfo();
@ -164,6 +169,10 @@ Future<void> sentryReportError(String source, dynamic error, StackTrace? stackTr
return; return;
} }
if (SENTRY_DSN_KEY.isEmpty) {
return;
}
final upload = await InvenTreeSettingsManager().getValue(INV_REPORT_ERRORS, true) as bool; final upload = await InvenTreeSettingsManager().getValue(INV_REPORT_ERRORS, true) as bool;
if (!upload) { if (!upload) {

View File

@ -34,13 +34,15 @@ Future<void> main() async {
String release = "${pkg}@${version}:${build}"; String release = "${pkg}@${version}:${build}";
await Sentry.init((options) { if (SENTRY_DSN_KEY.isNotEmpty) {
options.dsn = SENTRY_DSN_KEY; await Sentry.init((options) {
options.release = release; options.dsn = SENTRY_DSN_KEY;
options.environment = isInDebugMode() ? "debug" : "release"; options.release = release;
options.diagnosticLevel = SentryLevel.debug; options.environment = isInDebugMode() ? "debug" : "release";
options.attachStacktrace = true; options.diagnosticLevel = SentryLevel.debug;
}); options.attachStacktrace = true;
});
}
// Pass any flutter errors off to the Sentry reporting context! // Pass any flutter errors off to the Sentry reporting context!
FlutterError.onError = (FlutterErrorDetails details) async { FlutterError.onError = (FlutterErrorDetails details) async {