Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
1 change: 0 additions & 1 deletion BitBotATVTests/BitBot.xctestplan
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@
},
"testTargets" : [
{
"parallelizable" : true,
"target" : {
"containerPath" : "container:Bitrise.xcodeproj",
"identifier" : "0E42CAEA20EC7A800033CD03",
Expand Down
20 changes: 0 additions & 20 deletions BitBotATVTests/BitBotATVTests.swift
Original file line number Diff line number Diff line change
Expand Up @@ -10,24 +10,4 @@ import XCTest

class BitBotATVTests: XCTestCase {

override func setUpWithError() throws {
// Put setup code here. This method is called before the invocation of each test method in the class.
}

override func tearDownWithError() throws {
// Put teardown code here. This method is called after the invocation of each test method in the class.
}

func testExample() throws {
// This is an example of a functional test case.
// Use XCTAssert and related functions to verify your tests produce the correct results.
}

func testPerformanceExample() throws {
// This is an example of a performance test case.
measure {
// Put the code you want to measure the time of here.
}
}

}
34 changes: 19 additions & 15 deletions Bitrise.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@
0ED38CDC220DE9000006FE69 /* ASLogLoadingOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 0ED38CDB220DE9000006FE69 /* ASLogLoadingOperation.m */; };
0ED38CDD220DE9000006FE69 /* ASLogLoadingOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 0ED38CDB220DE9000006FE69 /* ASLogLoadingOperation.m */; };
0EDC5DE321BBBB0A00AD41FE /* ASQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EDC5DDF21BBBB0A00AD41FE /* ASQueue.m */; };
0EDC5DE421BBBB0A00AD41FE /* ASOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EDC5DE221BBBB0A00AD41FE /* ASOperation.m */; };
0EDC5DE421BBBB0A00AD41FE /* BROperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EDC5DE221BBBB0A00AD41FE /* BROperation.m */; };
0EDC5DE721BBFB0A00AD41FE /* BRSyncOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EDC5DE621BBFB0A00AD41FE /* BRSyncOperation.m */; };
0EDE7D0821B9346200A39CC4 /* BRSyncEngine.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EDE7D0721B9346200A39CC4 /* BRSyncEngine.m */; };
0EDE7D0921B9346200A39CC4 /* BRSyncEngine.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EDE7D0721B9346200A39CC4 /* BRSyncEngine.m */; };
Expand All @@ -119,7 +119,7 @@
0EFD891520F1FDE10023FCCE /* BRBuild+Mapping.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EFD891420F1FDE10023FCCE /* BRBuild+Mapping.m */; };
0EFD891820F201400023FCCE /* BRAppInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EFD891720F201400023FCCE /* BRAppInfo.m */; };
0EFD893D20F4893B0023FCCE /* BRApp+Mapping.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EFD893C20F4893B0023FCCE /* BRApp+Mapping.m */; };
8605E0C237B585EB9BC0356C /* libPods-BitriseATV.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7E2C5865B43E250E9D3620EC /* libPods-BitriseATV.a */; };
B6085FB37966F37D39919AAA /* libPods-BitBotATV.a in Frameworks */ = {isa = PBXBuildFile; fileRef = A1C47D1452DDE09A85608B0F /* libPods-BitBotATV.a */; };
D90BFBA025372FF800DA473E /* CloudKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D90BFB9F25372FF800DA473E /* CloudKit.framework */; };
D90BFBA62537388000DA473E /* CloudKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = D90BFBA52537388000DA473E /* CloudKit.framework */; };
D91BD9C625A1BE7000EF8D66 /* BitBotATVTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = D91BD9C525A1BE7000EF8D66 /* BitBotATVTests.swift */; };
Expand Down Expand Up @@ -177,7 +177,7 @@
DE3CD07D25246A0400DD5948 /* BRBuildsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EB3ED7221E7BC92003F0364 /* BRBuildsRequest.m */; };
DE3CD08125246A0A00DD5948 /* BRAppsRequest.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EB3ED7521E88E8C003F0364 /* BRAppsRequest.m */; };
DE3CD08525246A1100DD5948 /* BRCommand.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E3C0B122117627700F2EA35 /* BRCommand.m */; };
DE3CD08925246A2E00DD5948 /* ASOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EDC5DE221BBBB0A00AD41FE /* ASOperation.m */; };
DE3CD08925246A2E00DD5948 /* BROperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 0EDC5DE221BBBB0A00AD41FE /* BROperation.m */; };
DE3CD08F25246A7500DD5948 /* AccountCommandsDispatcher.swift in Sources */ = {isa = PBXBuildFile; fileRef = DE3CD08E25246A7500DD5948 /* AccountCommandsDispatcher.swift */; };
DE3CD09625246F5400DD5948 /* BRStorage.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E93B6F620F0837B001A6C15 /* BRStorage.m */; };
DE3CD09A25246F5A00DD5948 /* BRBitriseAPI.m in Sources */ = {isa = PBXBuildFile; fileRef = 0E8E9B5420F0819E00494DEB /* BRBitriseAPI.m */; };
Expand Down Expand Up @@ -462,9 +462,9 @@
0ED38CDA220DE9000006FE69 /* ASLogLoadingOperation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ASLogLoadingOperation.h; sourceTree = "<group>"; };
0ED38CDB220DE9000006FE69 /* ASLogLoadingOperation.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = ASLogLoadingOperation.m; sourceTree = "<group>"; };
0EDC5DDF21BBBB0A00AD41FE /* ASQueue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASQueue.m; sourceTree = "<group>"; };
0EDC5DE021BBBB0A00AD41FE /* ASOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASOperation.h; sourceTree = "<group>"; };
0EDC5DE021BBBB0A00AD41FE /* BROperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = BROperation.h; sourceTree = "<group>"; };
0EDC5DE121BBBB0A00AD41FE /* ASQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = ASQueue.h; sourceTree = "<group>"; };
0EDC5DE221BBBB0A00AD41FE /* ASOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = ASOperation.m; sourceTree = "<group>"; };
0EDC5DE221BBBB0A00AD41FE /* BROperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = BROperation.m; sourceTree = "<group>"; };
0EDC5DE521BBFB0A00AD41FE /* BRSyncOperation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BRSyncOperation.h; sourceTree = "<group>"; };
0EDC5DE621BBFB0A00AD41FE /* BRSyncOperation.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = BRSyncOperation.m; sourceTree = "<group>"; };
0EDE7D0621B9346200A39CC4 /* BRSyncEngine.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BRSyncEngine.h; sourceTree = "<group>"; };
Expand Down Expand Up @@ -496,9 +496,11 @@
4592E252F47089546A803FDB /* libPods-BitBot.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-BitBot.a"; sourceTree = BUILT_PRODUCTS_DIR; };
6206DED9400023C6320DD7AB /* libPods-BitBotTests.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-BitBotTests.a"; sourceTree = BUILT_PRODUCTS_DIR; };
64F51DE74237213D947FD5AF /* Pods-BitBotTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BitBotTests.release.xcconfig"; path = "Target Support Files/Pods-BitBotTests/Pods-BitBotTests.release.xcconfig"; sourceTree = "<group>"; };
7E2C5865B43E250E9D3620EC /* libPods-BitriseATV.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-BitriseATV.a"; sourceTree = BUILT_PRODUCTS_DIR; };
8737EB33A867885C0D9BD854 /* Pods-BitriseATV.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BitriseATV.release.xcconfig"; path = "Target Support Files/Pods-BitriseATV/Pods-BitriseATV.release.xcconfig"; sourceTree = "<group>"; };
A0D4B65651B1B5745349F720 /* Pods-BitriseATV.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BitriseATV.debug.xcconfig"; path = "Target Support Files/Pods-BitriseATV/Pods-BitriseATV.debug.xcconfig"; sourceTree = "<group>"; };
A1C47D1452DDE09A85608B0F /* libPods-BitBotATV.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = "libPods-BitBotATV.a"; sourceTree = BUILT_PRODUCTS_DIR; };
C032C508CB7EA3215E3C4EEA /* Pods-BitBotATV.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BitBotATV.debug.xcconfig"; path = "Target Support Files/Pods-BitBotATV/Pods-BitBotATV.debug.xcconfig"; sourceTree = "<group>"; };
D84A7482A583FF266B3A58C9 /* Pods-BitBotATV.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BitBotATV.release.xcconfig"; path = "Target Support Files/Pods-BitBotATV/Pods-BitBotATV.release.xcconfig"; sourceTree = "<group>"; };
D90BFB9F25372FF800DA473E /* CloudKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CloudKit.framework; path = System/Library/Frameworks/CloudKit.framework; sourceTree = SDKROOT; };
D90BFBA42537387D00DA473E /* BitBotATVRelease.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = BitBotATVRelease.entitlements; sourceTree = "<group>"; };
D90BFBA52537388000DA473E /* CloudKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = CloudKit.framework; path = Platforms/AppleTVOS.platform/Developer/SDKs/AppleTVOS14.0.sdk/System/Library/Frameworks/CloudKit.framework; sourceTree = DEVELOPER_DIR; };
Expand Down Expand Up @@ -652,8 +654,8 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
8605E0C237B585EB9BC0356C /* libPods-BitriseATV.a in Frameworks */,
D90BFBA62537388000DA473E /* CloudKit.framework in Frameworks */,
B6085FB37966F37D39919AAA /* libPods-BitBotATV.a in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
Expand All @@ -667,7 +669,7 @@
D90BFB9F25372FF800DA473E /* CloudKit.framework */,
4592E252F47089546A803FDB /* libPods-BitBot.a */,
6206DED9400023C6320DD7AB /* libPods-BitBotTests.a */,
7E2C5865B43E250E9D3620EC /* libPods-BitriseATV.a */,
A1C47D1452DDE09A85608B0F /* libPods-BitBotATV.a */,
);
name = Frameworks;
sourceTree = "<group>";
Expand Down Expand Up @@ -1078,8 +1080,8 @@
children = (
0EDC5DE121BBBB0A00AD41FE /* ASQueue.h */,
0EDC5DDF21BBBB0A00AD41FE /* ASQueue.m */,
0EDC5DE021BBBB0A00AD41FE /* ASOperation.h */,
0EDC5DE221BBBB0A00AD41FE /* ASOperation.m */,
0EDC5DE021BBBB0A00AD41FE /* BROperation.h */,
0EDC5DE221BBBB0A00AD41FE /* BROperation.m */,
);
path = Queue;
sourceTree = "<group>";
Expand Down Expand Up @@ -1145,6 +1147,8 @@
64F51DE74237213D947FD5AF /* Pods-BitBotTests.release.xcconfig */,
A0D4B65651B1B5745349F720 /* Pods-BitriseATV.debug.xcconfig */,
8737EB33A867885C0D9BD854 /* Pods-BitriseATV.release.xcconfig */,
C032C508CB7EA3215E3C4EEA /* Pods-BitBotATV.debug.xcconfig */,
D84A7482A583FF266B3A58C9 /* Pods-BitBotATV.release.xcconfig */,
);
path = Pods;
sourceTree = "<group>";
Expand Down Expand Up @@ -1759,7 +1763,7 @@
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-BitriseATV-checkManifestLockResult.txt",
"$(DERIVED_FILE_DIR)/Pods-BitBotATV-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
Expand Down Expand Up @@ -1843,7 +1847,7 @@
0E8E9B5520F0819E00494DEB /* BRBitriseAPI.m in Sources */,
0EC53F45221B19F900F47B47 /* BRLogsTextViewController.m in Sources */,
0EB3ED7021E7B7F4003F0364 /* BRAbortRequest.m in Sources */,
0EDC5DE421BBBB0A00AD41FE /* ASOperation.m in Sources */,
0EDC5DE421BBBB0A00AD41FE /* BROperation.m in Sources */,
0E93B70D20F0F9BB001A6C15 /* BTRAccount+Mapping.m in Sources */,
0EFD893D20F4893B0023FCCE /* BRApp+Mapping.m in Sources */,
0E3C0B022117008200F2EA35 /* BRBuildStateInfo.m in Sources */,
Expand Down Expand Up @@ -2011,7 +2015,7 @@
DE48664725245A6100D5D80F /* BRAccountRequest.m in Sources */,
DE2A26B4252313DB00D5762E /* bitrise.xcdatamodeld in Sources */,
DEBE8C1C2513B7FB00CF079A /* BitriseATVApp.swift in Sources */,
DE3CD08925246A2E00DD5948 /* ASOperation.m in Sources */,
DE3CD08925246A2E00DD5948 /* BROperation.m in Sources */,
DED411102534A27900A711BC /* SettingsProvider.swift in Sources */,
DEF04DA0252C9335008C4C97 /* BRAbortRequest.m in Sources */,
DE4866162523633E00D5D80F /* AccountsConnector.swift in Sources */,
Expand Down Expand Up @@ -2335,7 +2339,7 @@
};
DEBE8C252513B7FD00CF079A /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = A0D4B65651B1B5745349F720 /* Pods-BitriseATV.debug.xcconfig */;
baseConfigurationReference = C032C508CB7EA3215E3C4EEA /* Pods-BitBotATV.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = "Brand Assets";
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
Expand Down Expand Up @@ -2367,7 +2371,7 @@
};
DEBE8C262513B7FD00CF079A /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 8737EB33A867885C0D9BD854 /* Pods-BitriseATV.release.xcconfig */;
baseConfigurationReference = D84A7482A583FF266B3A58C9 /* Pods-BitBotATV.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = "Brand Assets";
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
Expand Down
12 changes: 10 additions & 2 deletions Bitrise/Environment/BRAnalytics.h
Original file line number Diff line number Diff line change
Expand Up @@ -16,11 +16,17 @@ NS_ASSUME_NONNULL_BEGIN

+ (instancetype)analytics;

// Controls if services are running
- (void)start;
- (void)toggle;
- (void)stop;

// Controls if analytics is allowed by user
- (void)setEnabled:(BOOL)isEnabled;
- (BOOL)isEnabled;

// Switches enabled state and calls start/stop
- (void)toggle;

#pragma mark - Events -

- (void)trackQuitApp;
Expand All @@ -31,11 +37,13 @@ NS_ASSUME_NONNULL_BEGIN
- (void)trackAnalyticsToggle;

- (void)trackAccountAdd;
- (void)trackAccountAddFailure;
- (void)trackAccountAddFailure:(NSError *)error;
- (void)trackAccountRemove;
- (void)trackAccountRemoveError:(NSError *)error;
- (void)trackSyncWithStarted:(NSUInteger)started
running:(NSUInteger)running
finished:(NSUInteger)finished;
- (void)trackSyncError:(NSError *)error;
- (void)trackRebuildAction;
- (void)trackAbortAction;
- (void)trackLoadLogsAction;
Expand Down
87 changes: 81 additions & 6 deletions Bitrise/Environment/BRAnalytics.m
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,21 @@
#import "BRAnalytics.h"

#import <Mixpanel/Mixpanel.h>
#import <Sentry/Sentry.h>

static NSString * const kBRAnalyticsAvailabilityKey = @"kBRAnalyticsAvailabilityKey";

static NSString * const kBRMixpanelOSXToken = @"ae64ff4c78b73e7f945f63aa02677fbb";
static NSString * const kBRMixpanelATVToken = @"4d209b738bd7dc6965ad1325080f83f1";

#if DEBUG
static NSString * const kBRSentryOSXDSNPath = @"https://16702f55ff1346e49d6ae3aa41bffc8b@o577211.ingest.sentry.io/5731739";
#else
static NSString * const kBRSentryOSXDSNPath = @"https://c955ed8ebdfc4db6bc206bfec0db2af2@o577211.ingest.sentry.io/5783183";
#endif

static NSString * const kBRSentryATVDSNPath = @"https://eb1b1d1669e344d2a0799c79ec1c78ce@o577211.ingest.sentry.io/5737938";

typedef NSString BRAnalyticsEvent;

static BRAnalyticsEvent * const kQuitAppEvent = @"app_quit";
Expand Down Expand Up @@ -63,22 +72,42 @@ + (instancetype)analytics {
}

- (void)start {
// First launch, enable by default
if ([[NSUserDefaults standardUserDefaults] objectForKey:kBRAnalyticsAvailabilityKey] == nil) {
[[BRAnalytics analytics] setEnabled:YES];
}

// Start services if enabled
if ([self isEnabled]) {
#if TARGET_OS_OSX
[Mixpanel sharedInstanceWithToken:kBRMixpanelOSXToken];
[self startMixpanel:kBRMixpanelOSXToken];
[self startSentry:kBRSentryOSXDSNPath];
#else
[Mixpanel sharedInstanceWithToken:kBRMixpanelATVToken];
[self startMixpanel:kBRMixpanelATVToken];
[self startSentry:kBRSentryATVDSNPath];
#endif

if ([[NSUserDefaults standardUserDefaults] objectForKey:kBRAnalyticsAvailabilityKey] == nil) {
[[BRAnalytics analytics] setEnabled:YES];
}
}

- (void)stop {
[self stopMixpanel];
[self stopSentry];
}

- (void)toggle {
[self setEnabled:![self isEnabled]];
if ([self isEnabled]) {
[self start];
} else {
[self stop];
}
}

- (void)setEnabled:(BOOL)isEnabled {
if (isEnabled == [self isEnabled]) {
return;
}

[self.defaults setBool:isEnabled forKey:kBRAnalyticsAvailabilityKey];
[self.defaults synchronize];
}
Expand All @@ -87,6 +116,32 @@ - (BOOL)isEnabled {
return [self.defaults boolForKey:kBRAnalyticsAvailabilityKey];
}

#pragma mark - Providers -

- (void)startMixpanel:(NSString *)token {
[Mixpanel sharedInstanceWithToken:token];
if ([[Mixpanel sharedInstance] hasOptedOutTracking]) {
[[Mixpanel sharedInstance] optInTracking];
}
}

- (void)stopMixpanel {
[[Mixpanel sharedInstance] flush];
[[Mixpanel sharedInstance] reset];
[[Mixpanel sharedInstance] optOutTracking];
}

- (void)startSentry:(NSString *)dsn {
[SentrySDK startWithConfigureOptions:^(SentryOptions *options) {
options.dsn = dsn;
options.tracesSampleRate = @1.0;
}];
}

- (void)stopSentry {
[SentrySDK close];
}

#pragma mark - Events -

- (void)trackQuitApp { [self sendEvent:kQuitAppEvent properties:@{}]; }
Expand All @@ -97,13 +152,23 @@ - (void)trackNotificationsToggle { [self sendEvent:kNotificationsToggleEvent pro
- (void)trackAnalyticsToggle { [self sendEvent:kAnalyticsToggleEvent properties:@{}]; }

- (void)trackAccountAdd { [self sendEvent:kAddAccountEvent properties:@{}]; }
- (void)trackAccountAddFailure { [self sendEvent:kAddAccountFailureEvent properties:@{}]; }
- (void)trackAccountAddFailure:(NSError *)error {
[self sendEvent:kAddAccountFailureEvent properties:@{}];
[self sendError:error];
}
- (void)trackAccountRemove { [self sendEvent:kRemoveAccountEvent properties:@{}]; }
- (void)trackAccountRemoveError:(NSError *)error {
[self sendEvent:kRemoveAccountEvent properties:@{}];
[self sendError:error];
}
- (void)trackSyncWithStarted:(NSUInteger)started
running:(NSUInteger)running
finished:(NSUInteger)finished { [self sendEvent:kSyncEvent properties:@{ @"started" : @(started),
@"running" : @(running),
@"finished" : @(finished) }]; }
- (void)trackSyncError:(NSError *)error {
[self sendError:error];
}

- (void)trackRebuildAction { [self sendEvent:kRebuildActionEvent properties:@{}]; }
- (void)trackAbortAction { [self sendEvent:kAbortActionEvent properties:@{}]; }
Expand All @@ -118,4 +183,14 @@ - (void)sendEvent:(BRAnalyticsEvent *)name properties:(NSDictionary *)properties
}
}

#pragma mark - Issues -

- (void)sendError:(NSError *)error {
[SentrySDK captureError:error];

// SentryEvent *event = [[SentryEvent alloc] initWithError:error];
// event.message = [[SentryMessage alloc] initWithFormatted:error.localizedDescription];
// [SentrySDK captureEvent:event];
}

@end
2 changes: 1 addition & 1 deletion Bitrise/Environment/BRNotificationDispatcher.m
Original file line number Diff line number Diff line change
Expand Up @@ -113,7 +113,7 @@ - (void)userNotificationCenter:(NSUserNotificationCenter *)center didActivateNot
switch (notification.activationType) {
case NSUserNotificationActivationTypeActionButtonClicked: {
BRLog(LL_VERBOSE, LL_CORE, @"Action clicked");
BROpenBuildCommand *openCommand = [[BROpenBuildCommand alloc] initWithBuildSlug:notification.userInfo[kBRNotificationBuildSlugKey]];
BROpenBuildCommand *openCommand = [[BROpenBuildCommand alloc] initWithBuildSlug:notification.userInfo[kBRNotificationBuildSlugKey] tab:BRBuildPageTabLogs];
[openCommand execute:nil];
break;
}
Expand Down
2 changes: 1 addition & 1 deletion Bitrise/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -23,7 +23,7 @@
<key>CFBundleShortVersionString</key>
<string>$(MARKETING_VERSION)</string>
<key>CFBundleVersion</key>
<string>2040</string>
<string>2094</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.developer-tools</string>
<key>LSMinimumSystemVersion</key>
Expand Down
Loading