Commit 6c8c9ff5 authored by Jacob Vosmaer's avatar Jacob Vosmaer

Bypass shell and use stdlib JSON for GitlabUpdate

parent e6802540
...@@ -48,12 +48,12 @@ class GitlabConfig ...@@ -48,12 +48,12 @@ class GitlabConfig
if redis.empty? if redis.empty?
# Default to old method of connecting to redis # Default to old method of connecting to redis
# for users that haven't updated their configuration # for users that haven't updated their configuration
"env -i redis-cli" %W(env -i redis-cli)
else else
if redis.has_key?("socket") if redis.has_key?("socket")
"#{redis['bin']} -s #{redis['socket']}" %W(#{redis['bin']} -s #{redis['socket']})
else else
"#{redis['bin']} -h #{redis['host']} -p #{redis['port']}" %W(#{redis['bin']} -h #{redis['host']} -p #{redis['port']})
end end
end end
end end
......
require_relative 'gitlab_init' require_relative 'gitlab_init'
require_relative 'gitlab_net' require_relative 'gitlab_net'
require 'json'
class GitlabUpdate class GitlabUpdate
attr_reader :config attr_reader :config
...@@ -53,7 +54,8 @@ class GitlabUpdate ...@@ -53,7 +54,8 @@ class GitlabUpdate
end end
def update_redis def update_redis
command = "#{config.redis_command} rpush '#{config.redis_namespace}:queue:post_receive' '{\"class\":\"PostReceive\",\"args\":[\"#{@repo_path}\",\"#{@oldrev}\",\"#{@newrev}\",\"#{@refname}\",\"#{@key_id}\"]}' > /dev/null 2>&1" queue = "#{config.redis_namespace}:queue:post_receive"
system(command) msg = JSON.dump({'class' => 'PostReceive', 'args' => [@repo_path, @oldrev, @newrev, @refname, @key_id]})
system(*config.redis_command, 'rpush', queue, msg, err: '/dev/null', out: '/dev/null')
end end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment