gurney_client 0.1.1 → 0.1.6
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/Gemfile +2 -4
- data/Gemfile.lock +10 -4
- data/README.md +2 -0
- data/lib/gurney/cli.rb +13 -9
- data/lib/gurney/cli/option_parser.rb +6 -1
- data/lib/gurney/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bb46098ee5a2a49bdccf9bb4d5db373b2ce5847ae1398f30fe2a676a9d732b07
|
4
|
+
data.tar.gz: 78b5b151888f590897f8869ae6d30788b4d4398ff122ef63525fd4048cb1bbd0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0e1bf0ed5a79b112999cd347f383de248a2fbb5ff0c85a0ef1250e19bafde7b089f6e94b04b19d1c39f17791b6db0cf452bceb03b2d43e2d60beb4cc940305ec
|
7
|
+
data.tar.gz: c007024b0dc4197d983c66ba8182f7847fb04b4af8650cc6597f30f5fee5f89f7cd3e0bf16d92bfa47af276edb0dfcf2545752d61370498887b63cfa66c917f0
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,3 +1,12 @@
|
|
1
|
+
PATH
|
2
|
+
remote: .
|
3
|
+
specs:
|
4
|
+
gurney_client (0.1.6)
|
5
|
+
bundler (< 3)
|
6
|
+
colorize (~> 0.8)
|
7
|
+
git (~> 1.5)
|
8
|
+
httparty (~> 0.17.1)
|
9
|
+
|
1
10
|
GEM
|
2
11
|
remote: https://rubygems.org/
|
3
12
|
specs:
|
@@ -30,11 +39,8 @@ PLATFORMS
|
|
30
39
|
ruby
|
31
40
|
|
32
41
|
DEPENDENCIES
|
33
|
-
bundler
|
34
42
|
byebug
|
35
|
-
|
36
|
-
git
|
37
|
-
httparty
|
43
|
+
gurney_client!
|
38
44
|
rspec
|
39
45
|
|
40
46
|
BUNDLED WITH
|
data/README.md
CHANGED
@@ -17,6 +17,8 @@ Usage: gurney [options]
|
|
17
17
|
Token to be send to the api in the X-AuthToken header
|
18
18
|
-c, --config [CONFIG FILE] Config file to use
|
19
19
|
-h, --hook Run as a git post-receive hook
|
20
|
+
--client-hook
|
21
|
+
Run as a git pre-push hook
|
20
22
|
-p, --project-id [PROJECT ID] Specify project id for api
|
21
23
|
--help
|
22
24
|
Prints this help
|
data/lib/gurney/cli.rb
CHANGED
@@ -4,12 +4,12 @@ require 'colorize'
|
|
4
4
|
require 'open3'
|
5
5
|
require 'git'
|
6
6
|
require 'fileutils'
|
7
|
-
require 'byebug'
|
8
7
|
|
9
8
|
module Gurney
|
10
9
|
class CLI
|
11
10
|
|
12
11
|
HOOK_STDIN_REGEX = /(?<old>[0-9a-f]{40}) (?<new>[0-9a-f]{40}) refs\/heads\/(?<ref>\w+)/m
|
12
|
+
CLIENT_HOOK_STDIN_REGEX = /refs\/heads\/(?<ref>\w+) (?<new>[0-9a-f]{40}) refs\/heads\/(?<remote_ref>\w+) (?<remote_sha>[0-9a-f]{40})/m
|
13
13
|
|
14
14
|
def self.run(cmd_parameter=[])
|
15
15
|
options = Gurney::CLI::OptionParser.parse(cmd_parameter)
|
@@ -31,6 +31,7 @@ module Gurney
|
|
31
31
|
config_file ||= '---'
|
32
32
|
config = Gurney::Config.from_yaml(config_file)
|
33
33
|
|
34
|
+
options.branches ||= config&.branches
|
34
35
|
options.branches ||= config&.branches
|
35
36
|
options.api_token ||= config&.api_token
|
36
37
|
options.api_url ||= config&.api_url
|
@@ -41,11 +42,12 @@ module Gurney
|
|
41
42
|
end
|
42
43
|
|
43
44
|
branches = []
|
44
|
-
if options.hook
|
45
|
+
if options.hook || options.client_hook
|
45
46
|
# we get passed changed branches and refs via stdin
|
46
47
|
$stdin.each_line do |line|
|
47
|
-
|
48
|
-
|
48
|
+
regex = options.client_hook ? CLIENT_HOOK_STDIN_REGEX : HOOK_STDIN_REGEX
|
49
|
+
matches = line.match(regex)
|
50
|
+
if matches && matches[:new] != '0' * 40
|
49
51
|
if options.branches.include? matches[:ref]
|
50
52
|
branches << matches[:ref]
|
51
53
|
end
|
@@ -63,10 +65,10 @@ module Gurney
|
|
63
65
|
branches.each do |branch|
|
64
66
|
dependencies = []
|
65
67
|
|
66
|
-
yarn_source = Gurney::Source::Yarn.new(yarn_lock: read_file(g, options.hook, branch, 'yarn.lock'))
|
68
|
+
yarn_source = Gurney::Source::Yarn.new(yarn_lock: read_file(g, options.hook || options.client_hook, branch, 'yarn.lock'))
|
67
69
|
dependencies.concat yarn_source.dependencies || []
|
68
70
|
|
69
|
-
bundler_source = Gurney::Source::Bundler.new(gemfile_lock: read_file(g, options.hook, branch, 'Gemfile.lock'))
|
71
|
+
bundler_source = Gurney::Source::Bundler.new(gemfile_lock: read_file(g, options.hook || options.client_hook, branch, 'Gemfile.lock'))
|
70
72
|
dependencies.concat bundler_source.dependencies || []
|
71
73
|
|
72
74
|
dependencies.compact!
|
@@ -87,7 +89,7 @@ module Gurney
|
|
87
89
|
puts e.message.red
|
88
90
|
rescue Exception => e
|
89
91
|
puts "Gurney: an unexpected error occurred".red
|
90
|
-
|
92
|
+
raise
|
91
93
|
end
|
92
94
|
end
|
93
95
|
|
@@ -95,8 +97,10 @@ module Gurney
|
|
95
97
|
|
96
98
|
def self.read_file(git, from_git, branch, filename)
|
97
99
|
if from_git
|
98
|
-
|
99
|
-
|
100
|
+
begin
|
101
|
+
git.show("#{branch}:#{filename}")
|
102
|
+
rescue Git::GitExecuteError
|
103
|
+
# happens if branch does not exist
|
100
104
|
end
|
101
105
|
else
|
102
106
|
if File.exists? filename
|
@@ -8,6 +8,7 @@ module Gurney
|
|
8
8
|
def self.parse(args)
|
9
9
|
options = OpenStruct.new
|
10
10
|
options.hook = false
|
11
|
+
options.client_hook = false
|
11
12
|
options.config_file = 'gurney.yml'
|
12
13
|
|
13
14
|
option_parser = ::OptionParser.new do |opts|
|
@@ -20,7 +21,7 @@ module Gurney
|
|
20
21
|
options.api_url = api_url
|
21
22
|
end
|
22
23
|
|
23
|
-
opts.on('', '--api-token [API TOKEN]', 'Token to be send to api in the X-AuthToken header') do |api_token|
|
24
|
+
opts.on('', '--api-token [API TOKEN]', 'Token to be send to the api in the X-AuthToken header') do |api_token|
|
24
25
|
options.api_token = api_token
|
25
26
|
end
|
26
27
|
|
@@ -32,6 +33,10 @@ module Gurney
|
|
32
33
|
options.hook = hook
|
33
34
|
end
|
34
35
|
|
36
|
+
opts.on('', '--client-hook', 'Run as a git pre-push hook') do |client_hook|
|
37
|
+
options.client_hook = client_hook
|
38
|
+
end
|
39
|
+
|
35
40
|
opts.on('-p', '--project-id [PROJECT ID]', 'Specify project id for api') do |project_id|
|
36
41
|
options.project_id = project_id
|
37
42
|
end
|
data/lib/gurney/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: gurney_client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.6
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Martin Schaflitzl
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-12-05 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: colorize
|