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-08-19 12:08:42 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-08-19 12:08:42 +0300
commitb76ae638462ab0f673e5915986070518dd3f9ad3 (patch)
treebdab0533383b52873be0ec0eb4d3c66598ff8b91 /app/serializers
parent434373eabe7b4be9593d18a585fb763f1e5f1a6f (diff)
Add latest changes from gitlab-org/gitlab@14-2-stable-eev14.2.0-rc42
Diffstat (limited to 'app/serializers')
-rw-r--r--app/serializers/build_details_entity.rb2
-rw-r--r--app/serializers/ci/pipeline_entity.rb1
-rw-r--r--app/serializers/concerns/diff_file_conflict_type.rb24
-rw-r--r--app/serializers/diff_file_entity.rb7
-rw-r--r--app/serializers/diff_file_metadata_entity.rb2
-rw-r--r--app/serializers/diffs_entity.rb7
-rw-r--r--app/serializers/diffs_metadata_entity.rb9
-rw-r--r--app/serializers/group_link/project_group_link_entity.rb5
-rw-r--r--app/serializers/integrations/project_entity.rb15
-rw-r--r--app/serializers/integrations/project_serializer.rb9
-rw-r--r--app/serializers/jira_connect/app_data_serializer.rb28
-rw-r--r--app/serializers/jira_connect/group_entity.rb8
-rw-r--r--app/serializers/jira_connect/subscription_entity.rb11
-rw-r--r--app/serializers/merge_request_poll_cached_widget_entity.rb6
-rw-r--r--app/serializers/merge_request_poll_widget_entity.rb8
-rw-r--r--app/serializers/merge_request_widget_entity.rb25
-rw-r--r--app/serializers/paginated_diff_entity.rb2
17 files changed, 142 insertions, 27 deletions
diff --git a/app/serializers/build_details_entity.rb b/app/serializers/build_details_entity.rb
index 6fbd14f523d..4615f471639 100644
--- a/app/serializers/build_details_entity.rb
+++ b/app/serializers/build_details_entity.rb
@@ -133,7 +133,7 @@ class BuildDetailsEntity < JobEntity
def callout_message
return super unless build.failure_reason.to_sym == :missing_dependency_failure
- docs_url = "https://docs.gitlab.com/ee/ci/yaml/README.html#dependencies"
+ docs_url = "https://docs.gitlab.com/ee/ci/yaml/index.html#dependencies"
[
failure_message,
diff --git a/app/serializers/ci/pipeline_entity.rb b/app/serializers/ci/pipeline_entity.rb
index fa0e904fbde..a5af543f49f 100644
--- a/app/serializers/ci/pipeline_entity.rb
+++ b/app/serializers/ci/pipeline_entity.rb
@@ -7,6 +7,7 @@ class Ci::PipelineEntity < Grape::Entity
delegate :name, :failure_reason, to: :presented_pipeline
expose :id
+ expose :iid
expose :user, using: UserEntity
expose :active?, as: :active
diff --git a/app/serializers/concerns/diff_file_conflict_type.rb b/app/serializers/concerns/diff_file_conflict_type.rb
new file mode 100644
index 00000000000..29e30245dce
--- /dev/null
+++ b/app/serializers/concerns/diff_file_conflict_type.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+module DiffFileConflictType
+ extend ActiveSupport::Concern
+ include Gitlab::Utils::StrongMemoize
+
+ included do
+ expose :conflict_type do |diff_file, options|
+ conflict_file = conflict_file(options, diff_file)
+
+ next unless conflict_file
+
+ conflict_file.conflict_type(diff_file)
+ end
+ end
+
+ private
+
+ def conflict_file(options, diff_file)
+ strong_memoize(:conflict_file) do
+ options[:conflicts] && options[:conflicts][diff_file.new_path]
+ end
+ end
+end
diff --git a/app/serializers/diff_file_entity.rb b/app/serializers/diff_file_entity.rb
index b2a544e1125..7eca56b2f48 100644
--- a/app/serializers/diff_file_entity.rb
+++ b/app/serializers/diff_file_entity.rb
@@ -1,6 +1,7 @@
# frozen_string_literal: true
class DiffFileEntity < DiffFileBaseEntity
+ include DiffFileConflictType
include CommitsHelper
include IconsHelper
include Gitlab::Utils::StrongMemoize
@@ -88,10 +89,4 @@ class DiffFileEntity < DiffFileBaseEntity
# If nothing is present, inline will be the default.
options.fetch(:diff_view, :inline).to_sym
end
-
- def conflict_file(options, diff_file)
- strong_memoize(:conflict_file) do
- options[:conflicts] && options[:conflicts][diff_file.new_path]
- end
- end
end
diff --git a/app/serializers/diff_file_metadata_entity.rb b/app/serializers/diff_file_metadata_entity.rb
index 70a5b266be1..772b549314e 100644
--- a/app/serializers/diff_file_metadata_entity.rb
+++ b/app/serializers/diff_file_metadata_entity.rb
@@ -1,6 +1,8 @@
# frozen_string_literal: true
class DiffFileMetadataEntity < Grape::Entity
+ include DiffFileConflictType
+
expose :added_lines
expose :removed_lines
expose :new_path
diff --git a/app/serializers/diffs_entity.rb b/app/serializers/diffs_entity.rb
index 64f7f8bb5eb..e0565a1e506 100644
--- a/app/serializers/diffs_entity.rb
+++ b/app/serializers/diffs_entity.rb
@@ -71,7 +71,12 @@ class DiffsEntity < Grape::Entity
submodule_links = Gitlab::SubmoduleLinks.new(merge_request.project.repository)
DiffFileEntity.represent(diffs.diff_files,
- options.merge(submodule_links: submodule_links, code_navigation_path: code_navigation_path(diffs), conflicts: conflicts))
+ options.merge(
+ submodule_links: submodule_links,
+ code_navigation_path: code_navigation_path(diffs),
+ conflicts: conflicts(allow_tree_conflicts: options[:allow_tree_conflicts])
+ )
+ )
end
expose :merge_request_diffs, using: MergeRequestDiffEntity, if: -> (_, options) { options[:merge_request_diffs]&.any? } do |diffs|
diff --git a/app/serializers/diffs_metadata_entity.rb b/app/serializers/diffs_metadata_entity.rb
index 681e629244f..8c226130f6e 100644
--- a/app/serializers/diffs_metadata_entity.rb
+++ b/app/serializers/diffs_metadata_entity.rb
@@ -2,8 +2,13 @@
class DiffsMetadataEntity < DiffsEntity
unexpose :diff_files
- expose :diff_files, using: DiffFileMetadataEntity do |diffs, _|
- diffs.raw_diff_files(sorted: true)
+ expose :diff_files do |diffs, options|
+ DiffFileMetadataEntity.represent(
+ diffs.raw_diff_files(sorted: true),
+ options.merge(
+ conflicts: conflicts(allow_tree_conflicts: options[:allow_tree_conflicts])
+ )
+ )
end
expose :conflict_resolution_path do |_, options|
diff --git a/app/serializers/group_link/project_group_link_entity.rb b/app/serializers/group_link/project_group_link_entity.rb
index 2ff275fff01..bcdafd8d685 100644
--- a/app/serializers/group_link/project_group_link_entity.rb
+++ b/app/serializers/group_link/project_group_link_entity.rb
@@ -3,14 +3,13 @@
module GroupLink
class ProjectGroupLinkEntity < GroupLink::GroupLinkEntity
include RequestAwareEntity
- include Projects::ProjectMembersHelper
expose :can_update do |group_link|
- can_manage_project_members?(group_link.project)
+ can?(current_user, :admin_project_member, group_link.project)
end
expose :can_remove do |group_link|
- can_manage_project_members?(group_link.project)
+ can?(current_user, :admin_project_member, group_link.project)
end
private
diff --git a/app/serializers/integrations/project_entity.rb b/app/serializers/integrations/project_entity.rb
new file mode 100644
index 00000000000..ee28c7c19c1
--- /dev/null
+++ b/app/serializers/integrations/project_entity.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+module Integrations
+ class ProjectEntity < Grape::Entity
+ include RequestAwareEntity
+
+ expose :avatar_url
+ expose :full_name
+ expose :name
+
+ expose :full_path do |project|
+ project_path(project)
+ end
+ end
+end
diff --git a/app/serializers/integrations/project_serializer.rb b/app/serializers/integrations/project_serializer.rb
new file mode 100644
index 00000000000..b7cd266fcbf
--- /dev/null
+++ b/app/serializers/integrations/project_serializer.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+module Integrations
+ class ProjectSerializer < BaseSerializer
+ include WithPagination
+
+ entity Integrations::ProjectEntity
+ end
+end
diff --git a/app/serializers/jira_connect/app_data_serializer.rb b/app/serializers/jira_connect/app_data_serializer.rb
new file mode 100644
index 00000000000..994ff19f96e
--- /dev/null
+++ b/app/serializers/jira_connect/app_data_serializer.rb
@@ -0,0 +1,28 @@
+# frozen_string_literal: true
+
+class JiraConnect::AppDataSerializer
+ include Gitlab::Routing
+ include ::API::Helpers::RelatedResourcesHelpers
+
+ def initialize(subscriptions, signed_in)
+ @subscriptions = subscriptions
+ @signed_in = signed_in
+ end
+
+ def as_json
+ skip_groups = @subscriptions.map(&:namespace_id)
+
+ {
+ groups_path: api_v4_groups_path(params: { min_access_level: Gitlab::Access::MAINTAINER, skip_groups: skip_groups }),
+ subscriptions: JiraConnect::SubscriptionEntity.represent(@subscriptions).as_json,
+ subscriptions_path: jira_connect_subscriptions_path,
+ login_path: signed_in? ? nil : jira_connect_users_path
+ }
+ end
+
+ private
+
+ def signed_in?
+ !!@signed_in
+ end
+end
diff --git a/app/serializers/jira_connect/group_entity.rb b/app/serializers/jira_connect/group_entity.rb
new file mode 100644
index 00000000000..e5a552cb9d8
--- /dev/null
+++ b/app/serializers/jira_connect/group_entity.rb
@@ -0,0 +1,8 @@
+# frozen_string_literal: true
+
+class JiraConnect::GroupEntity < Grape::Entity
+ expose :name
+ expose :avatar_url
+ expose :full_name
+ expose :description
+end
diff --git a/app/serializers/jira_connect/subscription_entity.rb b/app/serializers/jira_connect/subscription_entity.rb
new file mode 100644
index 00000000000..259cd5b122f
--- /dev/null
+++ b/app/serializers/jira_connect/subscription_entity.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+class JiraConnect::SubscriptionEntity < Grape::Entity
+ include Gitlab::Routing
+
+ expose :created_at
+ expose :unlink_path do |subscription|
+ jira_connect_subscription_path(subscription)
+ end
+ expose :namespace, with: JiraConnect::GroupEntity, as: :group
+end
diff --git a/app/serializers/merge_request_poll_cached_widget_entity.rb b/app/serializers/merge_request_poll_cached_widget_entity.rb
index 6ac43e02f3c..7fba52cbe17 100644
--- a/app/serializers/merge_request_poll_cached_widget_entity.rb
+++ b/app/serializers/merge_request_poll_cached_widget_entity.rb
@@ -50,11 +50,7 @@ class MergeRequestPollCachedWidgetEntity < IssuableEntity
MergeRequests::PipelineEntity.represent(merge_request.actual_head_pipeline, options)
end
- expose :merge_pipeline, if: ->(mr, _) {
- Feature.enabled?(:merge_request_cached_merge_pipeline_serializer, mr.project, default_enabled: :yaml) &&
- mr.merged? &&
- can?(request.current_user, :read_pipeline, mr.target_project)
- } do |merge_request, options|
+ expose :merge_pipeline, if: ->(mr, _) { mr.merged? && can?(request.current_user, :read_pipeline, mr.target_project) } do |merge_request, options|
MergeRequests::PipelineEntity.represent(merge_request.merge_pipeline, options)
end
diff --git a/app/serializers/merge_request_poll_widget_entity.rb b/app/serializers/merge_request_poll_widget_entity.rb
index 3ce67d92af1..074bd2d18d7 100644
--- a/app/serializers/merge_request_poll_widget_entity.rb
+++ b/app/serializers/merge_request_poll_widget_entity.rb
@@ -19,14 +19,6 @@ class MergeRequestPollWidgetEntity < Grape::Entity
# User entities
expose :merge_user, using: UserEntity
- expose :merge_pipeline, if: ->(mr, _) {
- Feature.disabled?(:merge_request_cached_merge_pipeline_serializer, mr.project, default_enabled: :yaml) &&
- mr.merged? &&
- can?(request.current_user, :read_pipeline, mr.target_project)
- } do |merge_request, options|
- MergeRequests::PipelineEntity.represent(merge_request.merge_pipeline, options)
- end
-
expose :default_merge_commit_message
expose :mergeable do |merge_request, options|
diff --git a/app/serializers/merge_request_widget_entity.rb b/app/serializers/merge_request_widget_entity.rb
index c3e8b66fe12..1c033dee5ff 100644
--- a/app/serializers/merge_request_widget_entity.rb
+++ b/app/serializers/merge_request_widget_entity.rb
@@ -110,9 +110,17 @@ class MergeRequestWidgetEntity < Grape::Entity
presenter(merge_request).closing_issues_links
end
+ expose :closing_count do |merge_request|
+ presenter(merge_request).closing_issues.size
+ end
+
expose :mentioned_but_not_closing do |merge_request|
presenter(merge_request).mentioned_issues_links
end
+
+ expose :mentioned_count do |merge_request|
+ presenter(merge_request).mentioned_issues.size
+ end
end
expose :codeclimate, if: -> (mr, _) { head_pipeline_downloadable_path_for_report_type(:codequality) } do
@@ -137,6 +145,23 @@ class MergeRequestWidgetEntity < Grape::Entity
merge_request.enabled_reports
end
+ expose :show_gitpod_button do |merge_request|
+ Gitlab::CurrentSettings.gitpod_enabled
+ end
+
+ expose :gitpod_url do |merge_request|
+ next unless Gitlab::CurrentSettings.gitpod_enabled
+
+ gitpod_url = Gitlab::CurrentSettings.gitpod_url
+ context_url = project_merge_request_url(merge_request.project, merge_request)
+
+ "#{gitpod_url}##{context_url}"
+ end
+
+ expose :gitpod_enabled do |merge_request|
+ current_user&.gitpod_enabled || false
+ end
+
private
delegate :current_user, to: :request
diff --git a/app/serializers/paginated_diff_entity.rb b/app/serializers/paginated_diff_entity.rb
index a2a9e7375a0..c656cff9dd7 100644
--- a/app/serializers/paginated_diff_entity.rb
+++ b/app/serializers/paginated_diff_entity.rb
@@ -17,7 +17,7 @@ class PaginatedDiffEntity < Grape::Entity
options.merge(
submodule_links: submodule_links,
code_navigation_path: code_navigation_path(diffs),
- conflicts: conflicts
+ conflicts: conflicts(allow_tree_conflicts: options[:allow_tree_conflicts])
)
)
end