gurney_client 0.1.5 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: d1b5a52822bf58e6333d960e5739dbb97e00b74605f5ef07af5464538da358b2
4
- data.tar.gz: 78d0a40f7ec16c7c2f2237e87e6d034595d695014795340335c249e46e3ca7ca
3
+ metadata.gz: bb46098ee5a2a49bdccf9bb4d5db373b2ce5847ae1398f30fe2a676a9d732b07
4
+ data.tar.gz: 78b5b151888f590897f8869ae6d30788b4d4398ff122ef63525fd4048cb1bbd0
5
5
  SHA512:
6
- metadata.gz: 3ccb6713ff8ba9a73bc3ec14c01d3c9c2a9dd274b6db5a59ef49ac216b0716460818e55a3b97c44fe89230a056fc1c26b8b406facd845b6f966337db2f36a209
7
- data.tar.gz: 6598be0ef8c2ebc3624145f05006f22969451de23bf5f0ba812d6a857818c11723c5a816bbe1a4d13a7fcce6121fde025d0c01ae7353c686a1134ea115e4d877
6
+ metadata.gz: 0e1bf0ed5a79b112999cd347f383de248a2fbb5ff0c85a0ef1250e19bafde7b089f6e94b04b19d1c39f17791b6db0cf452bceb03b2d43e2d60beb4cc940305ec
7
+ data.tar.gz: c007024b0dc4197d983c66ba8182f7847fb04b4af8650cc6597f30f5fee5f89f7cd3e0bf16d92bfa47af276edb0dfcf2545752d61370498887b63cfa66c917f0
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- gurney_client (0.1.5)
4
+ gurney_client (0.1.6)
5
5
  bundler (< 3)
6
6
  colorize (~> 0.8)
7
7
  git (~> 1.5)
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
@@ -9,6 +9,7 @@ module Gurney
9
9
  class CLI
10
10
 
11
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
12
13
 
13
14
  def self.run(cmd_parameter=[])
14
15
  options = Gurney::CLI::OptionParser.parse(cmd_parameter)
@@ -30,6 +31,7 @@ module Gurney
30
31
  config_file ||= '---'
31
32
  config = Gurney::Config.from_yaml(config_file)
32
33
 
34
+ options.branches ||= config&.branches
33
35
  options.branches ||= config&.branches
34
36
  options.api_token ||= config&.api_token
35
37
  options.api_url ||= config&.api_url
@@ -40,10 +42,11 @@ module Gurney
40
42
  end
41
43
 
42
44
  branches = []
43
- if options.hook
45
+ if options.hook || options.client_hook
44
46
  # we get passed changed branches and refs via stdin
45
47
  $stdin.each_line do |line|
46
- matches = line.match(HOOK_STDIN_REGEX)
48
+ regex = options.client_hook ? CLIENT_HOOK_STDIN_REGEX : HOOK_STDIN_REGEX
49
+ matches = line.match(regex)
47
50
  if matches && matches[:new] != '0' * 40
48
51
  if options.branches.include? matches[:ref]
49
52
  branches << matches[:ref]
@@ -62,10 +65,10 @@ module Gurney
62
65
  branches.each do |branch|
63
66
  dependencies = []
64
67
 
65
- 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'))
66
69
  dependencies.concat yarn_source.dependencies || []
67
70
 
68
- 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'))
69
72
  dependencies.concat bundler_source.dependencies || []
70
73
 
71
74
  dependencies.compact!
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Gurney
2
- VERSION = "0.1.5"
2
+ VERSION = "0.1.6"
3
3
  end
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.5
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-27 00:00:00.000000000 Z
11
+ date: 2019-12-05 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: colorize