Commit 18d6c174 authored by Rémy Coutable's avatar Rémy Coutable

Merge branch '346029-Fix-GraphQL/FieldDefinitions-offense-(Part-1/4)' into 'master'

Fix GraphQL/FieldDefinitions offense (Part 1/4)

See merge request gitlab-org/gitlab!76014
parents 0f3dee61 62a0a203
--- ---
GraphQL/FieldDefinitions: GraphQL/FieldDefinitions:
Exclude: Exclude:
- app/graphql/types/commit_type.rb
- app/graphql/types/group_type.rb
- app/graphql/types/issue_type.rb
- app/graphql/types/label_type.rb
- ee/app/graphql/types/ci/code_quality_degradation_type.rb - ee/app/graphql/types/ci/code_quality_degradation_type.rb
- ee/app/graphql/types/epic_type.rb - ee/app/graphql/types/epic_type.rb
- ee/app/graphql/types/group_release_stats_type.rb - ee/app/graphql/types/group_release_stats_type.rb
......
...@@ -10,33 +10,37 @@ module Types ...@@ -10,33 +10,37 @@ module Types
field :id, type: GraphQL::Types::ID, null: false, field :id, type: GraphQL::Types::ID, null: false,
description: 'ID (global ID) of the commit.' description: 'ID (global ID) of the commit.'
field :sha, type: GraphQL::Types::String, null: false, field :sha, type: GraphQL::Types::String, null: false,
description: 'SHA1 ID of the commit.' description: 'SHA1 ID of the commit.'
field :short_id, type: GraphQL::Types::String, null: false, field :short_id, type: GraphQL::Types::String, null: false,
description: 'Short SHA1 ID of the commit.' description: 'Short SHA1 ID of the commit.'
field :title, type: GraphQL::Types::String, null: true, calls_gitaly: true, field :title, type: GraphQL::Types::String, null: true, calls_gitaly: true,
description: 'Title of the commit message.' description: 'Title of the commit message.'
markdown_field :title_html, null: true
field :full_title, type: GraphQL::Types::String, null: true, calls_gitaly: true, field :full_title, type: GraphQL::Types::String, null: true, calls_gitaly: true,
description: 'Full title of the commit message.' description: 'Full title of the commit message.'
markdown_field :full_title_html, null: true
field :description, type: GraphQL::Types::String, null: true, field :description, type: GraphQL::Types::String, null: true,
description: 'Description of the commit message.' description: 'Description of the commit message.'
markdown_field :description_html, null: true
field :message, type: GraphQL::Types::String, null: true, field :message, type: GraphQL::Types::String, null: true,
description: 'Raw commit message.' description: 'Raw commit message.'
field :authored_date, type: Types::TimeType, null: true, field :authored_date, type: Types::TimeType, null: true,
description: 'Timestamp of when the commit was authored.' description: 'Timestamp of when the commit was authored.'
field :web_url, type: GraphQL::Types::String, null: false, field :web_url, type: GraphQL::Types::String, null: false,
description: 'Web URL of the commit.' description: 'Web URL of the commit.'
field :web_path, type: GraphQL::Types::String, null: false, field :web_path, type: GraphQL::Types::String, null: false,
description: 'Web path of the commit.' description: 'Web path of the commit.'
field :signature_html, type: GraphQL::Types::String, null: true, calls_gitaly: true, field :signature_html, type: GraphQL::Types::String, null: true, calls_gitaly: true,
description: 'Rendered HTML of the commit signature.' description: 'Rendered HTML of the commit signature.'
field :author_name, type: GraphQL::Types::String, null: true, field :author_name, type: GraphQL::Types::String, null: true,
description: 'Commit authors name.' description: 'Commit authors name.'
field :author_email, type: GraphQL::Types::String, null: true, field :author_email, type: GraphQL::Types::String, null: true,
...@@ -53,6 +57,10 @@ module Types ...@@ -53,6 +57,10 @@ module Types
description: 'Pipelines of the commit ordered latest first.', description: 'Pipelines of the commit ordered latest first.',
resolver: Resolvers::CommitPipelinesResolver resolver: Resolvers::CommitPipelinesResolver
markdown_field :title_html, null: true
markdown_field :full_title_html, null: true
markdown_field :description_html, null: true
def author_gravatar def author_gravatar
GravatarService.new.execute(object.author_email, 40) GravatarService.new.execute(object.author_email, 40)
end end
......
...@@ -176,15 +176,6 @@ module Types ...@@ -176,15 +176,6 @@ module Types
null: true, null: true,
description: 'Dependency proxy TTL policy for the group.' description: 'Dependency proxy TTL policy for the group.'
def label(title:)
BatchLoader::GraphQL.for(title).batch(key: group) do |titles, loader, args|
LabelsFinder
.new(current_user, group: args[:key], title: titles)
.execute
.each { |label| loader.call(label.title, label) }
end
end
field :labels, field :labels,
Types::LabelType.connection_type, Types::LabelType.connection_type,
null: true, null: true,
...@@ -221,6 +212,15 @@ module Types ...@@ -221,6 +212,15 @@ module Types
description: 'Work item types available to the group.', description: 'Work item types available to the group.',
feature_flag: :work_items feature_flag: :work_items
def label(title:)
BatchLoader::GraphQL.for(title).batch(key: group) do |titles, loader, args|
LabelsFinder
.new(current_user, group: args[:key], title: titles)
.execute
.each { |label| loader.call(label.title, label) }
end
end
def avatar_url def avatar_url
object.avatar_url(only_path: false) object.avatar_url(only_path: false)
end end
......
...@@ -21,10 +21,8 @@ module Types ...@@ -21,10 +21,8 @@ module Types
description: "Internal ID of the issue." description: "Internal ID of the issue."
field :title, GraphQL::Types::String, null: false, field :title, GraphQL::Types::String, null: false,
description: 'Title of the issue.' description: 'Title of the issue.'
markdown_field :title_html, null: true
field :description, GraphQL::Types::String, null: true, field :description, GraphQL::Types::String, null: true,
description: 'Description of the issue.' description: 'Description of the issue.'
markdown_field :description_html, null: true
field :state, IssueStateEnum, null: false, field :state, IssueStateEnum, null: false,
description: 'State of the issue.' description: 'State of the issue.'
...@@ -143,6 +141,9 @@ module Types ...@@ -143,6 +141,9 @@ module Types
field :escalation_status, Types::IncidentManagement::EscalationStatusEnum, null: true, field :escalation_status, Types::IncidentManagement::EscalationStatusEnum, null: true,
description: 'Escalation status of the issue.' description: 'Escalation status of the issue.'
markdown_field :title_html, null: true
markdown_field :description_html, null: true
def author def author
Gitlab::Graphql::Loaders::BatchModelLoader.new(User, object.author_id).find Gitlab::Graphql::Loaders::BatchModelLoader.new(User, object.author_id).find
end end
......
...@@ -12,7 +12,6 @@ module Types ...@@ -12,7 +12,6 @@ module Types
description: 'Label ID.' description: 'Label ID.'
field :description, GraphQL::Types::String, null: true, field :description, GraphQL::Types::String, null: true,
description: 'Description of the label (Markdown rendered as HTML for caching).' description: 'Description of the label (Markdown rendered as HTML for caching).'
markdown_field :description_html, null: true
field :title, GraphQL::Types::String, null: false, field :title, GraphQL::Types::String, null: false,
description: 'Content of the label.' description: 'Content of the label.'
field :color, GraphQL::Types::String, null: false, field :color, GraphQL::Types::String, null: false,
...@@ -23,5 +22,7 @@ module Types ...@@ -23,5 +22,7 @@ module Types
description: 'When this label was created.' description: 'When this label was created.'
field :updated_at, Types::TimeType, null: false, field :updated_at, Types::TimeType, null: false,
description: 'When this label was last updated.' description: 'When this label was last updated.'
markdown_field :description_html, null: true
end end
end end
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment