summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/api/internal.rb10
1 files changed, 9 insertions, 1 deletions
diff --git a/lib/api/internal.rb b/lib/api/internal.rb
index c85c01f87bb..654dbe8c4cb 100644
--- a/lib/api/internal.rb
+++ b/lib/api/internal.rb
@@ -12,10 +12,18 @@ module Gitlab
# ref - branch name
#
get "/allowed" do
+ # Check for *.wiki repositories.
+ # Strip out the .wiki from the pathname before finding the
+ # project. This applies the correct project permissions to
+ # the wiki repository as well.
+ project_path = params[:project]
+ project_path.gsub!(/\.wiki/,'') if project_path =~ /\.wiki/
+
key = Key.find(params[:key_id])
- project = Project.find_with_namespace(params[:project])
+ project = Project.find_with_namespace(project_path)
git_cmd = params[:action]
+
if key.is_deploy_key
project == key.project && git_cmd == 'git-upload-pack'
else