diff options
| author | Dmitriy Zaporozhets <dzaporozhets@gitlab.com> | 2015-03-16 17:52:57 +0000 |
|---|---|---|
| committer | Dmitriy Zaporozhets <dzaporozhets@gitlab.com> | 2015-03-16 17:52:57 +0000 |
| commit | bc722a20289d2318db73513e2f7c16149c7e3e12 (patch) | |
| tree | 3278cbabbbeed5a63c68b10cc6a2b0faa637a85e /lib | |
| parent | f19eee9959bc89c6d9bbb4bf2e4b19158f5c7fd5 (diff) | |
| parent | 7929e8bf4d21b55f4b500b012c5201f947635ddb (diff) | |
| download | gitlab-shell-bc722a20289d2318db73513e2f7c16149c7e3e12.tar.gz | |
Merge branch 'post-receive-base64' into 'master'
Prevent character encoding issues by sending received changes as raw data.
Better alternative to !64 that doesn't require new gems and leaves dealing with string character encoding to gitlab-rails. See gitlab/gitlabhq!1701 for the corresponding changes there.
Fixes:
- https://github.com/gitlabhq/gitlabhq/issues/7486
- https://gitlab.com/gitlab-org/gitlab-ce/issues/858
- https://gitlab.com/gitlab-org/gitlab-ce/issues/877
- https://gitlab.com/gitlab-org/gitlab-ce/issues/965
See merge request !65
Diffstat (limited to 'lib')
| -rw-r--r-- | lib/gitlab_post_receive.rb | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/lib/gitlab_post_receive.rb b/lib/gitlab_post_receive.rb index 1c9e8a6..3c601ee 100644 --- a/lib/gitlab_post_receive.rb +++ b/lib/gitlab_post_receive.rb @@ -1,6 +1,7 @@ require_relative 'gitlab_init' require_relative 'gitlab_net' require 'json' +require 'base64' class GitlabPostReceive attr_reader :config, :repo_path, :changes @@ -70,8 +71,11 @@ class GitlabPostReceive end def update_redis + # Encode changes as base64 so we don't run into trouble with non-UTF-8 input. + changes = Base64.encode64(@changes) + queue = "#{config.redis_namespace}:queue:post_receive" - msg = JSON.dump({ 'class' => 'PostReceive', 'args' => [@repo_path, @actor, @changes] }) + msg = JSON.dump({ 'class' => 'PostReceive', 'args' => [@repo_path, @actor, changes] }) if system(*config.redis_command, 'rpush', queue, msg, err: '/dev/null', out: '/dev/null') return true |
