summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/api/internal.rb9
-rw-r--r--spec/requests/api/internal_spec.rb10
2 files changed, 18 insertions, 1 deletions
diff --git a/lib/api/internal.rb b/lib/api/internal.rb
index e38736fc28b..c7705aeb59a 100644
--- a/lib/api/internal.rb
+++ b/lib/api/internal.rb
@@ -14,6 +14,14 @@ module API
# ref - branch name
# forced_push - forced_push
#
+
+ helpers do
+ def wiki
+ @wiki ||= params[:project].end_with?('.wiki') &&
+ !Project.find_with_namespace(params[:project])
+ end
+ end
+
post "/allowed" do
status 200
@@ -30,7 +38,6 @@ module API
# Strip out the .wiki from the pathname before finding the
# project. This applies the correct project permissions to
# the wiki repository as well.
- wiki = project_path.end_with?('.wiki')
project_path.chomp!('.wiki') if wiki
project = Project.find_with_namespace(project_path)
diff --git a/spec/requests/api/internal_spec.rb b/spec/requests/api/internal_spec.rb
index 8d0ae1475c2..d47474d761c 100644
--- a/spec/requests/api/internal_spec.rb
+++ b/spec/requests/api/internal_spec.rb
@@ -54,6 +54,16 @@ describe API::API, api: true do
project.team << [user, :developer]
end
+ context "git push with project.wiki" do
+ let(:project) { create(:project, name: 'my.wiki', path: 'my.wiki') }
+ it do
+ push(key, project)
+
+ expect(response.status).to eq(200)
+ expect(json_response["status"]).to be_truthy
+ end
+ end
+
context "git pull" do
it do
pull(key, project)