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:
Diffstat (limited to 'app/controllers/projects')
-rw-r--r--app/controllers/projects/alerting/notifications_controller.rb6
-rw-r--r--app/controllers/projects/commits_controller.rb2
-rw-r--r--app/controllers/projects/environments/sample_metrics_controller.rb16
-rw-r--r--app/controllers/projects/environments_controller.rb14
-rw-r--r--app/controllers/projects/graphs_controller.rb2
-rw-r--r--app/controllers/projects/incidents_controller.rb1
-rw-r--r--app/controllers/projects/issues_controller.rb12
-rw-r--r--app/controllers/projects/jobs_controller.rb20
-rw-r--r--app/controllers/projects/labels_controller.rb5
-rw-r--r--app/controllers/projects/merge_requests/application_controller.rb12
-rw-r--r--app/controllers/projects/merge_requests/conflicts_controller.rb2
-rw-r--r--app/controllers/projects/merge_requests_controller.rb20
-rw-r--r--app/controllers/projects/mirrors_controller.rb1
-rw-r--r--app/controllers/projects/notes_controller.rb3
-rw-r--r--app/controllers/projects/pages_controller.rb10
-rw-r--r--app/controllers/projects/pipeline_schedules_controller.rb5
-rw-r--r--app/controllers/projects/pipelines/tests_controller.rb2
-rw-r--r--app/controllers/projects/pipelines_controller.rb7
-rw-r--r--app/controllers/projects/prometheus/alerts_controller.rb43
-rw-r--r--app/controllers/projects/service_desk_controller.rb2
-rw-r--r--app/controllers/projects/tracing_controller.rb23
-rw-r--r--app/controllers/projects/work_items_controller.rb1
22 files changed, 53 insertions, 156 deletions
diff --git a/app/controllers/projects/alerting/notifications_controller.rb b/app/controllers/projects/alerting/notifications_controller.rb
index 281ac14d3ce..b596cd74b03 100644
--- a/app/controllers/projects/alerting/notifications_controller.rb
+++ b/app/controllers/projects/alerting/notifications_controller.rb
@@ -66,15 +66,11 @@ module Projects
def integration
AlertManagement::HttpIntegrationsFinder.new(
project,
- endpoint_identifier: endpoint_identifier,
+ endpoint_identifier: params[:endpoint_identifier],
active: true
).execute.first
end
- def endpoint_identifier
- params[:endpoint_identifier] || AlertManagement::HttpIntegration::LEGACY_IDENTIFIERS
- end
-
def notification_payload
@notification_payload ||= params.permit![:notification]
end
diff --git a/app/controllers/projects/commits_controller.rb b/app/controllers/projects/commits_controller.rb
index 94cd324f312..2d2712ebe4d 100644
--- a/app/controllers/projects/commits_controller.rb
+++ b/app/controllers/projects/commits_controller.rb
@@ -45,6 +45,8 @@ class Projects::CommitsController < Projects::ApplicationController
# rubocop: enable CodeReuse/ActiveRecord
def signatures
+ Gitlab::QueryLimiting.disable!('https://gitlab.com/gitlab-org/gitlab/-/issues/424527')
+
respond_to do |format|
format.json do
render json: {
diff --git a/app/controllers/projects/environments/sample_metrics_controller.rb b/app/controllers/projects/environments/sample_metrics_controller.rb
deleted file mode 100644
index 80344c83ab7..00000000000
--- a/app/controllers/projects/environments/sample_metrics_controller.rb
+++ /dev/null
@@ -1,16 +0,0 @@
-# frozen_string_literal: true
-
-class Projects::Environments::SampleMetricsController < Projects::ApplicationController
- feature_category :metrics
- urgency :low
-
- def query
- result = Metrics::SampleMetricsService.new(params[:identifier], range_start: params[:start], range_end: params[:end]).query
-
- if result
- render json: { "status": "success", "data": { "resultType": "matrix", "result": result } }
- else
- render_404
- end
- end
-end
diff --git a/app/controllers/projects/environments_controller.rb b/app/controllers/projects/environments_controller.rb
index 127fe40b0e3..aabea122fb6 100644
--- a/app/controllers/projects/environments_controller.rb
+++ b/app/controllers/projects/environments_controller.rb
@@ -8,14 +8,6 @@ class Projects::EnvironmentsController < Projects::ApplicationController
layout 'project'
- before_action only: [:show] do
- push_frontend_feature_flag(:environment_details_vue, @project)
- end
-
- before_action only: [:index, :edit, :new] do
- push_frontend_feature_flag(:flux_resource_for_environment)
- end
-
before_action :authorize_read_environment!
before_action :authorize_create_environment!, only: [:new, :create]
before_action :authorize_stop_environment!, only: [:stop]
@@ -113,10 +105,8 @@ class Projects::EnvironmentsController < Projects::ApplicationController
job = stop_actions.first if stop_actions&.count == 1
action_or_env_url =
- if job.instance_of?(::Ci::Build)
- polymorphic_url([project, job])
- elsif job.instance_of?(::Ci::Bridge)
- project_pipeline_url(project, job.pipeline_id)
+ if job
+ project_job_url(project, job)
else
project_environment_url(project, @environment)
end
diff --git a/app/controllers/projects/graphs_controller.rb b/app/controllers/projects/graphs_controller.rb
index e73e2a38149..fce7de4c0de 100644
--- a/app/controllers/projects/graphs_controller.rb
+++ b/app/controllers/projects/graphs_controller.rb
@@ -34,7 +34,7 @@ class Projects::GraphsController < Projects::ApplicationController
{
author_name: commit.author_name,
author_email: commit.author_email,
- date: commit.committed_date.strftime("%Y-%m-%d")
+ date: commit.committed_date.to_date.iso8601
}
end
diff --git a/app/controllers/projects/incidents_controller.rb b/app/controllers/projects/incidents_controller.rb
index 6109e29b169..69d349b1f1d 100644
--- a/app/controllers/projects/incidents_controller.rb
+++ b/app/controllers/projects/incidents_controller.rb
@@ -12,6 +12,7 @@ class Projects::IncidentsController < Projects::ApplicationController
push_force_frontend_feature_flag(:work_items_mvc_2, @project&.work_items_mvc_2_feature_flag_enabled?)
push_frontend_feature_flag(:moved_mr_sidebar, project)
push_frontend_feature_flag(:move_close_into_dropdown, project)
+ push_force_frontend_feature_flag(:linked_work_items, @project&.linked_work_items_feature_flag_enabled?)
end
feature_category :incident_management
diff --git a/app/controllers/projects/issues_controller.rb b/app/controllers/projects/issues_controller.rb
index 83947c443f4..9abcc108ace 100644
--- a/app/controllers/projects/issues_controller.rb
+++ b/app/controllers/projects/issues_controller.rb
@@ -62,7 +62,6 @@ class Projects::IssuesController < Projects::ApplicationController
before_action only: [:index, :service_desk] do
push_frontend_feature_flag(:or_issuable_queries, project)
push_frontend_feature_flag(:frontend_caching, project&.group)
- push_frontend_feature_flag(:new_graphql_users_autocomplete, project)
end
before_action only: :show do
@@ -73,7 +72,7 @@ class Projects::IssuesController < Projects::ApplicationController
push_frontend_feature_flag(:epic_widget_edit_confirmation, project)
push_frontend_feature_flag(:moved_mr_sidebar, project)
push_frontend_feature_flag(:move_close_into_dropdown, project)
- push_frontend_feature_flag(:action_cable_notes, project)
+ push_force_frontend_feature_flag(:linked_work_items, project.linked_work_items_feature_flag_enabled?)
end
around_action :allow_gitaly_ref_name_caching, only: [:discussions]
@@ -114,12 +113,6 @@ class Projects::IssuesController < Projects::ApplicationController
respond_to do |format|
format.html
format.atom { render layout: 'xml' }
- format.json do
- render json: {
- html: view_to_html_string("projects/issues/_issues"),
- labels: @labels.as_json(methods: :text_color)
- }
- end
end
end
@@ -282,7 +275,6 @@ class Projects::IssuesController < Projects::ApplicationController
def service_desk
@issues = @issuables
- @users.push(User.support_bot)
end
protected
@@ -433,7 +425,7 @@ class Projects::IssuesController < Projects::ApplicationController
if service_desk?
options.reject! { |key| key == 'author_username' || key == 'author_id' }
- options[:author_id] = User.support_bot
+ options[:author_id] = Users::Internal.support_bot
end
options
diff --git a/app/controllers/projects/jobs_controller.rb b/app/controllers/projects/jobs_controller.rb
index 4e0b304a2ee..802ffd99e41 100644
--- a/app/controllers/projects/jobs_controller.rb
+++ b/app/controllers/projects/jobs_controller.rb
@@ -8,8 +8,8 @@ class Projects::JobsController < Projects::ApplicationController
urgency :low, [:index, :show, :trace, :retry, :play, :cancel, :unschedule, :erase, :raw]
- before_action :find_job_as_build, except: [:index, :play, :retry]
- before_action :find_job_as_processable, only: [:play, :retry]
+ before_action :find_job_as_build, except: [:index, :play, :retry, :show]
+ before_action :find_job_as_processable, only: [:play, :retry, :show]
before_action :authorize_read_build_trace!, only: [:trace, :raw]
before_action :authorize_read_build!
before_action :authorize_update_build!,
@@ -27,17 +27,13 @@ class Projects::JobsController < Projects::ApplicationController
feature_category :continuous_integration
urgency :low
- def index
- # We need all builds for tabs counters
- @all_builds = Ci::JobsFinder.new(current_user: current_user, project: @project).execute
-
- @scope = params[:scope]
- @builds = Ci::JobsFinder.new(current_user: current_user, project: @project, params: params).execute
- @builds = @builds.eager_load_everything
- @builds = @builds.page(params[:page]).per(30).without_count
- end
+ def index; end
def show
+ if @build.instance_of?(::Ci::Bridge)
+ redirect_to project_pipeline_path(@build.downstream_pipeline.project, @build.downstream_pipeline.id)
+ end
+
respond_to do |format|
format.html
format.json do
@@ -74,6 +70,8 @@ class Projects::JobsController < Projects::ApplicationController
end
def retry
+ Gitlab::QueryLimiting.disable!('https://gitlab.com/gitlab-org/gitlab/-/issues/424184')
+
response = Ci::RetryJobService.new(project, current_user).execute(@build)
if response.success?
diff --git a/app/controllers/projects/labels_controller.rb b/app/controllers/projects/labels_controller.rb
index 67cff16a76b..e62f912e0f7 100644
--- a/app/controllers/projects/labels_controller.rb
+++ b/app/controllers/projects/labels_controller.rb
@@ -155,7 +155,10 @@ class Projects::LabelsController < Projects::ApplicationController
protected
def label_params
- params.require(:label).permit(:title, :description, :color)
+ allowed = [:title, :description, :color]
+ allowed << :lock_on_merge if @project.supports_lock_on_merge?
+
+ params.require(:label).permit(allowed)
end
def label
diff --git a/app/controllers/projects/merge_requests/application_controller.rb b/app/controllers/projects/merge_requests/application_controller.rb
index 6d1b1ced4eb..81ff6c215f9 100644
--- a/app/controllers/projects/merge_requests/application_controller.rb
+++ b/app/controllers/projects/merge_requests/application_controller.rb
@@ -14,6 +14,18 @@ class Projects::MergeRequests::ApplicationController < Projects::ApplicationCont
private
+ # Normally the methods with `check_(\w+)_available!` pattern are
+ # handled by the `method_missing` defined in `ProjectsController::ApplicationController`
+ # but that logic does not take the member roles into account, therefore, we handle this
+ # case here manually.
+ def check_merge_requests_available!
+ render_404 if project_policy.merge_requests_disabled?
+ end
+
+ def project_policy
+ ProjectPolicy.new(current_user, project)
+ end
+
def merge_request
@issuable =
@merge_request ||=
diff --git a/app/controllers/projects/merge_requests/conflicts_controller.rb b/app/controllers/projects/merge_requests/conflicts_controller.rb
index 66a358963e2..26f4286233a 100644
--- a/app/controllers/projects/merge_requests/conflicts_controller.rb
+++ b/app/controllers/projects/merge_requests/conflicts_controller.rb
@@ -67,7 +67,7 @@ class Projects::MergeRequests::ConflictsController < Projects::MergeRequests::Ap
flash[:notice] = _('All merge conflicts were resolved. The merge request can now be merged.')
- render json: { redirect_to: project_merge_request_url(@project, @merge_request, resolved_conflicts: true) }
+ render json: { redirect_to: project_merge_request_path(@project, @merge_request, resolved_conflicts: true) }
rescue Gitlab::Git::Conflict::Resolver::ResolutionError => e
render status: :bad_request, json: { message: e.message }
end
diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb
index 30168558eff..53fd7256b19 100644
--- a/app/controllers/projects/merge_requests_controller.rb
+++ b/app/controllers/projects/merge_requests_controller.rb
@@ -45,12 +45,10 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo
push_frontend_feature_flag(:sast_reports_in_inline_diff, project)
push_frontend_feature_flag(:mr_experience_survey, project)
push_frontend_feature_flag(:saved_replies, current_user)
- push_frontend_feature_flag(:code_quality_inline_drawer, project)
push_force_frontend_feature_flag(:summarize_my_code_review, summarize_my_code_review_enabled?)
push_frontend_feature_flag(:mr_activity_filters, current_user)
- push_frontend_feature_flag(:review_apps_redeploy_mr_widget, project)
push_frontend_feature_flag(:ci_job_failures_in_mr, project)
- push_frontend_feature_flag(:action_cable_notes, project)
+ push_frontend_feature_flag(:mr_pipelines_graphql, project)
end
before_action only: [:edit] do
@@ -106,11 +104,6 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo
respond_to do |format|
format.html
format.atom { render layout: 'xml' }
- format.json do
- render json: {
- html: view_to_html_string("projects/merge_requests/_merge_requests")
- }
- end
end
end
@@ -389,20 +382,10 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo
private
- # NOTE: Remove this disable with add_prepared_state_to_mr FF removal
- # rubocop: disable Metrics/AbcSize
def show_merge_request
close_merge_request_if_no_source_project
@merge_request.check_mergeability(async: true)
- # NOTE: Remove the created_at check when removing the FF check
- if ::Feature.enabled?(:add_prepared_state_to_mr, @merge_request.project) &&
- @merge_request.created_at < 5.minutes.ago &&
- !@merge_request.prepared?
-
- @merge_request.prepare
- end
-
respond_to do |format|
format.html do
# use next to appease Rubocop
@@ -446,7 +429,6 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo
end
end
end
- # rubocop: enable Metrics/AbcSize
def render_html_page
preload_assignees_for_render(@merge_request)
diff --git a/app/controllers/projects/mirrors_controller.rb b/app/controllers/projects/mirrors_controller.rb
index acbd26cbdf6..a24273488fb 100644
--- a/app/controllers/projects/mirrors_controller.rb
+++ b/app/controllers/projects/mirrors_controller.rb
@@ -81,6 +81,7 @@ class Projects::MirrorsController < Projects::ApplicationController
only_protected_branches
keep_divergent_refs
auth_method
+ user
password
ssh_known_hosts
regenerate_ssh_private_key
diff --git a/app/controllers/projects/notes_controller.rb b/app/controllers/projects/notes_controller.rb
index 7fcdf220bd2..3d8a787afcb 100644
--- a/app/controllers/projects/notes_controller.rb
+++ b/app/controllers/projects/notes_controller.rb
@@ -14,8 +14,7 @@ class Projects::NotesController < Projects::ApplicationController
feature_category :team_planning, [:index, :create, :update, :destroy, :delete_attachment, :toggle_award_emoji]
feature_category :code_review_workflow, [:resolve, :unresolve, :outdated_line_change]
- urgency :medium, [:index]
- urgency :low, [:create, :update, :destroy, :resolve, :unresolve, :toggle_award_emoji, :outdated_line_change]
+ urgency :low
override :feature_category
def feature_category
diff --git a/app/controllers/projects/pages_controller.rb b/app/controllers/projects/pages_controller.rb
index 02579cd4283..5b32eb8e58e 100644
--- a/app/controllers/projects/pages_controller.rb
+++ b/app/controllers/projects/pages_controller.rb
@@ -65,7 +65,15 @@ class Projects::PagesController < Projects::ApplicationController
end
def project_params_attributes
- [:pages_https_only, { project_setting_attributes: [:pages_unique_domain_enabled] }]
+ [
+ :pages_https_only,
+ { project_setting_attributes: project_setting_attributes }
+ ]
+ end
+
+ # overridden in EE
+ def project_setting_attributes
+ [:pages_unique_domain_enabled]
end
end
diff --git a/app/controllers/projects/pipeline_schedules_controller.rb b/app/controllers/projects/pipeline_schedules_controller.rb
index 42b6d83ee85..83a64579446 100644
--- a/app/controllers/projects/pipeline_schedules_controller.rb
+++ b/app/controllers/projects/pipeline_schedules_controller.rb
@@ -9,7 +9,6 @@ class Projects::PipelineSchedulesController < Projects::ApplicationController
before_action :authorize_create_pipeline_schedule!, only: [:new, :create]
before_action :authorize_update_pipeline_schedule!, only: [:edit, :update]
before_action :authorize_admin_pipeline_schedule!, only: [:take_ownership, :destroy]
- before_action :push_schedule_feature_flag, only: [:index, :new, :edit]
feature_category :continuous_integration
urgency :low
@@ -120,8 +119,4 @@ class Projects::PipelineSchedulesController < Projects::ApplicationController
def authorize_admin_pipeline_schedule!
return access_denied! unless can?(current_user, :admin_pipeline_schedule, schedule)
end
-
- def push_schedule_feature_flag
- push_frontend_feature_flag(:pipeline_schedules_vue, @project)
- end
end
diff --git a/app/controllers/projects/pipelines/tests_controller.rb b/app/controllers/projects/pipelines/tests_controller.rb
index d77cf095a4f..4b522c88023 100644
--- a/app/controllers/projects/pipelines/tests_controller.rb
+++ b/app/controllers/projects/pipelines/tests_controller.rb
@@ -50,7 +50,7 @@ module Projects
end
def test_suite
- suite = builds.sum do |build|
+ suite = builds.sum(Gitlab::Ci::Reports::TestSuite.new) do |build|
test_report = build.collect_test_reports!(Gitlab::Ci::Reports::TestReport.new)
test_report.get_suite(build.test_suite_name)
end
diff --git a/app/controllers/projects/pipelines_controller.rb b/app/controllers/projects/pipelines_controller.rb
index a96ee2215c2..036ea45cc78 100644
--- a/app/controllers/projects/pipelines_controller.rb
+++ b/app/controllers/projects/pipelines_controller.rb
@@ -3,7 +3,6 @@
class Projects::PipelinesController < Projects::ApplicationController
include ::Gitlab::Utils::StrongMemoize
include ProductAnalyticsTracking
- include ProductAnalyticsTracking
include ProjectStatsRefreshConflictsGuard
urgency :low, [
@@ -34,9 +33,9 @@ class Projects::PipelinesController < Projects::ApplicationController
label: 'redis_hll_counters.analytics.analytics_total_unique_counts_monthly',
destinations: %i[redis_hll snowplow]
- track_event :charts, name: 'p_analytics_ci_cd_pipelines', conditions: -> { should_track_ci_cd_pipelines? }
- track_event :charts, name: 'p_analytics_ci_cd_deployment_frequency', conditions: -> { should_track_ci_cd_deployment_frequency? }
- track_event :charts, name: 'p_analytics_ci_cd_lead_time', conditions: -> { should_track_ci_cd_lead_time? }
+ track_internal_event :charts, name: 'p_analytics_ci_cd_pipelines', conditions: -> { should_track_ci_cd_pipelines? }
+ track_internal_event :charts, name: 'p_analytics_ci_cd_deployment_frequency', conditions: -> { should_track_ci_cd_deployment_frequency? }
+ track_internal_event :charts, name: 'p_analytics_ci_cd_lead_time', conditions: -> { should_track_ci_cd_lead_time? }
track_event :charts, name: 'p_analytics_ci_cd_time_to_restore_service', conditions: -> { should_track_ci_cd_time_to_restore_service? }
track_event :charts, name: 'p_analytics_ci_cd_change_failure_rate', conditions: -> { should_track_ci_cd_change_failure_rate? }
diff --git a/app/controllers/projects/prometheus/alerts_controller.rb b/app/controllers/projects/prometheus/alerts_controller.rb
deleted file mode 100644
index 80a8dbf4729..00000000000
--- a/app/controllers/projects/prometheus/alerts_controller.rb
+++ /dev/null
@@ -1,43 +0,0 @@
-# frozen_string_literal: true
-
-module Projects
- module Prometheus
- class AlertsController < Projects::ApplicationController
- respond_to :json
-
- protect_from_forgery except: [:notify]
-
- skip_before_action :project, only: [:notify]
-
- prepend_before_action :repository, :project_without_auth, only: [:notify]
-
- before_action :authorize_read_prometheus_alerts!, except: [:notify]
-
- feature_category :incident_management
- urgency :low
-
- def notify
- token = extract_alert_manager_token(request)
- result = notify_service.execute(token)
-
- head result.http_status
- end
-
- private
-
- def notify_service
- Projects::Prometheus::Alerts::NotifyService
- .new(project, params.permit!)
- end
-
- def extract_alert_manager_token(request)
- Doorkeeper::OAuth::Token.from_bearer_authorization(request)
- end
-
- def project_without_auth
- @project ||= Project
- .find_by_full_path("#{params[:namespace_id]}/#{params[:project_id]}")
- end
- end
- end
-end
diff --git a/app/controllers/projects/service_desk_controller.rb b/app/controllers/projects/service_desk_controller.rb
index b1e30e7a45b..ca3cecf5949 100644
--- a/app/controllers/projects/service_desk_controller.rb
+++ b/app/controllers/projects/service_desk_controller.rb
@@ -36,7 +36,7 @@ class Projects::ServiceDeskController < Projects::ApplicationController
service_desk_settings = project.service_desk_setting
{
- service_desk_address: project.service_desk_address,
+ service_desk_address: project.service_desk_system_address,
service_desk_enabled: project.service_desk_enabled,
issue_template_key: service_desk_settings&.issue_template_key,
template_file_missing: service_desk_settings&.issue_template_missing?,
diff --git a/app/controllers/projects/tracing_controller.rb b/app/controllers/projects/tracing_controller.rb
deleted file mode 100644
index 45e773bf62b..00000000000
--- a/app/controllers/projects/tracing_controller.rb
+++ /dev/null
@@ -1,23 +0,0 @@
-# frozen_string_literal: true
-
-module Projects
- class TracingController < Projects::ApplicationController
- include ::Observability::ContentSecurityPolicy
-
- feature_category :tracing
-
- before_action :check_tracing_enabled
-
- def index; end
-
- def show
- @trace_id = params[:id]
- end
-
- private
-
- def check_tracing_enabled
- render_404 unless Gitlab::Observability.tracing_enabled?(project)
- end
- end
-end
diff --git a/app/controllers/projects/work_items_controller.rb b/app/controllers/projects/work_items_controller.rb
index 7da31c199a1..c3986be31b0 100644
--- a/app/controllers/projects/work_items_controller.rb
+++ b/app/controllers/projects/work_items_controller.rb
@@ -12,6 +12,7 @@ class Projects::WorkItemsController < Projects::ApplicationController
push_force_frontend_feature_flag(:work_items_mvc, project&.work_items_mvc_feature_flag_enabled?)
push_force_frontend_feature_flag(:work_items_mvc_2, project&.work_items_mvc_2_feature_flag_enabled?)
push_force_frontend_feature_flag(:saved_replies, current_user)
+ push_force_frontend_feature_flag(:linked_work_items, project&.linked_work_items_feature_flag_enabled?)
end
feature_category :team_planning