crep 1.0.1 → 1.0.2
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 +5 -5
- data/.rubocop.yml +7 -0
- data/Changelog.md +12 -2
- data/Gemfile +1 -1
- data/Gemfile.lock +13 -13
- data/LICENSE +1 -1
- data/Readme.md +4 -1
- data/crep.gemspec +1 -1
- data/lib/crep/command/crashes.rb +6 -3
- data/lib/crep/crash_controller.rb +11 -0
- data/lib/crep/model/app_source/app_source.rb +5 -0
- data/lib/crep/model/app_source/hockeyapp_app_source.rb +23 -2
- data/lib/crep/model/crash_sources/hockeyapp_crash_source.rb +15 -9
- data/lib/crep/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 1f850691e9c5310d08744bfe8a5bec641d2d5f66f31e740ee0649a6eace15193
|
4
|
+
data.tar.gz: 74a17e8a6bb887ff990b8de51fc30aea0641b3e6c55ed7e1618ca55cf0d5909e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4cbff327806fd717670fc4708b30b666d500a579b2be4053db97036362a6620b2ee118f09b41fd1468b4fda63b8d8fef5ef0df26d430573fd02d138496a69a29
|
7
|
+
data.tar.gz: 8f650185f26a56a2d96daeefaef9538bb17b78d208dfd2ab0c93afd562e811c50dec3b9399570e07584867e08b4dfdae525739dd88ff481cb010965b484e6001
|
data/.rubocop.yml
CHANGED
data/Changelog.md
CHANGED
@@ -6,10 +6,20 @@
|
|
6
6
|
|
7
7
|
### Fixed
|
8
8
|
|
9
|
-
- Reduced the size of the gem by removing unused assets being bundled with it.
|
10
|
-
|
11
9
|
### Miscellaneous
|
12
10
|
|
11
|
+
# v1.0.2
|
12
|
+
|
13
|
+
### Added
|
14
|
+
|
15
|
+
- Support for generating top crashes without providing a version/build
|
16
|
+
|
17
|
+
# v1.0.1
|
18
|
+
|
19
|
+
### Fixed
|
20
|
+
|
21
|
+
- Reduced the size of the gem by removing unused assets being bundled with it.
|
22
|
+
|
13
23
|
# v1.0.0
|
14
24
|
|
15
25
|
### Added
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
GIT
|
2
|
-
remote: https://github.com/
|
2
|
+
remote: https://github.com/xing/hockeyapp.git
|
3
3
|
revision: 67bdabfdae885e59c977cf30765ac6346dd0ab57
|
4
4
|
specs:
|
5
5
|
hockeyapp (0.0.17)
|
@@ -14,7 +14,7 @@ GIT
|
|
14
14
|
PATH
|
15
15
|
remote: .
|
16
16
|
specs:
|
17
|
-
crep (1.0.
|
17
|
+
crep (1.0.2)
|
18
18
|
claide (~> 1.0.0)
|
19
19
|
colorize
|
20
20
|
hockeyapp
|
@@ -22,11 +22,11 @@ PATH
|
|
22
22
|
GEM
|
23
23
|
remote: https://rubygems.org/
|
24
24
|
specs:
|
25
|
-
activemodel (5.1
|
26
|
-
activesupport (= 5.1
|
27
|
-
activesupport (5.1
|
25
|
+
activemodel (5.2.1)
|
26
|
+
activesupport (= 5.2.1)
|
27
|
+
activesupport (5.2.1)
|
28
28
|
concurrent-ruby (~> 1.0, >= 1.0.2)
|
29
|
-
i18n (
|
29
|
+
i18n (>= 0.7, < 2)
|
30
30
|
minitest (~> 5.1)
|
31
31
|
tzinfo (~> 1.1)
|
32
32
|
addressable (2.5.2)
|
@@ -61,7 +61,7 @@ GEM
|
|
61
61
|
danger
|
62
62
|
rubocop
|
63
63
|
diff-lcs (1.3)
|
64
|
-
docile (1.1
|
64
|
+
docile (1.3.1)
|
65
65
|
faraday (0.13.1)
|
66
66
|
multipart-post (>= 1.2, < 3)
|
67
67
|
faraday-http-cache (1.3.1)
|
@@ -71,9 +71,9 @@ GEM
|
|
71
71
|
httparty (>= 0.7.3)
|
72
72
|
mimemagic
|
73
73
|
multipart-post
|
74
|
-
httparty (0.
|
74
|
+
httparty (0.16.2)
|
75
75
|
multi_xml (>= 0.5.2)
|
76
|
-
i18n (
|
76
|
+
i18n (1.1.0)
|
77
77
|
concurrent-ruby (~> 1.0)
|
78
78
|
json (2.1.0)
|
79
79
|
kramdown (1.16.2)
|
@@ -126,15 +126,15 @@ GEM
|
|
126
126
|
sawyer (0.8.1)
|
127
127
|
addressable (>= 2.3.5, < 2.6)
|
128
128
|
faraday (~> 0.8, < 1.0)
|
129
|
-
simplecov (0.
|
130
|
-
docile (~> 1.1
|
129
|
+
simplecov (0.16.1)
|
130
|
+
docile (~> 1.1)
|
131
131
|
json (>= 1.8, < 3)
|
132
132
|
simplecov-html (~> 0.10.0)
|
133
133
|
simplecov-html (0.10.2)
|
134
134
|
terminal-table (1.8.0)
|
135
135
|
unicode-display_width (~> 1.1, >= 1.1.1)
|
136
136
|
thread_safe (0.3.6)
|
137
|
-
tzinfo (1.2.
|
137
|
+
tzinfo (1.2.5)
|
138
138
|
thread_safe (~> 0.1)
|
139
139
|
unicode-display_width (1.3.0)
|
140
140
|
|
@@ -154,4 +154,4 @@ DEPENDENCIES
|
|
154
154
|
rubocop (= 0.51.0)
|
155
155
|
|
156
156
|
BUNDLED WITH
|
157
|
-
1.16.
|
157
|
+
1.16.2
|
data/LICENSE
CHANGED
data/Readme.md
CHANGED
@@ -25,7 +25,10 @@ Please follow our guide in the [installation instructions](https://github.com/xi
|
|
25
25
|
$ export CREP_HOCKEY_API_TOKEN='abcde'
|
26
26
|
|
27
27
|
# Run Crep
|
28
|
-
$ bundle exec crep crashes --identifier='com.example.company' --version='1.23.0' --build='42'
|
28
|
+
$ bundle exec crep crashes --identifier='com.example.company' --version='1.23.0' --build='42'
|
29
|
+
|
30
|
+
# Run Crep for the latest version and build
|
31
|
+
$ bundle exec crep crashes --identifier='com.example.company' --only-unresolved
|
29
32
|
```
|
30
33
|
|
31
34
|
The `--only-unresolved` flag filters out any crashes marked as resolved.
|
data/crep.gemspec
CHANGED
@@ -19,7 +19,7 @@ Gem::Specification.new do |spec|
|
|
19
19
|
# Prevent pushing this gem to RubyGems.org. To allow pushes either set the 'allowed_push_host'
|
20
20
|
# to allow pushing to a single host or delete this section to allow pushing to any host.
|
21
21
|
if spec.respond_to?(:metadata)
|
22
|
-
spec.metadata['allowed_push_host'] =
|
22
|
+
spec.metadata['allowed_push_host'] = 'https://rubygems.org'
|
23
23
|
else
|
24
24
|
raise 'RubyGems 2.0 or newer is required to protect against ' \
|
25
25
|
'public gem pushes.'
|
data/lib/crep/command/crashes.rb
CHANGED
@@ -3,6 +3,7 @@
|
|
3
3
|
require 'crep/command'
|
4
4
|
require 'crep/crash_controller'
|
5
5
|
require 'crep/model/crash_sources/hockeyapp_crash_source'
|
6
|
+
require 'crep/model/app_source/hockeyapp_app_source'
|
6
7
|
require 'hockeyapp'
|
7
8
|
|
8
9
|
module Crep
|
@@ -44,14 +45,16 @@ module Crep
|
|
44
45
|
super
|
45
46
|
|
46
47
|
help! 'The identifier (--identifier) is a required parameter' unless @bundle_identifier
|
47
|
-
help! 'The version (--version) is a required parameter' unless @version
|
48
|
-
help! 'The build number (--build) is a required parameter' unless @build
|
49
48
|
end
|
50
49
|
|
51
50
|
def run
|
52
51
|
crash_datasource = HockeyAppCrashSource.new
|
53
52
|
crash_controller = CrashController.new(@bundle_identifier, @top, crash_datasource, @show_only_unresolved, @template)
|
54
|
-
|
53
|
+
if @version && @build
|
54
|
+
crash_controller.top_crashes(@version, @build)
|
55
|
+
else
|
56
|
+
crash_controller.latest_top_crashes
|
57
|
+
end
|
55
58
|
end
|
56
59
|
end
|
57
60
|
end
|
@@ -17,6 +17,17 @@ module Crep
|
|
17
17
|
@template_path = template_path
|
18
18
|
end
|
19
19
|
|
20
|
+
def latest_top_crashes
|
21
|
+
app_source = HockeyAppAppSource.new
|
22
|
+
app_source.configure
|
23
|
+
latest_top_crashes_with_app_source(app_source)
|
24
|
+
end
|
25
|
+
|
26
|
+
def latest_top_crashes_with_app_source(app_source)
|
27
|
+
latest_app = app_source.versions_for_bundle_identifier(@bundle_identifier).first
|
28
|
+
top_crashes(latest_app.version, latest_app.build)
|
29
|
+
end
|
30
|
+
|
20
31
|
# returns list of top crashes for the given build
|
21
32
|
def top_crashes(version, build)
|
22
33
|
@version = version
|
@@ -12,6 +12,11 @@ module Crep
|
|
12
12
|
raise 'AppSource subclass has to implement the `apps` method.'
|
13
13
|
end
|
14
14
|
|
15
|
+
# versions_for_bundle_identifier returns the versions for the first found app with the given bundle identifier
|
16
|
+
def versions_for_bundle_identifier(_bundle_identifier)
|
17
|
+
raise 'AppSource subclass has to implement the `versions_for_bundle_identifier` method.'
|
18
|
+
end
|
19
|
+
|
15
20
|
# versions returns the versions for the given app identifier
|
16
21
|
def versions(_app_identifier)
|
17
22
|
raise 'AppSource subclass has to implement the `versions` method.'
|
@@ -19,10 +19,31 @@ module Crep
|
|
19
19
|
@client.get_apps
|
20
20
|
end
|
21
21
|
|
22
|
-
def
|
23
|
-
apps =
|
22
|
+
def versions_for_bundle_identifier(bundle_identifier)
|
23
|
+
apps = apps_for_bundle_identifier(bundle_identifier)
|
24
|
+
|
25
|
+
raise("Unable to find app with bundle identifier: #{bundle_identifier}") unless apps.count.positive?
|
26
|
+
|
27
|
+
app = apps.first
|
28
|
+
app.versions.map do |version|
|
29
|
+
Crep::Version.new(version.shortversion, version.version, app.public_identifier.downcase)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
def apps_for_bundle_identifier(bundle_identifier)
|
34
|
+
@client.get_apps.select do |a|
|
35
|
+
a.bundle_identifier.casecmp(bundle_identifier.downcase).zero?
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
def apps_for_app_identifier(app_identifier)
|
40
|
+
@client.get_apps.select do |a|
|
24
41
|
a.public_identifier == app_identifier
|
25
42
|
end
|
43
|
+
end
|
44
|
+
|
45
|
+
def versions(app_identifier)
|
46
|
+
apps = apps_for_app_identifier(app_identifier)
|
26
47
|
|
27
48
|
raise("Unable to find app with identifier: #{app_identifier}") unless apps.count.positive?
|
28
49
|
|
@@ -36,19 +36,25 @@ module Crep
|
|
36
36
|
def crash_groups(version, show_only_unresolved)
|
37
37
|
reasons = version.crash_reasons('sort' => 'number_of_crashes', 'order' => 'desc')
|
38
38
|
unresolved_reasons = show_only_unresolved ? unresolved_reasons(reasons) : reasons
|
39
|
+
crashes_from_reasons(unresolved_reasons)
|
40
|
+
end
|
41
|
+
|
42
|
+
def crashes_from_reasons(unresolved_reasons)
|
39
43
|
unresolved_reasons.map do |reason|
|
40
|
-
|
41
|
-
deep_link = deep_link(app_id: reason.app.public_identifier, reason_id: reason.id)
|
42
|
-
Crash.new(file_line: "#{reason.file}:#{reason.line}",
|
43
|
-
occurrences: reason.number_of_crashes,
|
44
|
-
reason: reason.reason,
|
45
|
-
crash_class: reason.crash_class,
|
46
|
-
registered_at: Date.parse(reason.created_at),
|
47
|
-
deep_link: deep_link,
|
48
|
-
url: url)
|
44
|
+
crash_from_reason(reason)
|
49
45
|
end
|
50
46
|
end
|
51
47
|
|
48
|
+
def crash_from_reason(reason)
|
49
|
+
Crash.new(file_line: "#{reason.file}:#{reason.line}",
|
50
|
+
occurrences: reason.number_of_crashes,
|
51
|
+
reason: reason.reason,
|
52
|
+
crash_class: reason.crash_class,
|
53
|
+
registered_at: Date.parse(reason.created_at),
|
54
|
+
deep_link: deep_link(app_id: reason.app.public_identifier, reason_id: reason.id),
|
55
|
+
url: url(app_id: reason.app.public_identifier, version_id: version.id, reason_id: reason.id))
|
56
|
+
end
|
57
|
+
|
52
58
|
def url(app_id:, version_id:, reason_id:)
|
53
59
|
"https://rink.hockeyapp.net/manage/apps/#{app_id}/app_versions/#{version_id}/crash_reasons/#{reason_id}"
|
54
60
|
end
|
data/lib/crep/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: crep
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kim Dung-Pham
|
@@ -10,7 +10,7 @@ authors:
|
|
10
10
|
autorequire:
|
11
11
|
bindir: bin
|
12
12
|
cert_chain: []
|
13
|
-
date: 2018-08-
|
13
|
+
date: 2018-08-22 00:00:00.000000000 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: colorize
|
@@ -204,7 +204,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
204
204
|
version: '0'
|
205
205
|
requirements: []
|
206
206
|
rubyforge_project:
|
207
|
-
rubygems_version: 2.
|
207
|
+
rubygems_version: 2.7.7
|
208
208
|
signing_key:
|
209
209
|
specification_version: 4
|
210
210
|
summary: Create Crash Reports with ease.
|