gitextract_a9w4npag/ ├── .gitignore ├── .gitmodules ├── .travis.yml ├── App/ │ ├── Entities/ │ │ ├── Day.swift │ │ ├── GitCommit.swift │ │ ├── GitUser.swift │ │ ├── Report.swift │ │ ├── Settings.swift │ │ ├── Task.swift │ │ ├── User.swift │ │ └── Week.swift │ ├── Extensions/ │ │ ├── Conversions.swift │ │ ├── DateExtension.swift │ │ ├── DateExtensionTests.swift │ │ ├── StringArray.swift │ │ ├── StringIdGenerator.swift │ │ ├── TableViewCell.swift │ │ ├── ViewAutolayout.swift │ │ ├── ViewController.swift │ │ ├── ViewControllerStoryboard.swift │ │ └── ViewXib.swift │ ├── Notifications/ │ │ ├── ComputerWakeUpInteractor.swift │ │ └── ComputerWakeUpInteractorTests.swift │ ├── Parsing/ │ │ ├── ParseGitBranch.swift │ │ └── ParseGitBranchTests.swift │ ├── Reports/ │ │ ├── CreateDayReport.swift │ │ ├── CreateMonthReport.swift │ │ ├── CreateMonthReportTests.swift │ │ ├── CreateReport.swift │ │ └── CreateReportTests.swift │ ├── Statistics/ │ │ └── StatisticsInteractor.swift │ ├── Tasks/ │ │ ├── CloseDay.swift │ │ ├── MergeTasksInteractor.swift │ │ ├── MergeTasksInteractorTests.swift │ │ ├── ReadDaysInteractor.swift │ │ ├── ReadDaysInteractorTests.swift │ │ ├── ReadTasksInteractor.swift │ │ ├── RemoveDuplicate.swift │ │ ├── TaskFinder.swift │ │ ├── TaskFinderTests.swift │ │ ├── TaskInteractor.swift │ │ ├── TaskInteractorTests.swift │ │ ├── TaskTypeEstimator.swift │ │ ├── TaskTypeEstimatorTests.swift │ │ └── TaskTypeSelection.swift │ ├── Time/ │ │ ├── PredictiveTimeTyping.swift │ │ ├── PredictiveTimeTypingTests.swift │ │ └── TimeInteractor.swift │ └── User/ │ ├── RegisterUserInteractor.swift │ ├── UserInteractor.swift │ └── UserInteractorTests.swift ├── Delivery/ │ ├── iOS/ │ │ ├── AppDelegate.swift │ │ ├── Base.lproj/ │ │ │ ├── LaunchScreen.xib │ │ │ └── Main.storyboard │ │ ├── DaysViewController.swift │ │ ├── Images.xcassets/ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ └── Contents.json │ │ │ ├── Contents.json │ │ │ └── SplashIcon.imageset/ │ │ │ └── Contents.json │ │ ├── Info.plist │ │ ├── Jirassic Scrum.entitlements │ │ ├── LoginViewController.swift │ │ ├── NonTaskCell.swift │ │ ├── TaskCell.swift │ │ └── TasksViewController.swift │ ├── macOS/ │ │ ├── Animations/ │ │ │ ├── Animatable.swift │ │ │ └── FlipAnimation.swift │ │ ├── App/ │ │ │ ├── AppDelegate.swift │ │ │ ├── AppLauncher.swift │ │ │ ├── AppTheme.swift │ │ │ ├── AppViewController.swift │ │ │ ├── AppWireframe.swift │ │ │ ├── LocalPreferences.swift │ │ │ └── Versioning.swift │ │ ├── Base.lproj/ │ │ │ └── Main.storyboard │ │ ├── Bridging-Header.h │ │ ├── BrowserSupport.scpt │ │ ├── BuildScript.sh │ │ ├── Components/ │ │ │ ├── Components.storyboard │ │ │ ├── EditableTimeBox.swift │ │ │ ├── GitUsersViewController.swift │ │ │ ├── NewTaskViewController.swift │ │ │ ├── TimeBox.swift │ │ │ └── TimeBoxViewController.swift │ │ ├── External/ │ │ │ ├── AppleScript.swift │ │ │ ├── AppleScriptProtocol.swift │ │ │ ├── ExtensionsInstallerInteractor.swift │ │ │ ├── ExtensionsInteractor.swift │ │ │ └── SandboxedAppleScript.swift │ │ ├── IAP/ │ │ │ ├── IAPHelper.swift │ │ │ └── Store.swift │ │ ├── Images.xcassets/ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ └── Contents.json │ │ │ ├── AppStoreIcon.appiconset/ │ │ │ │ └── Contents.json │ │ │ ├── ButClose.imageset/ │ │ │ │ └── Contents.json │ │ │ ├── ButDisabled.imageset/ │ │ │ │ └── Contents.json │ │ │ ├── ButMinimize.imageset/ │ │ │ │ └── Contents.json │ │ │ ├── CalendarIcon.imageset/ │ │ │ │ └── Contents.json │ │ │ ├── Contents.json │ │ │ ├── GitIcon.imageset/ │ │ │ │ └── Contents.json │ │ │ ├── MenuBarIcon-Normal.imageset/ │ │ │ │ └── Contents.json │ │ │ ├── MenuBarIcon-Selected.imageset/ │ │ │ │ └── Contents.json │ │ │ ├── Plus.imageset/ │ │ │ │ └── Contents.json │ │ │ ├── WarningButton.imageset/ │ │ │ │ └── Contents.json │ │ │ └── WarningIcon.imageset/ │ │ │ └── Contents.json │ │ ├── Info.plist │ │ ├── Jirassic.entitlements │ │ ├── Menu/ │ │ │ ├── MenuBarController.swift │ │ │ └── MenuBarIconView.swift │ │ ├── Modules/ │ │ │ ├── CalendarEvents/ │ │ │ │ └── ModuleCalendar.swift │ │ │ ├── GitLogs/ │ │ │ │ ├── GitBranchParser.swift │ │ │ │ ├── GitBranchParserTests.swift │ │ │ │ ├── GitCommitsParser.swift │ │ │ │ ├── GitCommitsParserTests.swift │ │ │ │ ├── GitUserParser.swift │ │ │ │ └── ModuleGitLogs.swift │ │ │ ├── Hookup/ │ │ │ │ └── ModuleHookup.swift │ │ │ └── JiraTempo/ │ │ │ └── ModuleJiraTempo.swift │ │ ├── Notifications/ │ │ │ ├── BrowserNotification.swift │ │ │ ├── InternalNotifications.swift │ │ │ ├── SleepNotifications.swift │ │ │ └── UserNotifications.swift │ │ ├── Screens/ │ │ │ ├── Account/ │ │ │ │ ├── AccountViewController.swift │ │ │ │ ├── CloudKitLoginViewController.swift │ │ │ │ ├── Login.storyboard │ │ │ │ ├── LoginPresenter.swift │ │ │ │ └── LoginViewController.swift │ │ │ ├── Calendar/ │ │ │ │ └── CalendarScrollView.swift │ │ │ ├── Onboarding/ │ │ │ │ ├── Welcome.storyboard │ │ │ │ ├── WelcomeViewController.swift │ │ │ │ ├── WizardAppleScriptView.swift │ │ │ │ ├── WizardAppleScriptView.xib │ │ │ │ ├── WizardCalendarView.swift │ │ │ │ ├── WizardCalendarView.xib │ │ │ │ ├── WizardGitView.swift │ │ │ │ ├── WizardGitView.xib │ │ │ │ ├── WizardJiraView.swift │ │ │ │ ├── WizardJiraView.xib │ │ │ │ └── WizardViewController.swift │ │ │ ├── Placeholder/ │ │ │ │ ├── Placeholder.storyboard │ │ │ │ └── PlaceholderViewController.swift │ │ │ ├── Settings/ │ │ │ │ ├── Input/ │ │ │ │ │ ├── Browser/ │ │ │ │ │ │ ├── BrowserCell.swift │ │ │ │ │ │ ├── BrowserCell.xib │ │ │ │ │ │ └── BrowserPresenter.swift │ │ │ │ │ ├── Calendar/ │ │ │ │ │ │ ├── CalendarCell.swift │ │ │ │ │ │ ├── CalendarCell.xib │ │ │ │ │ │ └── CalendarPresenter.swift │ │ │ │ │ ├── Git/ │ │ │ │ │ │ ├── GitCell.swift │ │ │ │ │ │ ├── GitCell.xib │ │ │ │ │ │ └── GitPresenter.swift │ │ │ │ │ ├── InputsScrollView.swift │ │ │ │ │ ├── InputsScrollView.xib │ │ │ │ │ ├── InputsTableViewDataSource.swift │ │ │ │ │ ├── JirassicCmd/ │ │ │ │ │ │ ├── JirassicCell.swift │ │ │ │ │ │ └── JirassicCell.xib │ │ │ │ │ ├── Jit/ │ │ │ │ │ │ ├── JitCell.swift │ │ │ │ │ │ └── JitCell.xib │ │ │ │ │ └── Shell/ │ │ │ │ │ ├── ShellCell.swift │ │ │ │ │ └── ShellCell.xib │ │ │ │ ├── Output/ │ │ │ │ │ ├── CocoaHookup/ │ │ │ │ │ │ ├── CocoaHookupCell.swift │ │ │ │ │ │ ├── CocoaHookupCell.xib │ │ │ │ │ │ └── CocoaHookupPresenter.swift │ │ │ │ │ ├── Hookup/ │ │ │ │ │ │ ├── HookupCell.swift │ │ │ │ │ │ ├── HookupCell.xib │ │ │ │ │ │ └── HookupPresenter.swift │ │ │ │ │ ├── JiraTempo/ │ │ │ │ │ │ ├── JiraTempoCell.swift │ │ │ │ │ │ ├── JiraTempoCell.xib │ │ │ │ │ │ └── JiraTempoPresenter.swift │ │ │ │ │ ├── OutputTableViewDataSource.swift │ │ │ │ │ ├── OutputsScrollView.swift │ │ │ │ │ └── OutputsScrollView.xib │ │ │ │ ├── Saveable.swift │ │ │ │ ├── Settings.storyboard │ │ │ │ ├── SettingsInteractor.swift │ │ │ │ ├── SettingsPresenter.swift │ │ │ │ ├── SettingsViewController.swift │ │ │ │ ├── Store/ │ │ │ │ │ ├── StoreView.swift │ │ │ │ │ └── StoreView.xib │ │ │ │ └── Tracking/ │ │ │ │ ├── TrackingView.swift │ │ │ │ └── TrackingView.xib │ │ │ ├── TaskSuggestion/ │ │ │ │ ├── TaskSuggestionPresenter.swift │ │ │ │ ├── TaskSuggestionTests.swift │ │ │ │ └── TaskSuggestionViewController.swift │ │ │ ├── Tasks/ │ │ │ │ ├── AllTasks/ │ │ │ │ │ ├── CellProtocol.swift │ │ │ │ │ ├── HeaderView/ │ │ │ │ │ │ ├── TasksHeaderView.swift │ │ │ │ │ │ └── TasksHeaderView.xib │ │ │ │ │ ├── NonTaskCell/ │ │ │ │ │ │ ├── NonTaskCell.swift │ │ │ │ │ │ └── NonTaskCell.xib │ │ │ │ │ ├── TaskCell/ │ │ │ │ │ │ ├── TaskCell.swift │ │ │ │ │ │ ├── TaskCell.xib │ │ │ │ │ │ ├── TaskCellPresenter.swift │ │ │ │ │ │ └── TaskCellTests.swift │ │ │ │ │ └── TasksDataSource.swift │ │ │ │ ├── DataSource.swift │ │ │ │ ├── MonthReports/ │ │ │ │ │ ├── MonthReportsHeaderView.swift │ │ │ │ │ └── MonthReportsHeaderView.xib │ │ │ │ ├── Reports/ │ │ │ │ │ ├── HeaderView/ │ │ │ │ │ │ ├── ReportsHeaderView.swift │ │ │ │ │ │ └── ReportsHeaderView.xib │ │ │ │ │ ├── ReportCell/ │ │ │ │ │ │ ├── ReportCell.swift │ │ │ │ │ │ ├── ReportCell.xib │ │ │ │ │ │ └── ReportCellPresenter.swift │ │ │ │ │ └── ReportsDataSource.swift │ │ │ │ ├── Tasks.storyboard │ │ │ │ ├── TasksInteractor.swift │ │ │ │ ├── TasksPresenter.swift │ │ │ │ ├── TasksScrollView.swift │ │ │ │ ├── TasksView.swift │ │ │ │ └── TasksViewController.swift │ │ │ └── Worklogs/ │ │ │ ├── Worklogs.storyboard │ │ │ ├── WorklogsPresenter.swift │ │ │ └── WorklogsViewController.swift │ │ ├── ShellSupport.scpt │ │ ├── jirassic.sdef │ │ └── jit │ ├── macOS-cmd/ │ │ └── main.swift │ └── macOS-launcher/ │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Base.lproj/ │ │ └── MainMenu.xib │ ├── Info.plist │ ├── JirassicLauncher.entitlements │ └── main.m ├── External/ │ ├── AppleScriptCommands/ │ │ └── NewTaskCommand.swift │ ├── CloudKit/ │ │ ├── CloudKitRepository+Settings.swift │ │ ├── CloudKitRepository+Tasks.swift │ │ ├── CloudKitRepository+User.swift │ │ ├── CloudKitRepository.swift │ │ └── UserDefaults+token.swift │ ├── CoreData/ │ │ ├── CSettings.swift │ │ ├── CTask.swift │ │ ├── CUser.swift │ │ ├── CoreDataRepository+Settings.swift │ │ ├── CoreDataRepository+Tasks.swift │ │ ├── CoreDataRepository+User.swift │ │ ├── CoreDataRepository.swift │ │ └── Jirassic.xcdatamodeld/ │ │ ├── .xccurrentversion │ │ └── Jirassic.xcdatamodel/ │ │ └── contents │ ├── InMemoryStorage/ │ │ └── InMemoryCoreDataRepository.swift │ ├── Jira/ │ │ ├── JProject.swift │ │ ├── JProjectIssue.swift │ │ ├── JReport.swift │ │ ├── JWorkAttribute.swift │ │ ├── JiraRepository+Projects.swift │ │ ├── JiraRepository+Reports.swift │ │ └── JiraRepository.swift │ ├── Keychain/ │ │ └── Keychain.swift │ ├── RCSync.swift │ ├── Realm/ │ │ ├── RSettings.swift │ │ ├── RTask.swift │ │ ├── RUser.swift │ │ ├── Realm.framework/ │ │ │ └── Versions/ │ │ │ └── A/ │ │ │ ├── Headers/ │ │ │ │ ├── NSError+RLMSync.h │ │ │ │ ├── RLMArray.h │ │ │ │ ├── RLMCollection.h │ │ │ │ ├── RLMConstants.h │ │ │ │ ├── RLMMigration.h │ │ │ │ ├── RLMObject.h │ │ │ │ ├── RLMObjectBase.h │ │ │ │ ├── RLMObjectBase_Dynamic.h │ │ │ │ ├── RLMObjectSchema.h │ │ │ │ ├── RLMPlatform.h │ │ │ │ ├── RLMProperty.h │ │ │ │ ├── RLMRealm.h │ │ │ │ ├── RLMRealmConfiguration+Sync.h │ │ │ │ ├── RLMRealmConfiguration.h │ │ │ │ ├── RLMRealm_Dynamic.h │ │ │ │ ├── RLMResults.h │ │ │ │ ├── RLMSchema.h │ │ │ │ ├── RLMSyncConfiguration.h │ │ │ │ ├── RLMSyncCredentials.h │ │ │ │ ├── RLMSyncManager.h │ │ │ │ ├── RLMSyncPermission.h │ │ │ │ ├── RLMSyncPermissionChange.h │ │ │ │ ├── RLMSyncPermissionOffer.h │ │ │ │ ├── RLMSyncPermissionOfferResponse.h │ │ │ │ ├── RLMSyncSession.h │ │ │ │ ├── RLMSyncUser.h │ │ │ │ ├── RLMSyncUtil.h │ │ │ │ ├── RLMThreadSafeReference.h │ │ │ │ └── Realm.h │ │ │ ├── Modules/ │ │ │ │ └── module.modulemap │ │ │ ├── PrivateHeaders/ │ │ │ │ ├── RLMAccessor.h │ │ │ │ ├── RLMArray_Private.h │ │ │ │ ├── RLMListBase.h │ │ │ │ ├── RLMMigration_Private.h │ │ │ │ ├── RLMObjectSchema_Private.h │ │ │ │ ├── RLMObjectStore.h │ │ │ │ ├── RLMObject_Private.h │ │ │ │ ├── RLMOptionalBase.h │ │ │ │ ├── RLMProperty_Private.h │ │ │ │ ├── RLMRealmConfiguration_Private.h │ │ │ │ ├── RLMRealm_Private.h │ │ │ │ ├── RLMResults_Private.h │ │ │ │ ├── RLMSchema_Private.h │ │ │ │ ├── RLMSyncConfiguration_Private.h │ │ │ │ ├── RLMSyncPermissionChange_Private.h │ │ │ │ ├── RLMSyncPermissionOfferResponse_Private.h │ │ │ │ ├── RLMSyncPermissionOffer_Private.h │ │ │ │ ├── RLMSyncPermission_Private.h │ │ │ │ └── RLMSyncUtil_Private.h │ │ │ ├── Realm │ │ │ └── Resources/ │ │ │ ├── CHANGELOG.md │ │ │ ├── Info.plist │ │ │ ├── LICENSE │ │ │ └── strip-frameworks.sh │ │ ├── RealmRepository.swift │ │ └── RealmSwift.framework/ │ │ └── Versions/ │ │ └── A/ │ │ ├── Headers/ │ │ │ └── RealmSwift-Swift.h │ │ ├── Modules/ │ │ │ ├── RealmSwift.swiftmodule/ │ │ │ │ ├── x86_64.swiftdoc │ │ │ │ └── x86_64.swiftmodule │ │ │ └── module.modulemap │ │ ├── RealmSwift │ │ └── Resources/ │ │ └── Info.plist │ ├── Repository.swift │ ├── RepositoryInteractor.swift │ └── sqlite/ │ ├── SQLTable.swift │ ├── SQLiteDB.swift │ ├── SQLiteSchema.swift │ ├── SSettings.swift │ ├── STask.swift │ ├── SUser.swift │ ├── SqliteRepository+Settings.swift │ ├── SqliteRepository+Tasks.swift │ ├── SqliteRepository+User.swift │ ├── SqliteRepository.swift │ └── UserDefaults+uploadToken.swift ├── Jirassic macOS.entitlements ├── Jirassic.xcodeproj/ │ ├── project.pbxproj │ ├── project.xcworkspace/ │ │ └── xcshareddata/ │ │ ├── IDEWorkspaceChecks.plist │ │ ├── WorkspaceSettings.xcsettings │ │ └── swiftpm/ │ │ └── Package.resolved │ └── xcshareddata/ │ └── xcschemes/ │ ├── Jirassic AppStore.xcscheme │ ├── Jirassic iOS.xcscheme │ ├── Jirassic macOS.xcscheme │ ├── JirassicLauncher.xcscheme │ └── jirassic-cmd.xcscheme ├── JirassicTests/ │ └── Info.plist ├── MyPlayground.playground/ │ ├── Contents.swift │ └── contents.xcplayground ├── README.md ├── TestGit.scpt ├── TestScriptability.scpt ├── build/ │ └── jirassic ├── licence.txt └── scripts/ ├── add-key.sh ├── certs/ │ └── MacDeveloper.p12 └── profile/ ├── jirassic_dev.provisionprofile └── jirassic_launcher_dev.provisionprofile