diff options
author | Jonathon Reinhart <Jonathon.Reinhart@gmail.com> | 2017-08-29 22:45:36 -0400 |
---|---|---|
committer | Jonathon Reinhart <Jonathon.Reinhart@gmail.com> | 2018-12-13 22:34:15 -0500 |
commit | 30a06eca35d38ac91c1f2beadb2443f37d28476b (patch) | |
tree | 1f0f5e4e1a9378948effa41be4e803e4b49811ba /lib | |
parent | 857e86a6e666b20679d5cb43ce85fe9576fea678 (diff) | |
download | gitlab-shell-30a06eca35d38ac91c1f2beadb2443f37d28476b.tar.gz |
Pass push options to GitLab /internal/post_receive API
push_opts[] is named as such so that it becomes an array in the
GitLab internal Grape::API params hash. If it were named push_opts, only
the final (scalar) push_opts parameter would be present.
Also update specs to include push_opts parameter:
- gitlab_post_receive_spec
- gitlab_net_spec for the internal API change
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gitlab_net.rb | 5 | ||||
-rw-r--r-- | lib/gitlab_post_receive.rb | 5 |
2 files changed, 6 insertions, 4 deletions
diff --git a/lib/gitlab_net.rb b/lib/gitlab_net.rb index cae3bdb..a0e1f12 100644 --- a/lib/gitlab_net.rb +++ b/lib/gitlab_net.rb @@ -119,11 +119,12 @@ class GitlabNet # rubocop:disable Metrics/ClassLength false end - def post_receive(gl_repository, identifier, changes) + def post_receive(gl_repository, identifier, changes, push_opts) params = { gl_repository: gl_repository, identifier: identifier, - changes: changes + changes: changes, + :"push_opts[]" => push_opts, # ruby <2.2 syntax } resp = post("#{internal_api_endpoint}/post_receive", params) diff --git a/lib/gitlab_post_receive.rb b/lib/gitlab_post_receive.rb index ea57f6a..5dd9955 100644 --- a/lib/gitlab_post_receive.rb +++ b/lib/gitlab_post_receive.rb @@ -8,18 +8,19 @@ require 'securerandom' class GitlabPostReceive attr_reader :config, :gl_repository, :repo_path, :changes, :jid - def initialize(gl_repository, repo_path, actor, changes) + def initialize(gl_repository, repo_path, actor, changes, push_opts) @config = GitlabConfig.new @gl_repository = gl_repository @repo_path = repo_path.strip @actor = actor @changes = changes + @push_opts = push_opts @jid = SecureRandom.hex(12) end def exec response = GitlabMetrics.measure("post-receive") do - api.post_receive(gl_repository, @actor, changes) + api.post_receive(gl_repository, @actor, changes, @push_opts) end return false unless response |