diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/api/admin/instance_clusters.rb | 2 | ||||
-rw-r--r-- | lib/api/ci/jobs.rb | 2 | ||||
-rw-r--r-- | lib/api/clusters/agent_tokens.rb | 2 | ||||
-rw-r--r-- | lib/api/clusters/agents.rb | 2 | ||||
-rw-r--r-- | lib/api/group_clusters.rb | 2 | ||||
-rw-r--r-- | lib/api/internal/kubernetes.rb | 10 | ||||
-rw-r--r-- | lib/api/project_clusters.rb | 2 | ||||
-rw-r--r-- | lib/gitlab/ci/status/composite.rb | 5 | ||||
-rw-r--r-- | lib/gitlab/resource_events/assignment_event_recorder.rb | 61 | ||||
-rw-r--r-- | lib/tasks/gitlab/tw/codeowners.rake | 2 |
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'), |