diff options
-rw-r--r-- | lib/api/internal.rb | 9 | ||||
-rw-r--r-- | spec/requests/api/internal_spec.rb | 10 |
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) |