summaryrefslogtreecommitdiff
path: root/app/controllers
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2020-01-29 15:08:59 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2020-01-29 15:08:59 +0000
commit23288f62da73fb0e30d8e7ce306665e8fda1b932 (patch)
tree2baf1339e4d7c7c35d6b8a52cfb90597a5d4cdf1 /app/controllers
parent7cc6872401eb487ed20dbb9d455f8bb9c97d9e39 (diff)
downloadgitlab-ce-23288f62da73fb0e30d8e7ce306665e8fda1b932.tar.gz
Add latest changes from gitlab-org/gitlab@master
Diffstat (limited to 'app/controllers')
-rw-r--r--app/controllers/clusters/clusters_controller.rb3
-rw-r--r--app/controllers/projects/merge_requests/diffs_controller.rb4
-rw-r--r--app/controllers/projects/merge_requests_controller.rb9
-rw-r--r--app/controllers/projects/repositories_controller.rb22
4 files changed, 34 insertions, 4 deletions
diff --git a/app/controllers/clusters/clusters_controller.rb b/app/controllers/clusters/clusters_controller.rb
index 52a5f801bad..2c9ee69c8c4 100644
--- a/app/controllers/clusters/clusters_controller.rb
+++ b/app/controllers/clusters/clusters_controller.rb
@@ -12,9 +12,6 @@ class Clusters::ClustersController < Clusters::BaseController
before_action :authorize_update_cluster!, only: [:update]
before_action :authorize_admin_cluster!, only: [:destroy, :clear_cache]
before_action :update_applications_status, only: [:cluster_status]
- before_action only: [:show] do
- push_frontend_feature_flag(:enable_cluster_application_elastic_stack)
- end
helper_method :token_in_session
diff --git a/app/controllers/projects/merge_requests/diffs_controller.rb b/app/controllers/projects/merge_requests/diffs_controller.rb
index c0c8474232a..72e76f56540 100644
--- a/app/controllers/projects/merge_requests/diffs_controller.rb
+++ b/app/controllers/projects/merge_requests/diffs_controller.rb
@@ -64,6 +64,10 @@ class Projects::MergeRequests::DiffsController < Projects::MergeRequests::Applic
options = additional_attributes.merge(diff_view: diff_view)
+ if @merge_request.project.context_commits_enabled?
+ options[:context_commits] = @merge_request.context_commits
+ end
+
render json: DiffsSerializer.new(request).represent(diffs, options)
end
diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb
index 7cdda071813..e21930c9cfe 100644
--- a/app/controllers/projects/merge_requests_controller.rb
+++ b/app/controllers/projects/merge_requests_controller.rb
@@ -116,6 +116,15 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo
}
end
+ def context_commits
+ return render_404 unless project.context_commits_enabled?
+
+ # Get commits from repository
+ # or from cache if already merged
+ commits = ContextCommitsFinder.new(project, @merge_request, { search: params[:search], limit: params[:limit], offset: params[:offset] }).execute
+ render json: CommitEntity.represent(commits, { type: :full, request: merge_request })
+ end
+
def test_reports
reports_response(@merge_request.compare_test_reports)
end
diff --git a/app/controllers/projects/repositories_controller.rb b/app/controllers/projects/repositories_controller.rb
index 2ed29b937ad..19a8df3e9a5 100644
--- a/app/controllers/projects/repositories_controller.rb
+++ b/app/controllers/projects/repositories_controller.rb
@@ -81,7 +81,7 @@ class Projects::RepositoriesController < Projects::ApplicationController
def assign_archive_vars
if params[:id]
- @ref, @filename = extract_ref(params[:id])
+ @ref, @filename = extract_ref_and_filename(params[:id])
else
@ref = params[:ref]
@filename = nil
@@ -89,6 +89,26 @@ class Projects::RepositoriesController < Projects::ApplicationController
rescue InvalidPathError
render_404
end
+
+ # path can be of the form:
+ # master
+ # master/first.zip
+ # master/first/second.tar.gz
+ # master/first/second/third.zip
+ #
+ # In the archive case, we know that the last value is always the filename, so we
+ # do a greedy match to extract the ref. This avoid having to pull all ref names
+ # from Redis.
+ def extract_ref_and_filename(id)
+ path = id.strip
+ data = path.match(/(.*)\/(.*)/)
+
+ if data
+ [data[1], data[2]]
+ else
+ [path, nil]
+ end
+ end
end
Projects::RepositoriesController.prepend_if_ee('EE::Projects::RepositoriesController')