knapsack_pro 9.2.2 → 9.2.3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 53d7f0f50c7114a8e5cefd993a8ef8cb5fa05a6d36dd78cf8f9784884a6ac5d9
4
- data.tar.gz: 56366ca74436f87208e2a297941d00ec403589e0e6d0ed3759862d059b8b16bb
3
+ metadata.gz: a3330a86d699278a67d1523c197659a2a22921efe0df740c09d384d5721ae43f
4
+ data.tar.gz: c1a7821b44628a0f3c4e5d1f54b952221a53f66a5b48b917faea5d97093ce002
5
5
  SHA512:
6
- metadata.gz: 315e0df100e135cdd2646b546ce331291514c24d40f0ff88ea0a69f0d60842623cc35cb8f390a07b725c6b89ecbbebe61cf587a067728c2d2c59c99f531df4f0
7
- data.tar.gz: 8d51be76e65fce53d2cdae3c45359ad5ce1dcdfab0a48c6ccacef0fe4d85636879c2586d1f937853f7d3d7b4652846e182af4fa2a548d9e2405399a538695599
6
+ metadata.gz: f6d0259620d28ef1e3ff77a051464404f668ddc574a503dafa3b430fff6ecfd7414013f2973eaac2a00c189e1885693c4cb91407df11390cc83005220a22e692
7
+ data.tar.gz: 37c7dd08524763b60e8ba9e401a7092e3d4c0bf11979e499915da8756fbbafcd7c03765469c079aca33af09ee34566478e672c47846e117e9f5379178aca2864
@@ -43,18 +43,39 @@ module KnapsackPro
43
43
  private
44
44
 
45
45
  def git_commit_authors
46
- if KnapsackPro::Config::Env.ci? && shallow_repository?
47
- command = 'git fetch --shallow-since "one month ago" --quiet 2>/dev/null'
48
- begin
49
- Timeout.timeout(5) do
50
- `#{command}`
51
- end
52
- rescue Timeout::Error
53
- KnapsackPro.logger.debug("Skip the `#{command}` command because it took too long.")
54
- end
46
+ git_unshallow if KnapsackPro::Config::Env.ci? && shallow_repository?
47
+ `git log --since "one month ago" 2>/dev/null | git shortlog --summary --email 2>/dev/null`
48
+ end
49
+
50
+ def git_unshallow
51
+ args = ['git', 'fetch', '--quiet', '--shallow-since', 'one month ago']
52
+
53
+ begin
54
+ pid = Process.spawn(*args, [:out, :err] => File::NULL)
55
+ rescue StandardError => e
56
+ KnapsackPro.logger.debug("Failed to unshallow (#{args.join(' ')}): #{e.message}")
57
+ return
55
58
  end
56
59
 
57
- `git log --since "one month ago" 2>/dev/null | git shortlog --summary --email 2>/dev/null`
60
+ begin
61
+ Timeout.timeout(5) { safe_waitpid(pid) }
62
+ rescue Timeout::Error
63
+ safe_kill(pid)
64
+ Timeout.timeout(1) { safe_waitpid(pid) } rescue Timeout::Error
65
+ KnapsackPro.logger.debug("Failed to unshallow (#{args.join(' ')}) in 5 seconds")
66
+ end
67
+ end
68
+
69
+ def safe_waitpid(pid)
70
+ Process.waitpid(pid)
71
+ rescue Errno::ECHILD
72
+ nil
73
+ end
74
+
75
+ def safe_kill(pid)
76
+ Process.kill('KILL', pid)
77
+ rescue Errno::ESRCH
78
+ nil
58
79
  end
59
80
 
60
81
  def git_build_author
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module KnapsackPro
4
- VERSION = '9.2.2'
4
+ VERSION = '9.2.3'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: knapsack_pro
3
3
  version: !ruby/object:Gem::Version
4
- version: 9.2.2
4
+ version: 9.2.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - ArturT
@@ -23,6 +23,20 @@ dependencies:
23
23
  - - ">="
24
24
  - !ruby/object:Gem::Version
25
25
  version: '0'
26
+ - !ruby/object:Gem::Dependency
27
+ name: logger
28
+ requirement: !ruby/object:Gem::Requirement
29
+ requirements:
30
+ - - ">="
31
+ - !ruby/object:Gem::Version
32
+ version: '0'
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: !ruby/object:Gem::Requirement
36
+ requirements:
37
+ - - ">="
38
+ - !ruby/object:Gem::Version
39
+ version: '0'
26
40
  - !ruby/object:Gem::Dependency
27
41
  name: bundler
28
42
  requirement: !ruby/object:Gem::Requirement