diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md index e93aa09d28a765bcfc09df56f0da75597cb21d2b..682a974fb4dd350dd6d5b3af5ec2cd4e8653992b 100644 --- a/doc/api/graphql/reference/index.md +++ b/doc/api/graphql/reference/index.md @@ -18772,6 +18772,7 @@ Represents a requirement. | <a id="requirementtitlehtml"></a>`titleHtml` | [`String`](#string) | GitLab Flavored Markdown rendering of `title`. | | <a id="requirementupdatedat"></a>`updatedAt` | [`Time!`](#time) | Timestamp of when the requirement was last updated. | | <a id="requirementuserpermissions"></a>`userPermissions` | [`RequirementPermissions!`](#requirementpermissions) | Permissions for the current user on the resource. | +| <a id="requirementworkitemiid"></a>`workItemIid` | [`ID!`](#id) | Work item IID of the requirement, will replace current IID as identifier soon. | #### Fields with arguments diff --git a/ee/app/graphql/resolvers/requirements_management/requirements_resolver.rb b/ee/app/graphql/resolvers/requirements_management/requirements_resolver.rb index 68b210aad7895fc4fedf547c3894e5fbda1c50d9..020715014df201cdc00a11eec3cbae0d181116b2 100644 --- a/ee/app/graphql/resolvers/requirements_management/requirements_resolver.rb +++ b/ee/app/graphql/resolvers/requirements_management/requirements_resolver.rb @@ -47,7 +47,8 @@ def preloads author: { requirement_issue: :author }, state: :requirement_issue, created_at: :requirement_issue, - updated_at: :requirement_issue + updated_at: :requirement_issue, + work_item_iid: :requirement_issue } end diff --git a/ee/app/graphql/types/requirements_management/requirement_type.rb b/ee/app/graphql/types/requirements_management/requirement_type.rb index 78c13c2f884a67ae46a4ae27dd96c11824c4a465..0d042634cfe78a188f87952feb6008fbaf613e4f 100644 --- a/ee/app/graphql/types/requirements_management/requirement_type.rb +++ b/ee/app/graphql/types/requirements_management/requirement_type.rb @@ -14,6 +14,11 @@ class RequirementType < BaseObject field :iid, GraphQL::Types::ID, null: false, description: 'Internal ID of the requirement.' + field :work_item_iid, GraphQL::Types::ID, null: false, + method: :work_item_iid, + description: 'Work item IID of the requirement, '\ + 'will replace current IID as identifier soon.' + field :title, GraphQL::Types::String, null: true, description: 'Title of the requirement.' field :title_html, GraphQL::Types::String, @@ -83,6 +88,10 @@ def project def author Gitlab::Graphql::Loaders::BatchModelLoader.new(User, object.author_id).find end + + def work_item_iid + object.requirement_issue.iid + end end end end diff --git a/ee/spec/graphql/types/requirements_management/requirement_type_spec.rb b/ee/spec/graphql/types/requirements_management/requirement_type_spec.rb index c8b22e6018ba714737899fa2bd238feefc4752d6..f10358ec3bfe7844da58cf2d34b2bc727b73a9e8 100644 --- a/ee/spec/graphql/types/requirements_management/requirement_type_spec.rb +++ b/ee/spec/graphql/types/requirements_management/requirement_type_spec.rb @@ -3,7 +3,7 @@ require 'spec_helper' RSpec.describe GitlabSchema.types['Requirement'] do - fields = %i[id iid title titleHtml description descriptionHtml state + fields = %i[id iid work_item_iid title titleHtml description descriptionHtml state last_test_report_state project author created_at updated_at user_permissions test_reports last_test_report_manually_created] diff --git a/ee/spec/requests/api/graphql/project/requirements_management/requirements_spec.rb b/ee/spec/requests/api/graphql/project/requirements_management/requirements_spec.rb index 276c4c94fac7a377f9648bfcae32b56e7d018db7..ca23622f4cde70932e7f9fa35f58db0f03670344 100644 --- a/ee/spec/requests/api/graphql/project/requirements_management/requirements_spec.rb +++ b/ee/spec/requests/api/graphql/project/requirements_management/requirements_spec.rb @@ -76,6 +76,7 @@ descriptionHtml createdAt updatedAt + workItemIid author { name }