Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-05-19 18:44:42 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-05-19 18:44:42 +0300
commit4555e1b21c365ed8303ffb7a3325d773c9b8bf31 (patch)
tree5423a1c7516cffe36384133ade12572cf709398d /app/controllers/projects
parente570267f2f6b326480d284e0164a6464ba4081bc (diff)
Add latest changes from gitlab-org/gitlab@13-12-stable-eev13.12.0-rc42
Diffstat (limited to 'app/controllers/projects')
-rw-r--r--app/controllers/projects/analytics/cycle_analytics/stages_controller.rb44
-rw-r--r--app/controllers/projects/analytics/cycle_analytics/value_streams_controller.rb16
-rw-r--r--app/controllers/projects/autocomplete_sources_controller.rb2
-rw-r--r--app/controllers/projects/blame_controller.rb2
-rw-r--r--app/controllers/projects/blob_controller.rb24
-rw-r--r--app/controllers/projects/boards_controller.rb1
-rw-r--r--app/controllers/projects/ci/pipeline_editor_controller.rb4
-rw-r--r--app/controllers/projects/commit_controller.rb6
-rw-r--r--app/controllers/projects/compare_controller.rb6
-rw-r--r--app/controllers/projects/environments_controller.rb2
-rw-r--r--app/controllers/projects/forks_controller.rb2
-rw-r--r--app/controllers/projects/group_links_controller.rb2
-rw-r--r--app/controllers/projects/hooks_controller.rb1
-rw-r--r--app/controllers/projects/imports_controller.rb2
-rw-r--r--app/controllers/projects/issues_controller.rb35
-rw-r--r--app/controllers/projects/logs_controller.rb2
-rw-r--r--app/controllers/projects/merge_requests/application_controller.rb2
-rw-r--r--app/controllers/projects/merge_requests/creations_controller.rb6
-rw-r--r--app/controllers/projects/merge_requests/diffs_controller.rb5
-rw-r--r--app/controllers/projects/merge_requests_controller.rb24
-rw-r--r--app/controllers/projects/milestones_controller.rb4
-rw-r--r--app/controllers/projects/mirrors_controller.rb2
-rw-r--r--app/controllers/projects/pages_controller.rb2
-rw-r--r--app/controllers/projects/pipelines_controller.rb39
-rw-r--r--app/controllers/projects/project_members_controller.rb2
-rw-r--r--app/controllers/projects/protected_branches_controller.rb2
-rw-r--r--app/controllers/projects/protected_refs_controller.rb2
-rw-r--r--app/controllers/projects/releases_controller.rb5
-rw-r--r--app/controllers/projects/repositories_controller.rb4
-rw-r--r--app/controllers/projects/runner_projects_controller.rb5
-rw-r--r--app/controllers/projects/runners_controller.rb15
-rw-r--r--app/controllers/projects/security/configuration_controller.rb2
-rw-r--r--app/controllers/projects/services_controller.rb48
-rw-r--r--app/controllers/projects/settings/ci_cd_controller.rb10
-rw-r--r--app/controllers/projects/settings/operations_controller.rb2
-rw-r--r--app/controllers/projects/settings/packages_and_registries_controller.rb23
-rw-r--r--app/controllers/projects/settings/repository_controller.rb2
-rw-r--r--app/controllers/projects/snippets_controller.rb4
-rw-r--r--app/controllers/projects/tags_controller.rb3
-rw-r--r--app/controllers/projects/wikis_controller.rb4
40 files changed, 242 insertions, 126 deletions
diff --git a/app/controllers/projects/analytics/cycle_analytics/stages_controller.rb b/app/controllers/projects/analytics/cycle_analytics/stages_controller.rb
new file mode 100644
index 00000000000..7b4f6739a9b
--- /dev/null
+++ b/app/controllers/projects/analytics/cycle_analytics/stages_controller.rb
@@ -0,0 +1,44 @@
+# frozen_string_literal: true
+
+class Projects::Analytics::CycleAnalytics::StagesController < Projects::ApplicationController
+ respond_to :json
+
+ feature_category :planning_analytics
+
+ before_action :authorize_read_cycle_analytics!
+ before_action :only_default_value_stream_is_allowed!
+
+ def index
+ result = list_service.execute
+
+ if result.success?
+ render json: cycle_analytics_configuration(result.payload[:stages])
+ else
+ render json: { message: result.message }, status: result.http_status
+ end
+ end
+
+ private
+
+ def only_default_value_stream_is_allowed!
+ render_404 if params[:value_stream_id] != Analytics::CycleAnalytics::Stages::BaseService::DEFAULT_VALUE_STREAM_NAME
+ end
+
+ def value_stream
+ Analytics::CycleAnalytics::ProjectValueStream.build_default_value_stream(@project)
+ end
+
+ def list_params
+ { value_stream: value_stream }
+ end
+
+ def list_service
+ Analytics::CycleAnalytics::Stages::ListService.new(parent: @project, current_user: current_user, params: list_params)
+ end
+
+ def cycle_analytics_configuration(stages)
+ stage_presenters = stages.map { |s| ::Analytics::CycleAnalytics::StagePresenter.new(s) }
+
+ Analytics::CycleAnalytics::ConfigurationEntity.new(stages: stage_presenters)
+ end
+end
diff --git a/app/controllers/projects/analytics/cycle_analytics/value_streams_controller.rb b/app/controllers/projects/analytics/cycle_analytics/value_streams_controller.rb
new file mode 100644
index 00000000000..03dcb164d94
--- /dev/null
+++ b/app/controllers/projects/analytics/cycle_analytics/value_streams_controller.rb
@@ -0,0 +1,16 @@
+# frozen_string_literal: true
+
+class Projects::Analytics::CycleAnalytics::ValueStreamsController < Projects::ApplicationController
+ respond_to :json
+
+ feature_category :planning_analytics
+
+ before_action :authorize_read_cycle_analytics!
+
+ def index
+ # FOSS users can only see the default value stream
+ value_streams = [Analytics::CycleAnalytics::ProjectValueStream.build_default_value_stream(@project)]
+
+ render json: Analytics::CycleAnalytics::ValueStreamSerializer.new.represent(value_streams)
+ end
+end
diff --git a/app/controllers/projects/autocomplete_sources_controller.rb b/app/controllers/projects/autocomplete_sources_controller.rb
index 001967b8bb4..7c419cac1cc 100644
--- a/app/controllers/projects/autocomplete_sources_controller.rb
+++ b/app/controllers/projects/autocomplete_sources_controller.rb
@@ -49,4 +49,4 @@ class Projects::AutocompleteSourcesController < Projects::ApplicationController
end
end
-Projects::AutocompleteSourcesController.prepend_if_ee('EE::Projects::AutocompleteSourcesController')
+Projects::AutocompleteSourcesController.prepend_mod_with('Projects::AutocompleteSourcesController')
diff --git a/app/controllers/projects/blame_controller.rb b/app/controllers/projects/blame_controller.rb
index 2c7c49b4250..1df7b9ed165 100644
--- a/app/controllers/projects/blame_controller.rb
+++ b/app/controllers/projects/blame_controller.rb
@@ -20,7 +20,7 @@ class Projects::BlameController < Projects::ApplicationController
environment_params = @repository.branch_exists?(@ref) ? { ref: @ref } : { commit: @commit }
environment_params[:find_latest] = true
- @environment = EnvironmentsByDeploymentsFinder.new(@project, current_user, environment_params).execute.last
+ @environment = ::Environments::EnvironmentsByDeploymentsFinder.new(@project, current_user, environment_params).execute.last
@blame = Gitlab::Blame.new(@blob, @commit)
@blame = Gitlab::View::Presenter::Factory.new(@blame, project: @project, path: @path).fabricate!
diff --git a/app/controllers/projects/blob_controller.rb b/app/controllers/projects/blob_controller.rb
index a398fc56a35..dbe628cb43a 100644
--- a/app/controllers/projects/blob_controller.rb
+++ b/app/controllers/projects/blob_controller.rb
@@ -31,19 +31,23 @@ class Projects::BlobController < Projects::ApplicationController
before_action :editor_variables, except: [:show, :preview, :diff]
before_action :validate_diff_params, only: :diff
before_action :set_last_commit_sha, only: [:edit, :update]
- before_action :record_experiment, only: :new
+ before_action :track_experiment, only: :create
track_redis_hll_event :create, :update, name: 'g_edit_by_sfe'
feature_category :source_code_management
+ before_action do
+ push_frontend_feature_flag(:refactor_blob_viewer, @project, default_enabled: :yaml)
+ end
+
def new
commit unless @repository.empty?
end
def create
create_commit(Files::CreateService, success_notice: _("The file has been successfully created."),
- success_path: -> { project_blob_path(@project, File.join(@branch_name, @file_path)) },
+ success_path: -> { create_success_path },
failure_view: :new,
failure_path: project_new_blob_path(@project, @ref))
end
@@ -214,7 +218,7 @@ class Projects::BlobController < Projects::ApplicationController
def show_html
environment_params = @repository.branch_exists?(@ref) ? { ref: @ref } : { commit: @commit }
environment_params[:find_latest] = true
- @environment = EnvironmentsByDeploymentsFinder.new(@project, current_user, environment_params).execute.last
+ @environment = ::Environments::EnvironmentsByDeploymentsFinder.new(@project, current_user, environment_params).execute.last
@last_commit = @repository.last_commit_for_path(@commit.id, @blob.path, literal_pathspec: true)
@code_navigation_path = Gitlab::CodeNavigationPath.new(@project, @blob.commit_id).full_json_path_for(@blob.path)
@@ -262,9 +266,17 @@ class Projects::BlobController < Projects::ApplicationController
current_user&.id
end
- def record_experiment
- return unless params[:file_name] == @project.ci_config_path_or_default && @project.namespace.recent?
+ def create_success_path
+ if params[:code_quality_walkthrough]
+ project_pipelines_path(@project, code_quality_walkthrough: true)
+ else
+ project_blob_path(@project, File.join(@branch_name, @file_path))
+ end
+ end
+
+ def track_experiment
+ return unless params[:code_quality_walkthrough]
- record_experiment_user(:ci_syntax_templates_b, namespace_id: @project.namespace_id)
+ experiment(:code_quality_walkthrough, namespace: @project.root_ancestor).track(:commit_created)
end
end
diff --git a/app/controllers/projects/boards_controller.rb b/app/controllers/projects/boards_controller.rb
index 349649c7b35..9a3e9437426 100644
--- a/app/controllers/projects/boards_controller.rb
+++ b/app/controllers/projects/boards_controller.rb
@@ -5,7 +5,6 @@ class Projects::BoardsController < Projects::ApplicationController
include IssuableCollections
before_action :check_issues_available!
- before_action :authorize_read_board!, only: [:index, :show]
before_action :assign_endpoint_vars
before_action do
push_frontend_feature_flag(:swimlanes_buffered_rendering, project, default_enabled: :yaml)
diff --git a/app/controllers/projects/ci/pipeline_editor_controller.rb b/app/controllers/projects/ci/pipeline_editor_controller.rb
index 754e2ccf4f9..6e31816bc99 100644
--- a/app/controllers/projects/ci/pipeline_editor_controller.rb
+++ b/app/controllers/projects/ci/pipeline_editor_controller.rb
@@ -3,11 +3,9 @@
class Projects::Ci::PipelineEditorController < Projects::ApplicationController
before_action :check_can_collaborate!
before_action do
- push_frontend_feature_flag(:ci_config_visualization_tab, @project, default_enabled: :yaml)
- push_frontend_feature_flag(:ci_config_merged_tab, @project, default_enabled: :yaml)
- push_frontend_feature_flag(:pipeline_status_for_pipeline_editor, @project, default_enabled: :yaml)
push_frontend_feature_flag(:pipeline_editor_empty_state_action, @project, default_enabled: :yaml)
push_frontend_feature_flag(:pipeline_editor_branch_switcher, @project, default_enabled: :yaml)
+ push_frontend_feature_flag(:pipeline_editor_drawer, @project, default_enabled: :yaml)
end
feature_category :pipeline_authoring
diff --git a/app/controllers/projects/commit_controller.rb b/app/controllers/projects/commit_controller.rb
index 0c3ff07bc76..863715429ff 100644
--- a/app/controllers/projects/commit_controller.rb
+++ b/app/controllers/projects/commit_controller.rb
@@ -24,7 +24,7 @@ class Projects::CommitController < Projects::ApplicationController
end
BRANCH_SEARCH_LIMIT = 1000
- COMMIT_DIFFS_PER_PAGE = 75
+ COMMIT_DIFFS_PER_PAGE = 20
feature_category :source_code_management
@@ -49,7 +49,7 @@ class Projects::CommitController < Projects::ApplicationController
end
def diff_files
- render json: { html: view_to_html_string('projects/commit/diff_files', diffs: @diffs, environment: @environment) }
+ render template: 'projects/commit/diff_files', layout: false, locals: { diffs: @diffs, environment: @environment }
end
# rubocop: disable CodeReuse/ActiveRecord
@@ -167,7 +167,7 @@ class Projects::CommitController < Projects::ApplicationController
@diffs = commit.diffs(opts)
@notes_count = commit.notes.count
- @environment = EnvironmentsByDeploymentsFinder.new(@project, current_user, commit: @commit, find_latest: true).execute.last
+ @environment = ::Environments::EnvironmentsByDeploymentsFinder.new(@project, current_user, commit: @commit, find_latest: true).execute.last
end
# rubocop: disable CodeReuse/ActiveRecord
diff --git a/app/controllers/projects/compare_controller.rb b/app/controllers/projects/compare_controller.rb
index 221bc16e256..28a87f83451 100644
--- a/app/controllers/projects/compare_controller.rb
+++ b/app/controllers/projects/compare_controller.rb
@@ -26,6 +26,10 @@ class Projects::CompareController < Projects::ApplicationController
feature_category :source_code_management
+ # Diffs may be pretty chunky, the less is better in this endpoint.
+ # Pagination design guides: https://design.gitlab.com/components/pagination/#behavior
+ COMMIT_DIFFS_PER_PAGE = 20
+
def index
end
@@ -132,7 +136,7 @@ class Projects::CompareController < Projects::ApplicationController
if compare
environment_params = source_project.repository.branch_exists?(head_ref) ? { ref: head_ref } : { commit: compare.commit }
environment_params[:find_latest] = true
- @environment = EnvironmentsByDeploymentsFinder.new(source_project, current_user, environment_params).execute.last
+ @environment = ::Environments::EnvironmentsByDeploymentsFinder.new(source_project, current_user, environment_params).execute.last
end
end
diff --git a/app/controllers/projects/environments_controller.rb b/app/controllers/projects/environments_controller.rb
index 92483607e65..76de9a83c87 100644
--- a/app/controllers/projects/environments_controller.rb
+++ b/app/controllers/projects/environments_controller.rb
@@ -264,4 +264,4 @@ class Projects::EnvironmentsController < Projects::ApplicationController
end
end
-Projects::EnvironmentsController.prepend_if_ee('EE::Projects::EnvironmentsController')
+Projects::EnvironmentsController.prepend_mod_with('Projects::EnvironmentsController')
diff --git a/app/controllers/projects/forks_controller.rb b/app/controllers/projects/forks_controller.rb
index 9fc8e8c063b..8fa3635a737 100644
--- a/app/controllers/projects/forks_controller.rb
+++ b/app/controllers/projects/forks_controller.rb
@@ -131,4 +131,4 @@ class Projects::ForksController < Projects::ApplicationController
end
end
-Projects::ForksController.prepend_if_ee('EE::Projects::ForksController')
+Projects::ForksController.prepend_mod_with('Projects::ForksController')
diff --git a/app/controllers/projects/group_links_controller.rb b/app/controllers/projects/group_links_controller.rb
index c6c90ffaba2..27893fe510d 100644
--- a/app/controllers/projects/group_links_controller.rb
+++ b/app/controllers/projects/group_links_controller.rb
@@ -60,4 +60,4 @@ class Projects::GroupLinksController < Projects::ApplicationController
end
end
-Projects::GroupLinksController.prepend_if_ee('EE::Projects::GroupLinksController')
+Projects::GroupLinksController.prepend_mod_with('Projects::GroupLinksController')
diff --git a/app/controllers/projects/hooks_controller.rb b/app/controllers/projects/hooks_controller.rb
index 8dabf3e640b..b87bfc58f8b 100644
--- a/app/controllers/projects/hooks_controller.rb
+++ b/app/controllers/projects/hooks_controller.rb
@@ -32,6 +32,7 @@ class Projects::HooksController < Projects::ApplicationController
end
def edit
+ redirect_to(action: :index) unless hook
end
def update
diff --git a/app/controllers/projects/imports_controller.rb b/app/controllers/projects/imports_controller.rb
index c8528ad6d28..3b3f9bdcf6b 100644
--- a/app/controllers/projects/imports_controller.rb
+++ b/app/controllers/projects/imports_controller.rb
@@ -81,4 +81,4 @@ class Projects::ImportsController < Projects::ApplicationController
end
end
-Projects::ImportsController.prepend_if_ee('EE::Projects::ImportsController')
+Projects::ImportsController.prepend_mod_with('Projects::ImportsController')
diff --git a/app/controllers/projects/issues_controller.rb b/app/controllers/projects/issues_controller.rb
index cae5cc411bc..01a6de76ba5 100644
--- a/app/controllers/projects/issues_controller.rb
+++ b/app/controllers/projects/issues_controller.rb
@@ -56,8 +56,6 @@ class Projects::IssuesController < Projects::ApplicationController
push_frontend_feature_flag(:confidential_notes, @project, default_enabled: :yaml)
push_frontend_feature_flag(:issue_assignees_widget, @project, default_enabled: :yaml)
- record_experiment_user(:invite_members_version_b)
-
experiment(:invite_members_in_comment, namespace: @project.root_ancestor) do |experiment_instance|
experiment_instance.exclude! unless helpers.can_import_members?
@@ -110,12 +108,12 @@ class Projects::IssuesController < Projects::ApplicationController
params[:issue] ||= ActionController::Parameters.new(
assignee_ids: ""
)
- build_params = issue_create_params.merge(
+ build_params = issue_params.merge(
merge_request_to_resolve_discussions_of: params[:merge_request_to_resolve_discussions_of],
discussion_to_resolve: params[:discussion_to_resolve],
- confidential: !!Gitlab::Utils.to_boolean(issue_create_params[:confidential])
+ confidential: !!Gitlab::Utils.to_boolean(issue_params[:confidential])
)
- service = ::Issues::BuildService.new(project, current_user, build_params)
+ service = ::Issues::BuildService.new(project: project, current_user: current_user, params: build_params)
@issue = @noteable = service.execute
@@ -130,12 +128,12 @@ class Projects::IssuesController < Projects::ApplicationController
end
def create
- create_params = issue_create_params.merge(spammable_params).merge(
+ create_params = issue_params.merge(spammable_params).merge(
merge_request_to_resolve_discussions_of: params[:merge_request_to_resolve_discussions_of],
discussion_to_resolve: params[:discussion_to_resolve]
)
- service = ::Issues::CreateService.new(project, current_user, create_params)
+ service = ::Issues::CreateService.new(project: project, current_user: current_user, params: create_params)
@issue = service.execute
create_vulnerability_issue_feedback(issue)
@@ -162,7 +160,7 @@ class Projects::IssuesController < Projects::ApplicationController
new_project = Project.find(params[:move_to_project_id])
return render_404 unless issue.can_move?(current_user, new_project)
- @issue = ::Issues::UpdateService.new(project, current_user, target_project: new_project).execute(issue)
+ @issue = ::Issues::UpdateService.new(project: project, current_user: current_user, params: { target_project: new_project }).execute(issue)
end
respond_to do |format|
@@ -176,7 +174,7 @@ class Projects::IssuesController < Projects::ApplicationController
end
def reorder
- service = ::Issues::ReorderService.new(project, current_user, reorder_params)
+ service = ::Issues::ReorderService.new(project: project, current_user: current_user, params: reorder_params)
if service.execute(issue)
head :ok
@@ -187,7 +185,7 @@ class Projects::IssuesController < Projects::ApplicationController
def related_branches
@related_branches = ::Issues::RelatedBranchesService
- .new(project, current_user)
+ .new(project: project, current_user: current_user)
.execute(issue)
.map { |branch| branch.merge(link: branch_link(branch)) }
@@ -215,7 +213,7 @@ class Projects::IssuesController < Projects::ApplicationController
def create_merge_request
create_params = params.slice(:branch_name, :ref).merge(issue_iid: issue.iid)
create_params[:target_project_id] = params[:target_project_id]
- result = ::MergeRequests::CreateFromIssueService.new(project, current_user, create_params).execute
+ result = ::MergeRequests::CreateFromIssueService.new(project: project, current_user: current_user, mr_params: create_params).execute
if result[:status] == :success
render json: MergeRequestCreateSerializer.new.represent(result[:merge_request])
@@ -316,17 +314,8 @@ class Projects::IssuesController < Projects::ApplicationController
task_num
lock_version
discussion_locked
- ] + [{ label_ids: [], assignee_ids: [], update_task: [:index, :checked, :line_number, :line_source] }]
- end
-
- def issue_create_params
- create_params = %i[
issue_type
- ]
-
- params.require(:issue).permit(
- *create_params
- ).merge(issue_params)
+ ] + [{ label_ids: [], assignee_ids: [], update_task: [:index, :checked, :line_number, :line_source] }]
end
def reorder_params
@@ -345,7 +334,7 @@ class Projects::IssuesController < Projects::ApplicationController
def update_service
update_params = issue_params.merge(spammable_params)
- ::Issues::UpdateService.new(project, current_user, update_params)
+ ::Issues::UpdateService.new(project: project, current_user: current_user, params: update_params)
end
def finder_type
@@ -402,4 +391,4 @@ class Projects::IssuesController < Projects::ApplicationController
def create_vulnerability_issue_feedback(issue); end
end
-Projects::IssuesController.prepend_if_ee('EE::Projects::IssuesController')
+Projects::IssuesController.prepend_mod_with('Projects::IssuesController')
diff --git a/app/controllers/projects/logs_controller.rb b/app/controllers/projects/logs_controller.rb
index f9b8091a419..a4bdbc827e0 100644
--- a/app/controllers/projects/logs_controller.rb
+++ b/app/controllers/projects/logs_controller.rb
@@ -58,7 +58,7 @@ module Projects
def environment
strong_memoize(:environment) do
if cluster_params.key?(:environment_name)
- EnvironmentsFinder.new(project, current_user, name: cluster_params[:environment_name]).execute.first
+ ::Environments::EnvironmentsFinder.new(project, current_user, name: cluster_params[:environment_name]).execute.first
else
project.default_environment
end
diff --git a/app/controllers/projects/merge_requests/application_controller.rb b/app/controllers/projects/merge_requests/application_controller.rb
index e74717a44ab..78170fab7a7 100644
--- a/app/controllers/projects/merge_requests/application_controller.rb
+++ b/app/controllers/projects/merge_requests/application_controller.rb
@@ -65,4 +65,4 @@ class Projects::MergeRequests::ApplicationController < Projects::ApplicationCont
end
end
-Projects::MergeRequests::ApplicationController.prepend_if_ee('EE::Projects::MergeRequests::ApplicationController')
+Projects::MergeRequests::ApplicationController.prepend_mod_with('Projects::MergeRequests::ApplicationController')
diff --git a/app/controllers/projects/merge_requests/creations_controller.rb b/app/controllers/projects/merge_requests/creations_controller.rb
index dc77b5e09c8..9f1e2d8236a 100644
--- a/app/controllers/projects/merge_requests/creations_controller.rb
+++ b/app/controllers/projects/merge_requests/creations_controller.rb
@@ -19,7 +19,7 @@ class Projects::MergeRequests::CreationsController < Projects::MergeRequests::Ap
end
def create
- @merge_request = ::MergeRequests::CreateService.new(project, current_user, merge_request_params).execute
+ @merge_request = ::MergeRequests::CreateService.new(project: project, current_user: current_user, params: merge_request_params).execute
if @merge_request.valid?
incr_count_webide_merge_request
@@ -93,7 +93,7 @@ class Projects::MergeRequests::CreationsController < Projects::MergeRequests::Ap
# Gitaly N+1 issue: https://gitlab.com/gitlab-org/gitlab-foss/issues/58096
Gitlab::GitalyClient.allow_n_plus_1_calls do
- @merge_request = ::MergeRequests::BuildService.new(project, current_user, merge_request_params.merge(diff_options: diff_options)).execute
+ @merge_request = ::MergeRequests::BuildService.new(project: project, current_user: current_user, params: merge_request_params.merge(diff_options: diff_options)).execute
end
end
@@ -141,4 +141,4 @@ class Projects::MergeRequests::CreationsController < Projects::MergeRequests::Ap
end
end
-Projects::MergeRequests::CreationsController.prepend_ee_mod
+Projects::MergeRequests::CreationsController.prepend_mod
diff --git a/app/controllers/projects/merge_requests/diffs_controller.rb b/app/controllers/projects/merge_requests/diffs_controller.rb
index 98ef9d918ae..3eaabfbf33e 100644
--- a/app/controllers/projects/merge_requests/diffs_controller.rb
+++ b/app/controllers/projects/merge_requests/diffs_controller.rb
@@ -47,7 +47,7 @@ class Projects::MergeRequests::DiffsController < Projects::MergeRequests::Applic
diffs = @compare.diffs(diff_options)
render json: DiffsMetadataSerializer.new(project: @merge_request.project, current_user: current_user)
- .represent(diffs, additional_attributes)
+ .represent(diffs, additional_attributes.merge(only_context_commits: show_only_context_commits?))
end
private
@@ -92,7 +92,7 @@ class Projects::MergeRequests::DiffsController < Projects::MergeRequests::Applic
# rubocop: disable CodeReuse/ActiveRecord
def commit
return unless commit_id = params[:commit_id].presence
- return unless @merge_request.all_commits.exists?(sha: commit_id)
+ return unless @merge_request.all_commits.exists?(sha: commit_id) || @merge_request.recent_context_commits.map(&:id).include?(commit_id)
@commit ||= @project.commit(commit_id)
end
@@ -122,6 +122,7 @@ class Projects::MergeRequests::DiffsController < Projects::MergeRequests::Applic
end
end
+ return @merge_request.context_commits_diff if show_only_context_commits? && !@merge_request.context_commits_diff.empty?
return @merge_request.merge_head_diff if render_merge_ref_head_diff?
if @start_sha
diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb
index 4e409b5f28f..613faa200d1 100644
--- a/app/controllers/projects/merge_requests_controller.rb
+++ b/app/controllers/projects/merge_requests_controller.rb
@@ -42,11 +42,11 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo
push_frontend_feature_flag(:confidential_notes, @project, default_enabled: :yaml)
push_frontend_feature_flag(:usage_data_i_testing_summary_widget_total, @project, default_enabled: :yaml)
push_frontend_feature_flag(:improved_emoji_picker, project, default_enabled: :yaml)
+ push_frontend_feature_flag(:diffs_virtual_scrolling, project, default_enabled: :yaml)
# Usage data feature flags
push_frontend_feature_flag(:users_expanding_widgets_usage_data, @project, default_enabled: :yaml)
-
- record_experiment_user(:invite_members_version_b)
+ push_frontend_feature_flag(:diff_settings_usage_data, default_enabled: :yaml)
experiment(:invite_members_in_comment, namespace: @project.root_ancestor) do |experiment_instance|
experiment_instance.exclude! unless helpers.can_import_members?
@@ -60,6 +60,7 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo
before_action do
push_frontend_feature_flag(:mr_collapsed_approval_rules, @project)
+ push_frontend_feature_flag(:show_relevant_approval_rule_approvers, @project, default_enabled: :yaml)
end
around_action :allow_gitaly_ref_name_caching, only: [:index, :show, :discussions]
@@ -114,6 +115,7 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo
@noteable = @merge_request
@commits_count = @merge_request.commits_count + @merge_request.context_commits_count
+ @diffs_count = get_diffs_count
@issuable_sidebar = serializer.represent(@merge_request, serializer: 'sidebar')
@current_user_data = UserSerializer.new(project: @project).represent(current_user, {}, MergeRequestCurrentUserEntity).to_json
@show_whitespace_default = current_user.nil? || current_user.show_whitespace_in_diffs
@@ -244,7 +246,7 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo
end
def update
- @merge_request = ::MergeRequests::UpdateService.new(project, current_user, merge_request_update_params).execute(@merge_request)
+ @merge_request = ::MergeRequests::UpdateService.new(project: project, current_user: current_user, params: merge_request_update_params).execute(@merge_request)
respond_to do |format|
format.html do
@@ -273,7 +275,7 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo
def remove_wip
@merge_request = ::MergeRequests::UpdateService
- .new(project, current_user, wip_event: 'unwip')
+ .new(project: project, current_user: current_user, params: { wip_event: 'unwip' })
.execute(@merge_request)
render json: serialize_widget(@merge_request)
@@ -308,7 +310,7 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo
end
def assign_related_issues
- result = ::MergeRequests::AssignIssuesService.new(project, current_user, merge_request: @merge_request).execute
+ result = ::MergeRequests::AssignIssuesService.new(project: project, current_user: current_user, params: { merge_request: @merge_request }).execute
case result[:count]
when 0
@@ -386,6 +388,14 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo
private
+ def get_diffs_count
+ if show_only_context_commits?
+ @merge_request.context_commits_diff.raw_diffs.size
+ else
+ @merge_request.diff_size
+ end
+ end
+
def merge_request_update_params
merge_request_params.merge!(params.permit(:merge_request_diff_head_sha))
end
@@ -412,7 +422,7 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo
return :failed
end
- merge_service = ::MergeRequests::MergeService.new(@project, current_user, merge_params)
+ merge_service = ::MergeRequests::MergeService.new(project: @project, current_user: current_user, params: merge_params)
unless merge_service.hooks_validation_pass?(@merge_request)
return :hook_validation_error
@@ -525,4 +535,4 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo
end
end
-Projects::MergeRequestsController.prepend_if_ee('EE::Projects::MergeRequestsController')
+Projects::MergeRequestsController.prepend_mod_with('Projects::MergeRequestsController')
diff --git a/app/controllers/projects/milestones_controller.rb b/app/controllers/projects/milestones_controller.rb
index dcd3c49441e..dcdda18784d 100644
--- a/app/controllers/projects/milestones_controller.rb
+++ b/app/controllers/projects/milestones_controller.rb
@@ -39,7 +39,7 @@ class Projects::MilestonesController < Projects::ApplicationController
end
def new
- @milestone = @project.milestones.new
+ @noteable = @milestone = @project.milestones.new
respond_with(@milestone)
end
@@ -125,7 +125,7 @@ class Projects::MilestonesController < Projects::ApplicationController
# rubocop: disable CodeReuse/ActiveRecord
def milestone
- @milestone ||= @project.milestones.find_by!(iid: params[:id])
+ @noteable = @milestone ||= @project.milestones.find_by!(iid: params[:id])
end
# rubocop: enable CodeReuse/ActiveRecord
diff --git a/app/controllers/projects/mirrors_controller.rb b/app/controllers/projects/mirrors_controller.rb
index 01abb72fc86..bcb6b574d5a 100644
--- a/app/controllers/projects/mirrors_controller.rb
+++ b/app/controllers/projects/mirrors_controller.rb
@@ -94,4 +94,4 @@ class Projects::MirrorsController < Projects::ApplicationController
end
end
-Projects::MirrorsController.prepend_if_ee('EE::Projects::MirrorsController')
+Projects::MirrorsController.prepend_mod_with('Projects::MirrorsController')
diff --git a/app/controllers/projects/pages_controller.rb b/app/controllers/projects/pages_controller.rb
index 0aac517e3e3..4bd33882eee 100644
--- a/app/controllers/projects/pages_controller.rb
+++ b/app/controllers/projects/pages_controller.rb
@@ -55,4 +55,4 @@ class Projects::PagesController < Projects::ApplicationController
end
end
-Projects::PagesController.prepend_if_ee('EE::Projects::PagesController')
+Projects::PagesController.prepend_mod_with('Projects::PagesController')
diff --git a/app/controllers/projects/pipelines_controller.rb b/app/controllers/projects/pipelines_controller.rb
index 9f326ef59f5..0de8dc597ae 100644
--- a/app/controllers/projects/pipelines_controller.rb
+++ b/app/controllers/projects/pipelines_controller.rb
@@ -13,14 +13,12 @@ class Projects::PipelinesController < Projects::ApplicationController
before_action :authorize_create_pipeline!, only: [:new, :create, :config_variables]
before_action :authorize_update_pipeline!, only: [:retry, :cancel]
before_action do
- push_frontend_feature_flag(:new_pipeline_form, project, default_enabled: :yaml)
push_frontend_feature_flag(:pipeline_graph_layers_view, project, type: :development, default_enabled: :yaml)
push_frontend_feature_flag(:pipeline_filter_jobs, project, default_enabled: :yaml)
push_frontend_feature_flag(:graphql_pipeline_details, project, type: :development, default_enabled: :yaml)
push_frontend_feature_flag(:graphql_pipeline_details_users, current_user, type: :development, default_enabled: :yaml)
- push_frontend_feature_flag(:jira_for_vulnerabilities, project, type: :development, default_enabled: :yaml)
end
- before_action :ensure_pipeline, only: [:show]
+ before_action :ensure_pipeline, only: [:show, :downloadable_artifacts]
# Will be removed with https://gitlab.com/gitlab-org/gitlab/-/issues/225596
before_action :redirect_for_legacy_scope_filter, only: [:index], if: -> { request.format.html? }
@@ -33,7 +31,12 @@ class Projects::PipelinesController < Projects::ApplicationController
POLLING_INTERVAL = 10_000
- feature_category :continuous_integration
+ feature_category :continuous_integration, [
+ :charts, :show, :config_variables, :stage, :cancel, :retry,
+ :builds, :dag, :failures, :status, :downloadable_artifacts,
+ :index, :create, :new, :destroy
+ ]
+ feature_category :code_testing, [:test_report]
def index
@pipelines = Ci::PipelinesFinder
@@ -55,6 +58,17 @@ class Projects::PipelinesController < Projects::ApplicationController
e.try {}
e.track(:view, value: project.namespace_id)
end
+ experiment(:code_quality_walkthrough, namespace: project.root_ancestor) do |e|
+ e.exclude! unless current_user
+ e.exclude! unless can?(current_user, :create_pipeline, project)
+ e.exclude! unless project.root_ancestor.recent?
+ e.exclude! if @pipelines_count.to_i > 0
+ e.exclude! if helpers.has_gitlab_ci?(project)
+
+ e.use {}
+ e.try {}
+ e.track(:view, property: project.root_ancestor.id.to_s)
+ end
end
format.json do
Gitlab::PollingInterval.set_header(response, interval: POLLING_INTERVAL)
@@ -162,7 +176,11 @@ class Projects::PipelinesController < Projects::ApplicationController
end
def retry
- pipeline.retry_failed(current_user)
+ if Gitlab::Ci::Features.background_pipeline_retry_endpoint?(@project)
+ ::Ci::RetryPipelineWorker.perform_async(pipeline.id, current_user.id) # rubocop:disable CodeReuse/Worker
+ else
+ pipeline.retry_failed(current_user)
+ end
respond_to do |format|
format.html do
@@ -206,13 +224,20 @@ class Projects::PipelinesController < Projects::ApplicationController
end
end
+ def downloadable_artifacts
+ render json: Ci::DownloadableArtifactSerializer.new(
+ project: project,
+ current_user: current_user
+ ).represent(@pipeline)
+ end
+
private
def serialize_pipelines
PipelineSerializer
.new(project: @project, current_user: @current_user)
.with_pagination(request, response)
- .represent(@pipelines, disable_coverage: true, preload: true)
+ .represent(@pipelines, disable_coverage: true, preload: true, code_quality_walkthrough: params[:code_quality_walkthrough].present?)
end
def render_show
@@ -298,4 +323,4 @@ class Projects::PipelinesController < Projects::ApplicationController
end
end
-Projects::PipelinesController.prepend_if_ee('EE::Projects::PipelinesController')
+Projects::PipelinesController.prepend_mod_with('Projects::PipelinesController')
diff --git a/app/controllers/projects/project_members_controller.rb b/app/controllers/projects/project_members_controller.rb
index 5972b29a298..cc2157a7d51 100644
--- a/app/controllers/projects/project_members_controller.rb
+++ b/app/controllers/projects/project_members_controller.rb
@@ -64,4 +64,4 @@ class Projects::ProjectMembersController < Projects::ApplicationController
end
end
-Projects::ProjectMembersController.prepend_if_ee('EE::Projects::ProjectMembersController')
+Projects::ProjectMembersController.prepend_mod_with('Projects::ProjectMembersController')
diff --git a/app/controllers/projects/protected_branches_controller.rb b/app/controllers/projects/protected_branches_controller.rb
index 84b155c8002..8c70ef446a2 100644
--- a/app/controllers/projects/protected_branches_controller.rb
+++ b/app/controllers/projects/protected_branches_controller.rb
@@ -29,4 +29,4 @@ class Projects::ProtectedBranchesController < Projects::ProtectedRefsController
end
end
-Projects::ProtectedBranchesController.prepend_if_ee('EE::Projects::ProtectedBranchesController')
+Projects::ProtectedBranchesController.prepend_mod_with('Projects::ProtectedBranchesController')
diff --git a/app/controllers/projects/protected_refs_controller.rb b/app/controllers/projects/protected_refs_controller.rb
index 4cba1a75330..abbfe9ce22a 100644
--- a/app/controllers/projects/protected_refs_controller.rb
+++ b/app/controllers/projects/protected_refs_controller.rb
@@ -68,4 +68,4 @@ class Projects::ProtectedRefsController < Projects::ApplicationController
end
end
-Projects::ProtectedRefsController.prepend_if_ee('EE::Projects::ProtectedRefsController')
+Projects::ProtectedRefsController.prepend_mod_with('Projects::ProtectedRefsController')
diff --git a/app/controllers/projects/releases_controller.rb b/app/controllers/projects/releases_controller.rb
index 26382856761..1bb50eabd1d 100644
--- a/app/controllers/projects/releases_controller.rb
+++ b/app/controllers/projects/releases_controller.rb
@@ -8,11 +8,6 @@ class Projects::ReleasesController < Projects::ApplicationController
# We have to check `download_code` permission because detail URL path
# contains git-tag name.
before_action :authorize_download_code!, except: [:index]
- before_action do
- push_frontend_feature_flag(:graphql_release_data, project, default_enabled: true)
- push_frontend_feature_flag(:graphql_milestone_stats, project, default_enabled: true)
- push_frontend_feature_flag(:graphql_releases_page, project, default_enabled: true)
- end
before_action :authorize_update_release!, only: %i[edit update]
before_action :authorize_create_release!, only: :new
diff --git a/app/controllers/projects/repositories_controller.rb b/app/controllers/projects/repositories_controller.rb
index da018b24836..8f64a8aa1d3 100644
--- a/app/controllers/projects/repositories_controller.rb
+++ b/app/controllers/projects/repositories_controller.rb
@@ -35,7 +35,7 @@ class Projects::RepositoriesController < Projects::ApplicationController
return if archive_not_modified?
send_git_archive @repository, **repo_params
- rescue => ex
+ rescue StandardError => ex
logger.error("#{self.class.name}: #{ex}")
git_not_found!
end
@@ -127,4 +127,4 @@ class Projects::RepositoriesController < Projects::ApplicationController
end
end
-Projects::RepositoriesController.prepend_if_ee('EE::Projects::RepositoriesController')
+Projects::RepositoriesController.prepend_mod_with('Projects::RepositoriesController')
diff --git a/app/controllers/projects/runner_projects_controller.rb b/app/controllers/projects/runner_projects_controller.rb
index d225d5e104c..fa6adc9431d 100644
--- a/app/controllers/projects/runner_projects_controller.rb
+++ b/app/controllers/projects/runner_projects_controller.rb
@@ -17,7 +17,10 @@ class Projects::RunnerProjectsController < Projects::ApplicationController
if @runner.assign_to(project, current_user)
redirect_to path
else
- redirect_to path, alert: 'Failed adding runner to project'
+ assign_to_messages = @runner.errors.messages[:assign_to]
+ alert = assign_to_messages&.join(',') || 'Failed adding runner to project'
+
+ redirect_to path, alert: alert
end
end
diff --git a/app/controllers/projects/runners_controller.rb b/app/controllers/projects/runners_controller.rb
index b7a5a63e642..ec1f57f090a 100644
--- a/app/controllers/projects/runners_controller.rb
+++ b/app/controllers/projects/runners_controller.rb
@@ -48,28 +48,17 @@ class Projects::RunnersController < Projects::ApplicationController
end
def show
- render 'shared/runners/show'
end
def toggle_shared_runners
if !project.shared_runners_enabled && project.group && project.group.shared_runners_setting == 'disabled_and_unoverridable'
-
- if Feature.enabled?(:vueify_shared_runners_toggle, @project)
- render json: { error: _('Cannot enable shared runners because parent group does not allow it') }, status: :unauthorized
- else
- redirect_to project_runners_path(@project), alert: _('Cannot enable shared runners because parent group does not allow it')
- end
-
+ render json: { error: _('Cannot enable shared runners because parent group does not allow it') }, status: :unauthorized
return
end
project.toggle!(:shared_runners_enabled)
- if Feature.enabled?(:vueify_shared_runners_toggle, @project)
- render json: {}, status: :ok
- else
- redirect_to project_settings_ci_cd_path(@project, anchor: 'js-runners-settings')
- end
+ render json: {}, status: :ok
end
def toggle_group_runners
diff --git a/app/controllers/projects/security/configuration_controller.rb b/app/controllers/projects/security/configuration_controller.rb
index bc4e58e54a9..19de157357a 100644
--- a/app/controllers/projects/security/configuration_controller.rb
+++ b/app/controllers/projects/security/configuration_controller.rb
@@ -14,4 +14,4 @@ module Projects
end
end
-Projects::Security::ConfigurationController.prepend_if_ee('EE::Projects::Security::ConfigurationController')
+Projects::Security::ConfigurationController.prepend_mod_with('Projects::Security::ConfigurationController')
diff --git a/app/controllers/projects/services_controller.rb b/app/controllers/projects/services_controller.rb
index ccb8b393bfe..74145a70b95 100644
--- a/app/controllers/projects/services_controller.rb
+++ b/app/controllers/projects/services_controller.rb
@@ -1,19 +1,16 @@
# frozen_string_literal: true
class Projects::ServicesController < Projects::ApplicationController
- include ServiceParams
+ include Integrations::Params
include InternalRedirect
# Authorize
before_action :authorize_admin_project!
before_action :ensure_service_enabled
- before_action :service
+ before_action :integration
before_action :web_hook_logs, only: [:edit, :update]
before_action :set_deprecation_notice_for_prometheus_service, only: [:edit, :update]
before_action :redirect_deprecated_prometheus_service, only: [:update]
- before_action only: :edit do
- push_frontend_feature_flag(:jira_for_vulnerabilities, @project, type: :development, default_enabled: :yaml)
- end
respond_to :html
@@ -22,20 +19,19 @@ class Projects::ServicesController < Projects::ApplicationController
feature_category :integrations
def edit
- @default_integration = Service.default_integration(service.type, project)
+ @default_integration = Integration.default_integration(service.type, project)
end
def update
- @service.attributes = service_params[:service]
- @service.inherit_from_id = nil if service_params[:service][:inherit_from_id].blank?
+ @integration.attributes = integration_params[:integration]
+ @integration.inherit_from_id = nil if integration_params[:integration][:inherit_from_id].blank?
- saved = @service.save(context: :manual_change)
+ saved = @integration.save(context: :manual_change)
respond_to do |format|
format.html do
if saved
- target_url = safe_redirect_path(params[:redirect_to]).presence || edit_project_service_path(@project, @service)
- redirect_to target_url, notice: success_message
+ redirect_to redirect_path, notice: success_message
else
render 'edit'
end
@@ -50,7 +46,7 @@ class Projects::ServicesController < Projects::ApplicationController
end
def test
- if @service.can_test?
+ if integration.can_test?
render json: service_test_response, status: :ok
else
render json: {}, status: :not_found
@@ -59,12 +55,16 @@ class Projects::ServicesController < Projects::ApplicationController
private
+ def redirect_path
+ safe_redirect_path(params[:redirect_to]).presence || edit_project_service_path(@project, @integration)
+ end
+
def service_test_response
- unless @service.update(service_params[:service])
- return { error: true, message: _('Validations failed.'), service_response: @service.errors.full_messages.join(','), test_failed: false }
+ unless @integration.update(integration_params[:integration])
+ return { error: true, message: _('Validations failed.'), service_response: @integration.errors.full_messages.join(','), test_failed: false }
end
- result = ::Integrations::Test::ProjectService.new(@service, current_user, params[:event]).execute
+ result = ::Integrations::Test::ProjectService.new(@integration, current_user, params[:event]).execute
unless result[:success]
return { error: true, message: s_('Integrations|Connection failed. Please check your settings.'), service_response: result[:message].to_s, test_failed: true }
@@ -76,16 +76,18 @@ class Projects::ServicesController < Projects::ApplicationController
end
def success_message
- if @service.active?
- s_('Integrations|%{integration} settings saved and active.') % { integration: @service.title }
+ if integration.active?
+ s_('Integrations|%{integration} settings saved and active.') % { integration: integration.title }
else
- s_('Integrations|%{integration} settings saved, but not active.') % { integration: @service.title }
+ s_('Integrations|%{integration} settings saved, but not active.') % { integration: integration.title }
end
end
- def service
- @service ||= @project.find_or_initialize_service(params[:id])
+ def integration
+ @integration ||= @project.find_or_initialize_service(params[:id])
+ @service ||= @integration # TODO: remove references to @service
end
+ alias_method :service, :integration
def web_hook_logs
return unless @service.service_hook.present?
@@ -98,17 +100,17 @@ class Projects::ServicesController < Projects::ApplicationController
end
def serialize_as_json
- @service
+ integration
.as_json(only: @service.json_fields)
.merge(errors: @service.errors.as_json)
end
def redirect_deprecated_prometheus_service
- redirect_to edit_project_service_path(project, @service) if @service.is_a?(::PrometheusService) && Feature.enabled?(:settings_operations_prometheus_service, project)
+ redirect_to edit_project_service_path(project, integration) if integration.is_a?(::PrometheusService) && Feature.enabled?(:settings_operations_prometheus_service, project)
end
def set_deprecation_notice_for_prometheus_service
- return if !@service.is_a?(::PrometheusService) || !Feature.enabled?(:settings_operations_prometheus_service, project)
+ return if !integration.is_a?(::PrometheusService) || !Feature.enabled?(:settings_operations_prometheus_service, project)
operations_link_start = "<a href=\"#{project_settings_operations_path(project)}\">"
message = s_('PrometheusService|You can now manage your Prometheus settings on the %{operations_link_start}Operations%{operations_link_end} page. Fields on this page has been deprecated.') % { operations_link_start: operations_link_start, operations_link_end: "</a>" }
diff --git a/app/controllers/projects/settings/ci_cd_controller.rb b/app/controllers/projects/settings/ci_cd_controller.rb
index 1a465406660..3254d4129d3 100644
--- a/app/controllers/projects/settings/ci_cd_controller.rb
+++ b/app/controllers/projects/settings/ci_cd_controller.rb
@@ -12,7 +12,6 @@ module Projects
before_action :define_variables
before_action do
push_frontend_feature_flag(:ajax_new_deploy_token, @project)
- push_frontend_feature_flag(:vueify_shared_runners_toggle, @project)
end
helper_method :highlight_badge
@@ -119,12 +118,13 @@ module Projects
.assignable_for(project)
.ordered
.page(params[:specific_page]).per(NUMBER_OF_RUNNERS_PER_PAGE)
+ .with_tags
- @shared_runners = ::Ci::Runner.instance_type.active
+ @shared_runners = ::Ci::Runner.instance_type.active.with_tags
@shared_runners_count = @shared_runners.count(:all)
- @group_runners = ::Ci::Runner.belonging_to_parent_group_of_project(@project.id)
+ @group_runners = ::Ci::Runner.belonging_to_parent_group_of_project(@project.id).with_tags
end
def define_ci_variables
@@ -143,7 +143,7 @@ module Projects
end
def define_badges_variables
- @ref = params[:ref] || @project.default_branch || 'master'
+ @ref = params[:ref] || @project.default_branch_or_main
@badges = [Gitlab::Ci::Badge::Pipeline::Status,
Gitlab::Ci::Badge::Coverage::Report]
@@ -160,4 +160,4 @@ module Projects
end
end
-Projects::Settings::CiCdController.prepend_if_ee('EE::Projects::Settings::CiCdController')
+Projects::Settings::CiCdController.prepend_mod_with('Projects::Settings::CiCdController')
diff --git a/app/controllers/projects/settings/operations_controller.rb b/app/controllers/projects/settings/operations_controller.rb
index a05793a0283..a357227c870 100644
--- a/app/controllers/projects/settings/operations_controller.rb
+++ b/app/controllers/projects/settings/operations_controller.rb
@@ -155,4 +155,4 @@ module Projects
end
end
-Projects::Settings::OperationsController.prepend_if_ee('::EE::Projects::Settings::OperationsController')
+Projects::Settings::OperationsController.prepend_mod_with('Projects::Settings::OperationsController')
diff --git a/app/controllers/projects/settings/packages_and_registries_controller.rb b/app/controllers/projects/settings/packages_and_registries_controller.rb
new file mode 100644
index 00000000000..fee51dc1311
--- /dev/null
+++ b/app/controllers/projects/settings/packages_and_registries_controller.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+module Projects
+ module Settings
+ class PackagesAndRegistriesController < Projects::ApplicationController
+ layout 'project_settings'
+
+ before_action :authorize_admin_project!
+ before_action :packages_and_registries_settings_enabled!
+
+ feature_category :package_registry
+
+ def show
+ end
+
+ private
+
+ def packages_and_registries_settings_enabled!
+ render_404 unless settings_packages_and_registries_enabled?(project)
+ end
+ end
+ end
+end
diff --git a/app/controllers/projects/settings/repository_controller.rb b/app/controllers/projects/settings/repository_controller.rb
index bb5ad8e9aea..728231dbdbd 100644
--- a/app/controllers/projects/settings/repository_controller.rb
+++ b/app/controllers/projects/settings/repository_controller.rb
@@ -134,4 +134,4 @@ module Projects
end
end
-Projects::Settings::RepositoryController.prepend_if_ee('EE::Projects::Settings::RepositoryController')
+Projects::Settings::RepositoryController.prepend_mod_with('Projects::Settings::RepositoryController')
diff --git a/app/controllers/projects/snippets_controller.rb b/app/controllers/projects/snippets_controller.rb
index ff28c3be298..de2ab16b5b1 100644
--- a/app/controllers/projects/snippets_controller.rb
+++ b/app/controllers/projects/snippets_controller.rb
@@ -13,6 +13,10 @@ class Projects::SnippetsController < Projects::Snippets::ApplicationController
before_action :authorize_read_snippet!, except: [:new, :index]
before_action :authorize_update_snippet!, only: :edit
+ before_action only: [:show] do
+ push_frontend_feature_flag(:improved_emoji_picker, @project, default_enabled: :yaml)
+ end
+
def index
@snippet_counts = ::Snippets::CountService
.new(current_user, project: @project)
diff --git a/app/controllers/projects/tags_controller.rb b/app/controllers/projects/tags_controller.rb
index 3bf9988ca22..94b0473e1f3 100644
--- a/app/controllers/projects/tags_controller.rb
+++ b/app/controllers/projects/tags_controller.rb
@@ -9,9 +9,6 @@ class Projects::TagsController < Projects::ApplicationController
before_action :require_non_empty_project
before_action :authorize_download_code!
before_action :authorize_admin_tag!, only: [:new, :create, :destroy]
- before_action do
- push_frontend_feature_flag(:gldropdown_tags, default_enabled: :yaml)
- end
feature_category :source_code_management, [:index, :show, :new, :destroy]
feature_category :release_evidence, [:create]
diff --git a/app/controllers/projects/wikis_controller.rb b/app/controllers/projects/wikis_controller.rb
index d1486f765e4..a1493a25a1a 100644
--- a/app/controllers/projects/wikis_controller.rb
+++ b/app/controllers/projects/wikis_controller.rb
@@ -6,4 +6,8 @@ class Projects::WikisController < Projects::ApplicationController
alias_method :container, :project
feature_category :wiki
+
+ before_action do
+ push_frontend_feature_flag(:wiki_content_editor, project, default_enabled: :yaml)
+ end
end