diff options
author | Robert Speicher <robert@gitlab.com> | 2017-04-03 20:05:15 +0000 |
---|---|---|
committer | Robert Speicher <robert@gitlab.com> | 2017-04-03 20:05:15 +0000 |
commit | 103a2a9ab94490722286cd8426668a9ce0749c29 (patch) | |
tree | 8bde238459ae46821b7f11b967dc117bea69c11c /lib | |
parent | 97c49b8426c62b5b398ed9a2bf863d859a4b7e55 (diff) | |
parent | 39753bfb9cdd77ed7fc1458afc202b126ea6984d (diff) | |
download | gitlab-ce-103a2a9ab94490722286cd8426668a9ce0749c29.tar.gz |
Merge branch 'feature/add-feature-flags-for-upload-receive-pack' into 'master'
Add feature flags for enabling (Upload|Receive)Pack
Closes gitaly#168
See merge request !10341
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gitlab/workhorse.rb | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/lib/gitlab/workhorse.rb b/lib/gitlab/workhorse.rb index d1131ad65e0..d0637f8b394 100644 --- a/lib/gitlab/workhorse.rb +++ b/lib/gitlab/workhorse.rb @@ -16,7 +16,7 @@ module Gitlab SECRET_LENGTH = 32 class << self - def git_http_ok(repository, user) + def git_http_ok(repository, user, action) repo_path = repository.path_to_repo params = { GL_ID: Gitlab::GlId.gl_id(user), @@ -26,13 +26,25 @@ module Gitlab if Gitlab.config.gitaly.enabled storage = repository.project.repository_storage address = Gitlab::GitalyClient.get_address(storage) - params[:GitalySocketPath] = URI(address).path # TODO: use GitalyClient code to assemble the Repository message params[:Repository] = Gitaly::Repository.new( path: repo_path, storage_name: storage, relative_path: Gitlab::RepoPath.strip_storage_path(repo_path), ).to_h + + feature_enabled = case action.to_s + when 'git_receive_pack' + Gitlab::GitalyClient.feature_enabled?(:post_receive_pack) + when 'git_upload_pack' + Gitlab::GitalyClient.feature_enabled?(:post_upload_pack) + when 'info_refs' + true + else + raise "Unsupported action: #{action}" + end + + params[:GitalySocketPath] = URI(address).path if feature_enabled end params |