fastlane-plugin-sentry_api 0.1.0 → 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/README.md +103 -4
- data/lib/fastlane/plugin/sentry_api/actions/sentry_api_action.rb +20 -20
- data/lib/fastlane/plugin/sentry_api/actions/sentry_app_launch_action.rb +260 -0
- data/lib/fastlane/plugin/sentry_api/actions/sentry_crash_free_sessions_action.rb +39 -39
- data/lib/fastlane/plugin/sentry_api/actions/sentry_crash_free_users_action.rb +31 -31
- data/lib/fastlane/plugin/sentry_api/actions/sentry_list_issues_action.rb +34 -34
- data/lib/fastlane/plugin/sentry_api/actions/sentry_slo_report_action.rb +354 -64
- data/lib/fastlane/plugin/sentry_api/actions/sentry_ttid_percentiles_action.rb +110 -43
- data/lib/fastlane/plugin/sentry_api/helper/sentry_api_helper.rb +1 -1
- data/lib/fastlane/plugin/sentry_api/version.rb +1 -1
- metadata +2 -1
|
@@ -71,49 +71,49 @@ module Fastlane
|
|
|
71
71
|
def available_options
|
|
72
72
|
[
|
|
73
73
|
FastlaneCore::ConfigItem.new(key: :auth_token,
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
74
|
+
env_name: "SENTRY_AUTH_TOKEN",
|
|
75
|
+
description: "Sentry API Bearer auth token",
|
|
76
|
+
optional: false,
|
|
77
77
|
type: String,
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
78
|
+
sensitive: true,
|
|
79
|
+
code_gen_sensitive: true,
|
|
80
|
+
verify_block: proc do |value|
|
|
81
|
+
UI.user_error!("No Sentry auth token given, pass using `auth_token: 'token'`") if value.to_s.empty?
|
|
82
|
+
end),
|
|
83
83
|
FastlaneCore::ConfigItem.new(key: :org_slug,
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
84
|
+
env_name: "SENTRY_ORG_SLUG",
|
|
85
|
+
description: "Sentry organization slug",
|
|
86
|
+
optional: false,
|
|
87
87
|
type: String,
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
88
|
+
verify_block: proc do |value|
|
|
89
|
+
UI.user_error!("No Sentry org slug given, pass using `org_slug: 'my-org'`") if value.to_s.empty?
|
|
90
|
+
end),
|
|
91
91
|
FastlaneCore::ConfigItem.new(key: :project_id,
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
92
|
+
env_name: "SENTRY_PROJECT_ID",
|
|
93
|
+
description: "Sentry numeric project ID",
|
|
94
|
+
optional: false,
|
|
95
95
|
type: String,
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
96
|
+
verify_block: proc do |value|
|
|
97
|
+
UI.user_error!("No Sentry project ID given, pass using `project_id: '12345'`") if value.to_s.empty?
|
|
98
|
+
end),
|
|
99
99
|
FastlaneCore::ConfigItem.new(key: :environment,
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
100
|
+
env_name: "SENTRY_ENVIRONMENT",
|
|
101
|
+
description: "Environment filter (e.g. 'production')",
|
|
102
|
+
optional: true,
|
|
103
|
+
default_value: "production",
|
|
104
104
|
type: String),
|
|
105
105
|
FastlaneCore::ConfigItem.new(key: :stats_period,
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
106
|
+
description: "Rolling time window (e.g. '7d', '14d', '30d')",
|
|
107
|
+
optional: true,
|
|
108
|
+
default_value: "7d",
|
|
109
109
|
type: String),
|
|
110
110
|
FastlaneCore::ConfigItem.new(key: :start_date,
|
|
111
|
-
|
|
112
|
-
|
|
111
|
+
description: "Start date in ISO 8601 format. Use with end_date instead of stats_period",
|
|
112
|
+
optional: true,
|
|
113
113
|
type: String),
|
|
114
114
|
FastlaneCore::ConfigItem.new(key: :end_date,
|
|
115
|
-
|
|
116
|
-
|
|
115
|
+
description: "End date in ISO 8601 format. Use with start_date instead of stats_period",
|
|
116
|
+
optional: true,
|
|
117
117
|
type: String)
|
|
118
118
|
]
|
|
119
119
|
end
|
|
@@ -75,53 +75,53 @@ module Fastlane
|
|
|
75
75
|
def available_options
|
|
76
76
|
[
|
|
77
77
|
FastlaneCore::ConfigItem.new(key: :auth_token,
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
78
|
+
env_name: "SENTRY_AUTH_TOKEN",
|
|
79
|
+
description: "Sentry API Bearer auth token",
|
|
80
|
+
optional: false,
|
|
81
81
|
type: String,
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
82
|
+
sensitive: true,
|
|
83
|
+
code_gen_sensitive: true,
|
|
84
|
+
verify_block: proc do |value|
|
|
85
|
+
UI.user_error!("No Sentry auth token given, pass using `auth_token: 'token'`") if value.to_s.empty?
|
|
86
|
+
end),
|
|
87
87
|
FastlaneCore::ConfigItem.new(key: :org_slug,
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
88
|
+
env_name: "SENTRY_ORG_SLUG",
|
|
89
|
+
description: "Sentry organization slug",
|
|
90
|
+
optional: false,
|
|
91
91
|
type: String,
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
92
|
+
verify_block: proc do |value|
|
|
93
|
+
UI.user_error!("No Sentry org slug given, pass using `org_slug: 'my-org'`") if value.to_s.empty?
|
|
94
|
+
end),
|
|
95
95
|
FastlaneCore::ConfigItem.new(key: :project_slug,
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
96
|
+
env_name: "SENTRY_PROJECT_SLUG",
|
|
97
|
+
description: "Sentry project slug (e.g. 'ios', 'android')",
|
|
98
|
+
optional: false,
|
|
99
99
|
type: String,
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
100
|
+
verify_block: proc do |value|
|
|
101
|
+
UI.user_error!("No Sentry project slug given, pass using `project_slug: 'ios'`") if value.to_s.empty?
|
|
102
|
+
end),
|
|
103
103
|
FastlaneCore::ConfigItem.new(key: :query,
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
104
|
+
description: "Sentry search query (e.g. 'is:unresolved', 'is:unresolved release:v1.0')",
|
|
105
|
+
optional: true,
|
|
106
|
+
default_value: "is:unresolved",
|
|
107
107
|
type: String),
|
|
108
108
|
FastlaneCore::ConfigItem.new(key: :sort,
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
109
|
+
description: "Sort order: 'date', 'new', 'freq', 'priority', 'user', 'trend'",
|
|
110
|
+
optional: true,
|
|
111
|
+
default_value: "freq",
|
|
112
112
|
type: String),
|
|
113
113
|
FastlaneCore::ConfigItem.new(key: :stats_period,
|
|
114
|
-
|
|
115
|
-
|
|
114
|
+
description: "Time window for issue stats (e.g. '7d', '14d', '30d')",
|
|
115
|
+
optional: true,
|
|
116
116
|
type: String),
|
|
117
117
|
FastlaneCore::ConfigItem.new(key: :per_page,
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
118
|
+
description: "Number of issues to return (max 100)",
|
|
119
|
+
optional: true,
|
|
120
|
+
default_value: 25,
|
|
121
121
|
type: Integer),
|
|
122
122
|
FastlaneCore::ConfigItem.new(key: :cursor,
|
|
123
|
-
|
|
124
|
-
|
|
123
|
+
description: "Pagination cursor for fetching next page of results",
|
|
124
|
+
optional: true,
|
|
125
125
|
type: String)
|
|
126
126
|
]
|
|
127
127
|
end
|
|
@@ -182,7 +182,7 @@ module Fastlane
|
|
|
182
182
|
end
|
|
183
183
|
|
|
184
184
|
def parse_response(json)
|
|
185
|
-
return [] unless json.
|
|
185
|
+
return [] unless json.kind_of?(Array)
|
|
186
186
|
|
|
187
187
|
json.map do |issue|
|
|
188
188
|
{
|