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
path: root/lib
diff options
context:
space:
mode:
Diffstat (limited to 'lib')
-rw-r--r--lib/api/admin/instance_clusters.rb2
-rw-r--r--lib/api/ci/jobs.rb2
-rw-r--r--lib/api/clusters/agent_tokens.rb2
-rw-r--r--lib/api/clusters/agents.rb2
-rw-r--r--lib/api/group_clusters.rb2
-rw-r--r--lib/api/internal/kubernetes.rb10
-rw-r--r--lib/api/project_clusters.rb2
-rw-r--r--lib/gitlab/ci/status/composite.rb5
-rw-r--r--lib/gitlab/resource_events/assignment_event_recorder.rb61
-rw-r--r--lib/tasks/gitlab/tw/codeowners.rake2
10 files changed, 73 insertions, 17 deletions
diff --git a/lib/api/admin/instance_clusters.rb b/lib/api/admin/instance_clusters.rb
index f848103d9a0..bca991542ed 100644
--- a/lib/api/admin/instance_clusters.rb
+++ b/lib/api/admin/instance_clusters.rb
@@ -5,7 +5,7 @@ module API
class InstanceClusters < ::API::Base
include PaginationParams
- feature_category :kubernetes_management
+ feature_category :deployment_management
urgency :low
before do
diff --git a/lib/api/ci/jobs.rb b/lib/api/ci/jobs.rb
index 2e377f41b66..b4b03664916 100644
--- a/lib/api/ci/jobs.rb
+++ b/lib/api/ci/jobs.rb
@@ -250,7 +250,7 @@ module API
]
end
route_setting :authentication, job_token_allowed: true
- get '/allowed_agents', urgency: :low, feature_category: :kubernetes_management do
+ get '/allowed_agents', urgency: :low, feature_category: :deployment_management do
validate_current_authenticated_job
status 200
diff --git a/lib/api/clusters/agent_tokens.rb b/lib/api/clusters/agent_tokens.rb
index f0eb7ce2cd6..50bb32fbeaa 100644
--- a/lib/api/clusters/agent_tokens.rb
+++ b/lib/api/clusters/agent_tokens.rb
@@ -7,7 +7,7 @@ module API
before { authenticate! }
- feature_category :kubernetes_management
+ feature_category :deployment_management
params do
requires :id, types: [String, Integer], desc: 'The ID or URL-encoded path of the project'
diff --git a/lib/api/clusters/agents.rb b/lib/api/clusters/agents.rb
index c5ddecc8e93..02469fbad21 100644
--- a/lib/api/clusters/agents.rb
+++ b/lib/api/clusters/agents.rb
@@ -7,7 +7,7 @@ module API
before { authenticate! }
- feature_category :kubernetes_management
+ feature_category :deployment_management
urgency :low
params do
diff --git a/lib/api/group_clusters.rb b/lib/api/group_clusters.rb
index de5ca0f86ae..9cc7d0b8bf8 100644
--- a/lib/api/group_clusters.rb
+++ b/lib/api/group_clusters.rb
@@ -9,7 +9,7 @@ module API
ensure_feature_enabled!
end
- feature_category :kubernetes_management
+ feature_category :deployment_management
urgency :low
params do
diff --git a/lib/api/internal/kubernetes.rb b/lib/api/internal/kubernetes.rb
index 3bf36239af8..22a26a725e9 100644
--- a/lib/api/internal/kubernetes.rb
+++ b/lib/api/internal/kubernetes.rb
@@ -85,7 +85,7 @@ module API
detail 'Retrieves agent info for the given token'
end
route_setting :authentication, cluster_agent_token_allowed: true
- get '/agent_info', feature_category: :kubernetes_management, urgency: :low do
+ get '/agent_info', feature_category: :deployment_management, urgency: :low do
project = agent.project
status 200
@@ -103,7 +103,7 @@ module API
detail 'Retrieves project info (if authorized)'
end
route_setting :authentication, cluster_agent_token_allowed: true
- get '/project_info', feature_category: :kubernetes_management, urgency: :low do
+ get '/project_info', feature_category: :deployment_management, urgency: :low do
project = find_project(params[:id])
not_found! unless agent_has_access_to_project?(project)
@@ -126,7 +126,7 @@ module API
requires :agent_id, type: Integer, desc: 'ID of the configured Agent'
requires :agent_config, type: JSON, desc: 'Configuration for the Agent'
end
- post '/', feature_category: :kubernetes_management, urgency: :low do
+ post '/', feature_category: :deployment_management, urgency: :low do
agent = ::Clusters::Agent.find(params[:agent_id])
::Clusters::Agents::Authorizations::CiAccess::RefreshService.new(agent, config: params[:agent_config]).execute
@@ -146,7 +146,7 @@ module API
requires :csrf_token, type: String, allow_blank: false, desc: 'CSRF token that must be checked when access_type is "session_cookie", to ensure the request originates from a GitLab browsing session.'
end
end
- post '/', feature_category: :kubernetes_management do
+ post '/', feature_category: :deployment_management do
# Load session
public_session_id_string =
begin
@@ -193,7 +193,7 @@ module API
optional :agent_users_using_ci_tunnel, type: Array[Integer], desc: 'An array of user ids that have interacted with CI Tunnel'
end
end
- post '/', feature_category: :kubernetes_management do
+ post '/', feature_category: :deployment_management do
increment_count_events
increment_unique_events
diff --git a/lib/api/project_clusters.rb b/lib/api/project_clusters.rb
index 21f1ee69613..8e5b089434a 100644
--- a/lib/api/project_clusters.rb
+++ b/lib/api/project_clusters.rb
@@ -9,7 +9,7 @@ module API
ensure_feature_enabled!
end
- feature_category :kubernetes_management
+ feature_category :deployment_management
urgency :low
params do
diff --git a/lib/gitlab/ci/status/composite.rb b/lib/gitlab/ci/status/composite.rb
index 8e55b414364..1ba78b357e5 100644
--- a/lib/gitlab/ci/status/composite.rb
+++ b/lib/gitlab/ci/status/composite.rb
@@ -45,11 +45,6 @@ module Gitlab
if @dag && any_skipped_or_ignored?
# The DAG job is skipped if one of the needs does not run at all.
'skipped'
- elsif ::Feature.disabled?(:ci_simplify_dag_status_calculation_for_processing, @project) &&
- @dag &&
- !only_of?(:success, :failed, :canceled, :skipped, :success_with_warnings)
- # DAG is blocked from executing if a dependent is not "complete"
- 'pending'
elsif only_of?(:skipped, :ignored)
'skipped'
elsif only_of?(:success, :skipped, :success_with_warnings, :ignored)
diff --git a/lib/gitlab/resource_events/assignment_event_recorder.rb b/lib/gitlab/resource_events/assignment_event_recorder.rb
new file mode 100644
index 00000000000..94bd05a17ba
--- /dev/null
+++ b/lib/gitlab/resource_events/assignment_event_recorder.rb
@@ -0,0 +1,61 @@
+# frozen_string_literal: true
+
+module Gitlab
+ module ResourceEvents
+ class AssignmentEventRecorder
+ BATCH_SIZE = 100
+
+ def initialize(parent:, old_assignees:)
+ @parent = parent
+ @old_assignees = old_assignees
+ end
+
+ def record
+ return if Feature.disabled?(:record_issue_and_mr_assignee_events, parent.project)
+
+ case parent
+ when Issue
+ record_for_parent(
+ ::ResourceEvents::IssueAssignmentEvent,
+ :issue_id,
+ parent,
+ old_assignees
+ )
+ when MergeRequest
+ record_for_parent(
+ ::ResourceEvents::MergeRequestAssignmentEvent,
+ :merge_request_id,
+ parent,
+ old_assignees
+ )
+ end
+ end
+
+ private
+
+ attr_reader :parent, :old_assignees
+
+ def record_for_parent(resource_klass, foreign_key, parent, old_assignees)
+ removed_events = (old_assignees - parent.assignees).map do |unassigned_user|
+ {
+ foreign_key => parent.id,
+ user_id: unassigned_user.id,
+ action: :remove
+ }
+ end.to_set
+
+ added_events = (parent.assignees.to_a - old_assignees).map do |added_user|
+ {
+ foreign_key => parent.id,
+ user_id: added_user.id,
+ action: :add
+ }
+ end.to_set
+
+ (removed_events + added_events).each_slice(BATCH_SIZE) do |events|
+ resource_klass.insert_all(events)
+ end
+ end
+ end
+ end
+end
diff --git a/lib/tasks/gitlab/tw/codeowners.rake b/lib/tasks/gitlab/tw/codeowners.rake
index 77e833d2058..4d43dd2dd85 100644
--- a/lib/tasks/gitlab/tw/codeowners.rake
+++ b/lib/tasks/gitlab/tw/codeowners.rake
@@ -71,7 +71,7 @@ namespace :tw do
CodeOwnerRule.new('Respond', '@msedlakjakubowski'),
CodeOwnerRule.new('Runner', '@fneill'),
CodeOwnerRule.new('Runner SaaS', '@fneill'),
- CodeOwnerRule.new('Security Policies', '@dianalogan'),
+ CodeOwnerRule.new('Security Policies', '@rdickenson'),
CodeOwnerRule.new('Source Code', '@aqualls'),
CodeOwnerRule.new('Static Analysis', '@rdickenson'),
CodeOwnerRule.new('Style Guide', '@sselhorn'),