diff --git a/app/assets/javascripts/content_editor/services/markdown_serializer.js b/app/assets/javascripts/content_editor/services/markdown_serializer.js index e3b5775e320..44b60fc46ee 100644 --- a/app/assets/javascripts/content_editor/services/markdown_serializer.js +++ b/app/assets/javascripts/content_editor/services/markdown_serializer.js @@ -1,7 +1,7 @@ import { MarkdownSerializer as ProseMirrorMarkdownSerializer, defaultMarkdownSerializer, -} from 'prosemirror-markdown'; +} from 'prosemirror-markdown/src/to_markdown'; import { DOMParser as ProseMirrorDOMParser } from 'prosemirror-model'; const wrapHtmlPayload = (payload) => `
${payload}
`; diff --git a/app/assets/javascripts/members/components/table/members_table.vue b/app/assets/javascripts/members/components/table/members_table.vue index 236aeaef418..c9ac9da0501 100644 --- a/app/assets/javascripts/members/components/table/members_table.vue +++ b/app/assets/javascripts/members/components/table/members_table.vue @@ -1,8 +1,9 @@ @@ -179,6 +194,18 @@ export default { {{ label }} + diff --git a/app/assets/javascripts/members/store/state.js b/app/assets/javascripts/members/store/state.js index 4006b4b501d..5415b1c5f25 100644 --- a/app/assets/javascripts/members/store/state.js +++ b/app/assets/javascripts/members/store/state.js @@ -1,5 +1,6 @@ export default ({ members, + pagination, tableFields, tableAttrs, tableSortableFields, @@ -8,6 +9,7 @@ export default ({ filteredSearchBar, }) => ({ members, + pagination, tableFields, tableAttrs, tableSortableFields, diff --git a/app/assets/javascripts/members/utils.js b/app/assets/javascripts/members/utils.js index 2bf30dd7b6e..031438d6ace 100644 --- a/app/assets/javascripts/members/utils.js +++ b/app/assets/javascripts/members/utils.js @@ -105,10 +105,14 @@ export const buildSortHref = ({ export const canOverride = () => false; export const parseDataAttributes = (el) => { - const { members, sourceId, memberPath, canManageMembers } = el.dataset; + const { members, pagination, sourceId, memberPath, canManageMembers } = el.dataset; return { members: convertObjectPropsToCamelCase(JSON.parse(members), { deep: true }), + pagination: convertObjectPropsToCamelCase(JSON.parse(pagination || '{}'), { + deep: true, + ignoreKeyNames: ['params'], + }), sourceId: parseInt(sourceId, 10), memberPath, canManageMembers: parseBoolean(canManageMembers), diff --git a/app/assets/javascripts/pages/users/activity_calendar.js b/app/assets/javascripts/pages/users/activity_calendar.js index d236dc4610a..c416106fdd8 100644 --- a/app/assets/javascripts/pages/users/activity_calendar.js +++ b/app/assets/javascripts/pages/users/activity_calendar.js @@ -247,7 +247,7 @@ export default class ActivityCalendar { renderKey() { const keyValues = [ - __('no contributions'), + __('No contributions'), __('1-9 contributions'), __('10-19 contributions'), __('20-29 contributions'), diff --git a/app/controllers/admin/users_controller.rb b/app/controllers/admin/users_controller.rb index 67829874b4b..c57b66ec9b5 100644 --- a/app/controllers/admin/users_controller.rb +++ b/app/controllers/admin/users_controller.rb @@ -10,12 +10,15 @@ class Admin::UsersController < Admin::ApplicationController feature_category :users + PAGINATION_WITH_COUNT_LIMIT = 1000 + def index @users = User.filter_items(params[:filter]).order_name_asc @users = @users.search_with_secondary_emails(params[:search_query]) if params[:search_query].present? @users = users_with_included_associations(@users) @users = @users.sort_by_attribute(@sort = params[:sort]) @users = @users.page(params[:page]) + @users = @users.without_count if paginate_without_count? @cohorts = load_cohorts @@ -228,6 +231,12 @@ class Admin::UsersController < Admin::ApplicationController protected + def paginate_without_count? + counts = Gitlab::Database::Count.approximate_counts([User]) + + counts[User] > PAGINATION_WITH_COUNT_LIMIT + end + def users_with_included_associations(users) users.includes(:authorized_projects) # rubocop: disable CodeReuse/ActiveRecord end diff --git a/app/controllers/projects/settings/ci_cd_controller.rb b/app/controllers/projects/settings/ci_cd_controller.rb index 1a465406660..014f348d630 100644 --- a/app/controllers/projects/settings/ci_cd_controller.rb +++ b/app/controllers/projects/settings/ci_cd_controller.rb @@ -119,12 +119,13 @@ module Projects .assignable_for(project) .ordered .page(params[:specific_page]).per(NUMBER_OF_RUNNERS_PER_PAGE) + .with_tags - @shared_runners = ::Ci::Runner.instance_type.active + @shared_runners = ::Ci::Runner.instance_type.active.with_tags @shared_runners_count = @shared_runners.count(:all) - @group_runners = ::Ci::Runner.belonging_to_parent_group_of_project(@project.id) + @group_runners = ::Ci::Runner.belonging_to_parent_group_of_project(@project.id).with_tags end def define_ci_variables diff --git a/app/experiments/concerns/project_commit_count.rb b/app/experiments/concerns/project_commit_count.rb new file mode 100644 index 00000000000..706a1a24640 --- /dev/null +++ b/app/experiments/concerns/project_commit_count.rb @@ -0,0 +1,21 @@ +# frozen_string_literal: true + +module ProjectCommitCount + include Gitlab::Git::WrapsGitalyErrors + + def commit_count_for(project, default_count: 0, max_count: nil, **exception_details) + raw_repo = project.repository&.raw_repository + root_ref = raw_repo&.root_ref + + return default_count unless root_ref + + Gitlab::GitalyClient::CommitService.new(raw_repo).commit_count(root_ref, { + all: true, # include all branches + max_count: max_count # limit as an optimization + }) + rescue StandardError => e + Gitlab::ErrorTracking.track_exception(e, exception_details) + + default_count + end +end diff --git a/app/experiments/empty_repo_upload_experiment.rb b/app/experiments/empty_repo_upload_experiment.rb new file mode 100644 index 00000000000..d0d79a5fb45 --- /dev/null +++ b/app/experiments/empty_repo_upload_experiment.rb @@ -0,0 +1,22 @@ +# frozen_string_literal: true + +class EmptyRepoUploadExperiment < ApplicationExperiment # rubocop:disable Gitlab/NamespacedClass + include ProjectCommitCount + + TRACKING_START_DATE = DateTime.parse('2021/4/20') + INITIAL_COMMIT_COUNT = 1 + + def track_initial_write + return unless should_track? # early return if we don't need to ask for commit counts + return unless context.project.created_at > TRACKING_START_DATE # early return for older projects + return unless commit_count == INITIAL_COMMIT_COUNT + + track(:initial_write, project: context.project) + end + + private + + def commit_count + commit_count_for(context.project, max_count: INITIAL_COMMIT_COUNT, experiment: name) + end +end diff --git a/app/experiments/new_project_readme_experiment.rb b/app/experiments/new_project_readme_experiment.rb index 8f88ad2adc1..c5c41330949 100644 --- a/app/experiments/new_project_readme_experiment.rb +++ b/app/experiments/new_project_readme_experiment.rb @@ -1,7 +1,7 @@ # frozen_string_literal: true class NewProjectReadmeExperiment < ApplicationExperiment # rubocop:disable Gitlab/NamespacedClass - include Gitlab::Git::WrapsGitalyErrors + include ProjectCommitCount INITIAL_WRITE_LIMIT = 3 EXPERIMENT_START_DATE = DateTime.parse('2021/1/20') @@ -21,25 +21,18 @@ class NewProjectReadmeExperiment < ApplicationExperiment # rubocop:disable Gitla def track_initial_writes(project) return unless should_track? # early return if we don't need to ask for commit counts return unless project.created_at > EXPERIMENT_START_DATE # early return for older projects - return unless (commit_count = commit_count_for(project)) < INITIAL_WRITE_LIMIT + return unless (count = commit_count(project)) < INITIAL_WRITE_LIMIT - track(:write, property: project.created_at.to_s, value: commit_count) + track(:write, property: project.created_at.to_s, value: count) end private - def commit_count_for(project) - raw_repo = project.repository&.raw_repository - return INITIAL_WRITE_LIMIT unless raw_repo&.root_ref - - begin - Gitlab::GitalyClient::CommitService.new(raw_repo).commit_count(raw_repo.root_ref, { - all: true, # include all branches - max_count: INITIAL_WRITE_LIMIT # limit as an optimization - }) - rescue StandardError => e - Gitlab::ErrorTracking.track_exception(e, experiment: name) - INITIAL_WRITE_LIMIT - end + def commit_count(project) + commit_count_for(project, + default_count: INITIAL_WRITE_LIMIT, + max_count: INITIAL_WRITE_LIMIT, + experiment: name + ) end end diff --git a/app/graphql/mutations/labels/create.rb b/app/graphql/mutations/labels/create.rb index ccbd1c37cbf..eeda9c0a1e9 100644 --- a/app/graphql/mutations/labels/create.rb +++ b/app/graphql/mutations/labels/create.rb @@ -23,7 +23,11 @@ module Mutations argument :color, GraphQL::STRING_TYPE, required: false, default_value: Label::DEFAULT_COLOR, - description: "The color of the label given in 6-digit hex notation with leading '#' sign (e.g. #FFAABB) or one of the CSS color names in https://developer.mozilla.org/en-US/docs/Web/CSS/color_value#Color_keywords." + description: <<~DESC + The color of the label given in 6-digit hex notation with leading '#' sign + (for example, `#FFAABB`) or one of the CSS color names + . + DESC authorize :admin_label diff --git a/app/graphql/resolvers/concerns/issue_resolver_arguments.rb b/app/graphql/resolvers/concerns/issue_resolver_arguments.rb index 0ff3997f3bc..aa08d62c6a5 100644 --- a/app/graphql/resolvers/concerns/issue_resolver_arguments.rb +++ b/app/graphql/resolvers/concerns/issue_resolver_arguments.rb @@ -7,57 +7,57 @@ module IssueResolverArguments include LooksAhead argument :iid, GraphQL::STRING_TYPE, - required: false, - description: 'IID of the issue. For example, "1".' + required: false, + description: 'IID of the issue. For example, "1".' argument :iids, [GraphQL::STRING_TYPE], - required: false, - description: 'List of IIDs of issues. For example, [1, 2].' + required: false, + description: 'List of IIDs of issues. For example, ["1", "2"].' argument :label_name, [GraphQL::STRING_TYPE, null: true], - required: false, - description: 'Labels applied to this issue.' + required: false, + description: 'Labels applied to this issue.' argument :milestone_title, [GraphQL::STRING_TYPE, null: true], - required: false, - description: 'Milestone applied to this issue.' + required: false, + description: 'Milestone applied to this issue.' argument :author_username, GraphQL::STRING_TYPE, - required: false, - description: 'Username of the author of the issue.' + required: false, + description: 'Username of the author of the issue.' argument :assignee_username, GraphQL::STRING_TYPE, - required: false, - description: 'Username of a user assigned to the issue.', - deprecated: { reason: 'Use `assigneeUsernames`', milestone: '13.11' } + required: false, + description: 'Username of a user assigned to the issue.', + deprecated: { reason: 'Use `assigneeUsernames`', milestone: '13.11' } argument :assignee_usernames, [GraphQL::STRING_TYPE], - required: false, - description: 'Usernames of users assigned to the issue.' + required: false, + description: 'Usernames of users assigned to the issue.' argument :assignee_id, GraphQL::STRING_TYPE, - required: false, - description: 'ID of a user assigned to the issues, "none" and "any" values are supported.' + required: false, + description: 'ID of a user assigned to the issues, "none" and "any" values are supported.' argument :created_before, Types::TimeType, - required: false, - description: 'Issues created before this date.' + required: false, + description: 'Issues created before this date.' argument :created_after, Types::TimeType, - required: false, - description: 'Issues created after this date.' + required: false, + description: 'Issues created after this date.' argument :updated_before, Types::TimeType, - required: false, - description: 'Issues updated before this date.' + required: false, + description: 'Issues updated before this date.' argument :updated_after, Types::TimeType, - required: false, - description: 'Issues updated after this date.' + required: false, + description: 'Issues updated after this date.' argument :closed_before, Types::TimeType, - required: false, - description: 'Issues closed before this date.' + required: false, + description: 'Issues closed before this date.' argument :closed_after, Types::TimeType, - required: false, - description: 'Issues closed after this date.' + required: false, + description: 'Issues closed after this date.' argument :search, GraphQL::STRING_TYPE, - required: false, - description: 'Search query for issue title or description.' + required: false, + description: 'Search query for issue title or description.' argument :types, [Types::IssueTypeEnum], - as: :issue_types, - description: 'Filter issues by the given issue types.', - required: false + as: :issue_types, + description: 'Filter issues by the given issue types.', + required: false argument :not, Types::Issues::NegatedIssueFilterInputType, - description: 'List of negated params.', + description: 'Negated arguments.', prepare: ->(negated_args, ctx) { negated_args.to_h }, required: false end diff --git a/app/helpers/gitlab_routing_helper.rb b/app/helpers/gitlab_routing_helper.rb index 48af4793fb0..5f15686560d 100644 --- a/app/helpers/gitlab_routing_helper.rb +++ b/app/helpers/gitlab_routing_helper.rb @@ -166,6 +166,16 @@ module GitlabRoutingHelper resend_invite_group_group_member_path(group_member.source, group_member) end + # Members + def source_members_url(member) + case member.source_type + when 'Namespace' + group_group_members_url(member.source) + when 'Project' + project_project_members_url(member.source) + end + end + # Artifacts # Rails path generators are slow because they need to do large regex comparisons diff --git a/app/helpers/groups/group_members_helper.rb b/app/helpers/groups/group_members_helper.rb index 3e7d6febabf..4bd18b62e0d 100644 --- a/app/helpers/groups/group_members_helper.rb +++ b/app/helpers/groups/group_members_helper.rb @@ -22,9 +22,10 @@ module Groups::GroupMembersHelper end # Overridden in `ee/app/helpers/ee/groups/group_members_helper.rb` - def group_members_list_data_attributes(group, members) + def group_members_list_data_attributes(group, members, pagination = {}) { members: members_data_json(group, members), + pagination: members_pagination_data_json(members, pagination), member_path: group_group_member_path(group, ':id'), source_id: group.id, can_manage_members: can?(current_user, :admin_group_member, group).to_s @@ -32,8 +33,11 @@ module Groups::GroupMembersHelper end def group_group_links_list_data_attributes(group) + group_links = group.shared_with_group_links + { - members: group_group_links_data_json(group.shared_with_group_links), + members: group_group_links_data_json(group_links), + pagination: members_pagination_data_json(group_links), member_path: group_group_link_path(group, ':id'), source_id: group.id } diff --git a/app/helpers/members_helper.rb b/app/helpers/members_helper.rb index 5dc636ad996..4261f0660d5 100644 --- a/app/helpers/members_helper.rb +++ b/app/helpers/members_helper.rb @@ -65,4 +65,14 @@ module MembersHelper 'group and any subresources' end + + def members_pagination_data_json(members, pagination = {}) + { + current_page: members.respond_to?(:current_page) ? members.current_page : nil, + per_page: members.respond_to?(:limit_value) ? members.limit_value : nil, + total_items: members.respond_to?(:total_count) ? members.total_count : members.count, + param_name: pagination[:param_name] || nil, + params: pagination[:params] || {} + }.to_json + end end diff --git a/app/helpers/projects/project_members_helper.rb b/app/helpers/projects/project_members_helper.rb index 662afbcfd25..d3559c14d0d 100644 --- a/app/helpers/projects/project_members_helper.rb +++ b/app/helpers/projects/project_members_helper.rb @@ -35,9 +35,10 @@ module Projects::ProjectMembersHelper MemberSerializer.new.represent(members, { current_user: current_user, group: project.group, source: project }).to_json end - def project_members_list_data_attributes(project, members) + def project_members_list_data_attributes(project, members, pagination = {}) { members: project_members_data_json(project, members), + pagination: members_pagination_data_json(members, pagination), member_path: project_project_member_path(project, ':id'), source_id: project.id, can_manage_members: can_manage_project_members?(project).to_s @@ -47,6 +48,7 @@ module Projects::ProjectMembersHelper def project_group_links_list_data_attributes(project, group_links) { members: project_group_links_data_json(group_links), + pagination: members_pagination_data_json(group_links), member_path: project_group_link_path(project, ':id'), source_id: project.id, can_manage_members: can_manage_project_members?(project).to_s diff --git a/app/models/concerns/cascading_namespace_setting_attribute.rb b/app/models/concerns/cascading_namespace_setting_attribute.rb index 2b4a108a9a0..2100e6a4237 100644 --- a/app/models/concerns/cascading_namespace_setting_attribute.rb +++ b/app/models/concerns/cascading_namespace_setting_attribute.rb @@ -55,6 +55,7 @@ module CascadingNamespaceSettingAttribute # public methods define_attr_reader(attribute) define_attr_writer(attribute) + define_lock_attr_writer(attribute) define_lock_methods(attribute) alias_boolean(attribute) @@ -97,7 +98,17 @@ module CascadingNamespaceSettingAttribute def define_attr_writer(attribute) define_method("#{attribute}=") do |value| + return value if value == cascaded_ancestor_value(attribute) + clear_memoization(attribute) + super(value) + end + end + + def define_lock_attr_writer(attribute) + define_method("lock_#{attribute}=") do |value| + attr_value = public_send(attribute) # rubocop:disable GitlabSecurity/PublicSend + write_attribute(attribute, attr_value) if self[attribute].nil? super(value) end diff --git a/app/policies/project_member_policy.rb b/app/policies/project_member_policy.rb index ca33b95e523..91f1eb35506 100644 --- a/app/policies/project_member_policy.rb +++ b/app/policies/project_member_policy.rb @@ -8,7 +8,11 @@ class ProjectMemberPolicy < BasePolicy condition(:project_bot) { @subject.user&.project_bot? } rule { anonymous }.prevent_all - rule { target_is_owner }.prevent_all + + rule { target_is_owner }.policy do + prevent :update_project_member + prevent :destroy_project_member + end rule { ~project_bot & can?(:admin_project_member) }.policy do enable :update_project_member diff --git a/app/views/admin/users/_users.html.haml b/app/views/admin/users/_users.html.haml index cd128e39c4f..3c325f8a456 100644 --- a/app/views/admin/users/_users.html.haml +++ b/app/views/admin/users/_users.html.haml @@ -83,6 +83,6 @@ = render partial: 'admin/users/user', collection: @users -= paginate @users, theme: "gitlab" += paginate_collection @users = render partial: 'admin/users/modals' diff --git a/app/views/groups/group_members/index.html.haml b/app/views/groups/group_members/index.html.haml index 106a7832cc7..53ca694299e 100644 --- a/app/views/groups/group_members/index.html.haml +++ b/app/views/groups/group_members/index.html.haml @@ -62,10 +62,9 @@ %span.badge.gl-tab-counter-badge.badge-muted.badge-pill.gl-badge.sm= @requesters.count .tab-content #tab-members.tab-pane{ class: ('active' unless invited_active) } - .js-group-members-list{ data: group_members_list_data_attributes(@group, @members) } + .js-group-members-list{ data: group_members_list_data_attributes(@group, @members, { param_name: :page, params: { invited_members_page: nil, search_invited: nil } }) } .loading .spinner.spinner-md - = paginate @members, theme: 'gitlab', params: { invited_members_page: nil, search_invited: nil } - if @group.shared_with_group_links.any? #tab-groups.tab-pane .js-group-group-links-list{ data: group_group_links_list_data_attributes(@group) } @@ -73,10 +72,9 @@ .spinner.spinner-md - if show_invited_members #tab-invited-members.tab-pane{ class: ('active' if invited_active) } - .js-group-invited-members-list{ data: group_members_list_data_attributes(@group, @invited_members) } + .js-group-invited-members-list{ data: group_members_list_data_attributes(@group, @invited_members, { param_name: :invited_members_page, params: { page: nil } }) } .loading .spinner.spinner-md - = paginate @invited_members, param_name: 'invited_members_page', theme: 'gitlab', params: { page: nil } - if show_access_requests #tab-access-requests.tab-pane .js-group-access-requests-list{ data: group_members_list_data_attributes(@group, @requesters) } diff --git a/app/views/projects/blob/viewers/_license.html.haml b/app/views/projects/blob/viewers/_license.html.haml index d2bd90a898a..320d7dd4b9f 100644 --- a/app/views/projects/blob/viewers/_license.html.haml +++ b/app/views/projects/blob/viewers/_license.html.haml @@ -1,8 +1,6 @@ - license = viewer.license = sprite_icon('scale') -This project is licensed under the -= succeed '.' do - %strong= license.name += _("This project is licensed under the %{strong_start}%{license_name}%{strong_end}.").html_safe % { license_name: license.name, strong_start: ''.html_safe, strong_end: ''.html_safe } -= link_to 'Learn more', license.url, target: '_blank', rel: 'noopener noreferrer' += link_to _('Learn more'), license.url, target: '_blank', rel: 'noopener noreferrer' diff --git a/app/views/projects/project_members/index.html.haml b/app/views/projects/project_members/index.html.haml index 22bf61b6873..0e4100208d9 100644 --- a/app/views/projects/project_members/index.html.haml +++ b/app/views/projects/project_members/index.html.haml @@ -75,10 +75,9 @@ %span.badge.gl-tab-counter-badge.badge-muted.badge-pill.gl-badge.sm= @requesters.count .tab-content #tab-members.tab-pane{ class: ('active' unless groups_tab_active?) } - .js-project-members-list{ data: project_members_list_data_attributes(@project, @project_members) } + .js-project-members-list{ data: project_members_list_data_attributes(@project, @project_members, { param_name: :page, params: { search_groups: nil } }) } .loading .spinner.spinner-md - = paginate @project_members, theme: "gitlab", params: { search_groups: nil } - if show_groups?(@group_links) #tab-groups.tab-pane{ class: ('active' if groups_tab_active?) } .js-project-group-links-list{ data: project_group_links_list_data_attributes(@project, @group_links) } diff --git a/app/workers/post_receive.rb b/app/workers/post_receive.rb index 313b901c08e..d21c63f90fb 100644 --- a/app/workers/post_receive.rb +++ b/app/workers/post_receive.rb @@ -123,7 +123,7 @@ class PostReceive # rubocop:disable Scalability/IdempotentWorker def after_project_changes_hooks(project, user, refs, changes) experiment(:new_project_readme, actor: user).track_initial_writes(project) - experiment(:empty_repo_upload, project: project).track(:initial_write) if project.empty_repo? + experiment(:empty_repo_upload, project: project).track_initial_write repository_update_hook_data = Gitlab::DataBuilder::Repository.update(project, user, changes, refs) SystemHooksService.new.execute_hooks(repository_update_hook_data, :repository_update_hooks) Gitlab::UsageDataCounters::SourceCodeCounter.count(:pushes) diff --git a/changelogs/unreleased/21107-optimize-sql-queries-in-settings-ci-cd-controller.yml b/changelogs/unreleased/21107-optimize-sql-queries-in-settings-ci-cd-controller.yml new file mode 100644 index 00000000000..a46cf2617ad --- /dev/null +++ b/changelogs/unreleased/21107-optimize-sql-queries-in-settings-ci-cd-controller.yml @@ -0,0 +1,5 @@ +--- +title: Optimize CI Settings page to reduce N+1 queries +merge_request: 59625 +author: +type: performance diff --git a/changelogs/unreleased/327814-allow-project-owner-as-member.yml b/changelogs/unreleased/327814-allow-project-owner-as-member.yml new file mode 100644 index 00000000000..4286eb86f42 --- /dev/null +++ b/changelogs/unreleased/327814-allow-project-owner-as-member.yml @@ -0,0 +1,5 @@ +--- +title: Fix restrictive permissions for ProjectMembers who are owners +merge_request: 59844 +author: +type: fixed diff --git a/changelogs/unreleased/328519-fix-timeouts-when-paginating-issues-in-admin-panel.yml b/changelogs/unreleased/328519-fix-timeouts-when-paginating-issues-in-admin-panel.yml new file mode 100644 index 00000000000..3af6d78118b --- /dev/null +++ b/changelogs/unreleased/328519-fix-timeouts-when-paginating-issues-in-admin-panel.yml @@ -0,0 +1,5 @@ +--- +title: Improve pagination of users in the admin panel +merge_request: 59884 +author: +type: performance diff --git a/changelogs/unreleased/Externalize-strings-in-viewers-_license-html-haml.yml b/changelogs/unreleased/Externalize-strings-in-viewers-_license-html-haml.yml new file mode 100644 index 00000000000..a966237a999 --- /dev/null +++ b/changelogs/unreleased/Externalize-strings-in-viewers-_license-html-haml.yml @@ -0,0 +1,5 @@ +--- +title: Externalize strings in viewers/_license.html.haml +merge_request: 58452 +author: nuwe1 +type: other diff --git a/changelogs/unreleased/ajk-linked-graphql-docs-with-args.yml b/changelogs/unreleased/ajk-linked-graphql-docs-with-args.yml new file mode 100644 index 00000000000..a5eff7a2212 --- /dev/null +++ b/changelogs/unreleased/ajk-linked-graphql-docs-with-args.yml @@ -0,0 +1,5 @@ +--- +title: Add missing parts of GraphQL schema to GraphQL documentation +merge_request: 55944 +author: +type: changed diff --git a/changelogs/unreleased/dblessing_cascading_override.yml b/changelogs/unreleased/dblessing_cascading_override.yml new file mode 100644 index 00000000000..17b6dd9c792 --- /dev/null +++ b/changelogs/unreleased/dblessing_cascading_override.yml @@ -0,0 +1,5 @@ +--- +title: Fix cascading settings attr writer behavior +merge_request: 59910 +author: +type: fixed diff --git a/changelogs/unreleased/typo-no-contributions.yml b/changelogs/unreleased/typo-no-contributions.yml new file mode 100644 index 00000000000..ed91e662f62 --- /dev/null +++ b/changelogs/unreleased/typo-no-contributions.yml @@ -0,0 +1,5 @@ +--- +title: Rename 'no contributions' to 'No contributions' in profile activity graph helper +merge_request: 59076 +author: Yogi (@yo) +type: changed diff --git a/config/metrics/counts_all/20210216180927_grafana_integrated_projects.yml b/config/metrics/counts_all/20210216180927_grafana_integrated_projects.yml index 09816e1b0f1..6a92f868665 100644 --- a/config/metrics/counts_all/20210216180927_grafana_integrated_projects.yml +++ b/config/metrics/counts_all/20210216180927_grafana_integrated_projects.yml @@ -1,10 +1,10 @@ --- key_path: counts.grafana_integrated_projects -description: +description: Total Grafana integrations attached to projects product_section: ops product_stage: product_group: group::monitor -product_category: +product_category: metrics value_type: number status: data_available time_frame: all @@ -13,4 +13,3 @@ distribution: - ce tier: - free -skip_validation: true diff --git a/config/metrics/settings/20210204124922_grafana_link_enabled.yml b/config/metrics/settings/20210204124922_grafana_link_enabled.yml index 596ae1384ca..90f825dfc36 100644 --- a/config/metrics/settings/20210204124922_grafana_link_enabled.yml +++ b/config/metrics/settings/20210204124922_grafana_link_enabled.yml @@ -8,9 +8,8 @@ product_category: collection value_type: boolean status: data_available time_frame: none -data_source: +data_source: database distribution: - ce tier: - free -skip_validation: true diff --git a/doc/api/graphql/reference/index.md b/doc/api/graphql/reference/index.md index 053060c2a44..1cb82fbb0d8 100644 --- a/doc/api/graphql/reference/index.md +++ b/doc/api/graphql/reference/index.md @@ -30,13 +30,13 @@ in [Removed Items](../removed_items.md). The `Query` type contains the API's top-level entry points for all executable queries. -### `ciApplicationSettings` +### `Query.ciApplicationSettings` CI related settings that apply to the entire instance. Returns [`CiApplicationSettings`](#ciapplicationsettings). -### `ciConfig` +### `Query.ciConfig` Linted and processed contents of a CI config. Should not be requested more than once per request. @@ -47,11 +47,11 @@ Returns [`CiConfig`](#ciconfig). | Name | Type | Description | | ---- | ---- | ----------- | -| `content` | [`String!`](#string) | Contents of `.gitlab-ci.yml`. | -| `dryRun` | [`Boolean`](#boolean) | Run pipeline creation simulation, or only do static check. | -| `projectPath` | [`ID!`](#id) | The project of the CI config. | +| `content` | [`String!`](#string) | Contents of `.gitlab-ci.yml`. | +| `dryRun` | [`Boolean`](#boolean) | Run pipeline creation simulation, or only do static check. | +| `projectPath` | [`ID!`](#id) | The project of the CI config. | -### `containerRepository` +### `Query.containerRepository` Find a container repository. @@ -61,44 +61,44 @@ Returns [`ContainerRepositoryDetails`](#containerrepositorydetails). | Name | Type | Description | | ---- | ---- | ----------- | -| `id` | [`ContainerRepositoryID!`](#containerrepositoryid) | The global ID of the container repository. | +| `id` | [`ContainerRepositoryID!`](#containerrepositoryid) | The global ID of the container repository. | -### `currentLicense` +### `Query.currentLicense` Fields related to the current license. Returns [`CurrentLicense`](#currentlicense). -### `currentUser` +### `Query.currentUser` Get information about current user. Returns [`User`](#user). -### `designManagement` +### `Query.designManagement` Fields related to design management. Returns [`DesignManagement!`](#designmanagement). -### `devopsAdoptionSegments` +### `Query.devopsAdoptionSegments` Get configured DevOps adoption segments on the instance. Returns [`DevopsAdoptionSegmentConnection`](#devopsadoptionsegmentconnection). +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + #### Arguments | Name | Type | Description | | ---- | ---- | ----------- | -| `after` | [`String`](#string) | Returns the elements in the list that come after the specified cursor. | -| `before` | [`String`](#string) | Returns the elements in the list that come before the specified cursor. | -| `directDescendantsOnly` | [`Boolean`](#boolean) | Limits segments to direct descendants of specified parent. | -| `first` | [`Int`](#int) | Returns the first _n_ elements from the list. | -| `last` | [`Int`](#int) | Returns the last _n_ elements from the list. | -| `parentNamespaceId` | [`NamespaceID`](#namespaceid) | Filter by ancestor namespace. | +| `directDescendantsOnly` | [`Boolean`](#boolean) | Limits segments to direct descendants of specified parent. | +| `parentNamespaceId` | [`NamespaceID`](#namespaceid) | Filter by ancestor namespace. | -### `echo` +### `Query.echo` Testing endpoint to validate the API with. @@ -108,9 +108,9 @@ Returns [`String!`](#string). | Name | Type | Description | | ---- | ---- | ----------- | -| `text` | [`String!`](#string) | Text to echo back. | +| `text` | [`String!`](#string) | Text to echo back. | -### `geoNode` +### `Query.geoNode` Find a Geo node. @@ -120,9 +120,9 @@ Returns [`GeoNode`](#geonode). | Name | Type | Description | | ---- | ---- | ----------- | -| `name` | [`String`](#string) | The name of the Geo node. Defaults to the current Geo node name. | +| `name` | [`String`](#string) | The name of the Geo node. Defaults to the current Geo node name. | -### `group` +### `Query.group` Find a group. @@ -132,38 +132,38 @@ Returns [`Group`](#group). | Name | Type | Description | | ---- | ---- | ----------- | -| `fullPath` | [`ID!`](#id) | The full path of the project, group or namespace, e.g., `gitlab-org/gitlab-foss`. | +| `fullPath` | [`ID!`](#id) | The full path of the project, group or namespace, e.g., `gitlab-org/gitlab-foss`. | -### `instanceSecurityDashboard` +### `Query.instanceSecurityDashboard` Fields related to Instance Security Dashboard. Returns [`InstanceSecurityDashboard`](#instancesecuritydashboard). -### `instanceStatisticsMeasurements` +### `Query.instanceStatisticsMeasurements` Get statistics on the instance. WARNING: **Deprecated** in 13.10. This was renamed. -Use: `Query.usageTrendsMeasurements`. +Use: [`Query.usageTrendsMeasurements`](#queryusagetrendsmeasurements). Returns [`UsageTrendsMeasurementConnection`](#usagetrendsmeasurementconnection). +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + #### Arguments | Name | Type | Description | | ---- | ---- | ----------- | -| `after` | [`String`](#string) | Returns the elements in the list that come after the specified cursor. | -| `before` | [`String`](#string) | Returns the elements in the list that come before the specified cursor. | -| `first` | [`Int`](#int) | Returns the first _n_ elements from the list. | -| `identifier` | [`MeasurementIdentifier!`](#measurementidentifier) | The type of measurement/statistics to retrieve. | -| `last` | [`Int`](#int) | Returns the last _n_ elements from the list. | -| `recordedAfter` | [`Time`](#time) | Measurement recorded after this date. | -| `recordedBefore` | [`Time`](#time) | Measurement recorded before this date. | +| `identifier` | [`MeasurementIdentifier!`](#measurementidentifier) | The type of measurement/statistics to retrieve. | +| `recordedAfter` | [`Time`](#time) | Measurement recorded after this date. | +| `recordedBefore` | [`Time`](#time) | Measurement recorded before this date. | -### `issue` +### `Query.issue` Find an Issue. @@ -173,9 +173,9 @@ Returns [`Issue`](#issue). | Name | Type | Description | | ---- | ---- | ----------- | -| `id` | [`IssueID!`](#issueid) | The global ID of the Issue. | +| `id` | [`IssueID!`](#issueid) | The global ID of the Issue. | -### `iteration` +### `Query.iteration` Find an iteration. @@ -185,30 +185,25 @@ Returns [`Iteration`](#iteration). | Name | Type | Description | | ---- | ---- | ----------- | -| `id` | [`IterationID!`](#iterationid) | Find an iteration by its ID. | +| `id` | [`IterationID!`](#iterationid) | Find an iteration by its ID. | -### `licenseHistoryEntries` +### `Query.licenseHistoryEntries` Fields related to entries in the license history. Returns [`LicenseHistoryEntryConnection`](#licensehistoryentryconnection). -#### Arguments +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. -| Name | Type | Description | -| ---- | ---- | ----------- | -| `after` | [`String`](#string) | Returns the elements in the list that come after the specified cursor. | -| `before` | [`String`](#string) | Returns the elements in the list that come before the specified cursor. | -| `first` | [`Int`](#int) | Returns the first _n_ elements from the list. | -| `last` | [`Int`](#int) | Returns the last _n_ elements from the list. | - -### `metadata` +### `Query.metadata` Metadata about GitLab. Returns [`Metadata`](#metadata). -### `milestone` +### `Query.milestone` Find a milestone. @@ -218,9 +213,9 @@ Returns [`Milestone`](#milestone). | Name | Type | Description | | ---- | ---- | ----------- | -| `id` | [`MilestoneID!`](#milestoneid) | Find a milestone by its ID. | +| `id` | [`MilestoneID!`](#milestoneid) | Find a milestone by its ID. | -### `namespace` +### `Query.namespace` Find a namespace. @@ -230,9 +225,9 @@ Returns [`Namespace`](#namespace). | Name | Type | Description | | ---- | ---- | ----------- | -| `fullPath` | [`ID!`](#id) | The full path of the project, group or namespace, e.g., `gitlab-org/gitlab-foss`. | +| `fullPath` | [`ID!`](#id) | The full path of the project, group or namespace, e.g., `gitlab-org/gitlab-foss`. | -### `package` +### `Query.package` Find a package. @@ -242,9 +237,9 @@ Returns [`PackageDetailsType`](#packagedetailstype). | Name | Type | Description | | ---- | ---- | ----------- | -| `id` | [`PackagesPackageID!`](#packagespackageid) | The global ID of the package. | +| `id` | [`PackagesPackageID!`](#packagespackageid) | The global ID of the package. | -### `project` +### `Query.project` Find a project. @@ -254,44 +249,39 @@ Returns [`Project`](#project). | Name | Type | Description | | ---- | ---- | ----------- | -| `fullPath` | [`ID!`](#id) | The full path of the project, group or namespace, e.g., `gitlab-org/gitlab-foss`. | +| `fullPath` | [`ID!`](#id) | The full path of the project, group or namespace, e.g., `gitlab-org/gitlab-foss`. | -### `projects` +### `Query.projects` Find projects visible to the current user. Returns [`ProjectConnection`](#projectconnection). +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + #### Arguments | Name | Type | Description | | ---- | ---- | ----------- | -| `after` | [`String`](#string) | Returns the elements in the list that come after the specified cursor. | -| `before` | [`String`](#string) | Returns the elements in the list that come before the specified cursor. | -| `first` | [`Int`](#int) | Returns the first _n_ elements from the list. | -| `ids` | [`[ID!]`](#id) | Filter projects by IDs. | -| `last` | [`Int`](#int) | Returns the last _n_ elements from the list. | -| `membership` | [`Boolean`](#boolean) | Limit projects that the current user is a member of. | -| `search` | [`String`](#string) | Search query for project name, path, or description. | -| `searchNamespaces` | [`Boolean`](#boolean) | Include namespace in project search. | -| `sort` | [`String`](#string) | Sort order of results. | +| `ids` | [`[ID!]`](#id) | Filter projects by IDs. | +| `membership` | [`Boolean`](#boolean) | Limit projects that the current user is a member of. | +| `search` | [`String`](#string) | Search query for project name, path, or description. | +| `searchNamespaces` | [`Boolean`](#boolean) | Include namespace in project search. | +| `sort` | [`String`](#string) | Sort order of results. | -### `runnerPlatforms` +### `Query.runnerPlatforms` Supported runner platforms. Returns [`RunnerPlatformConnection`](#runnerplatformconnection). -#### Arguments +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. -| Name | Type | Description | -| ---- | ---- | ----------- | -| `after` | [`String`](#string) | Returns the elements in the list that come after the specified cursor. | -| `before` | [`String`](#string) | Returns the elements in the list that come before the specified cursor. | -| `first` | [`Int`](#int) | Returns the first _n_ elements from the list. | -| `last` | [`Int`](#int) | Returns the last _n_ elements from the list. | - -### `runnerSetup` +### `Query.runnerSetup` Runner setup instructions. @@ -301,51 +291,51 @@ Returns [`RunnerSetup`](#runnersetup). | Name | Type | Description | | ---- | ---- | ----------- | -| `architecture` | [`String!`](#string) | Architecture to generate the instructions for. | -| `groupId` | [`GroupID`](#groupid) | Group to register the runner for. Deprecated in 13.11: No longer used. | -| `platform` | [`String!`](#string) | Platform to generate the instructions for. | -| `projectId` | [`ProjectID`](#projectid) | Project to register the runner for. Deprecated in 13.11: No longer used. | +| `architecture` | [`String!`](#string) | Architecture to generate the instructions for. | +| `groupId` **{warning-solid}** | [`GroupID`](#groupid) | **Deprecated** in 13.11. No longer used. | +| `platform` | [`String!`](#string) | Platform to generate the instructions for. | +| `projectId` **{warning-solid}** | [`ProjectID`](#projectid) | **Deprecated** in 13.11. No longer used. | -### `snippets` +### `Query.snippets` Find Snippets visible to the current user. Returns [`SnippetConnection`](#snippetconnection). +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + #### Arguments | Name | Type | Description | | ---- | ---- | ----------- | -| `after` | [`String`](#string) | Returns the elements in the list that come after the specified cursor. | -| `authorId` | [`UserID`](#userid) | The ID of an author. | -| `before` | [`String`](#string) | Returns the elements in the list that come before the specified cursor. | -| `explore` | [`Boolean`](#boolean) | Explore personal snippets. | -| `first` | [`Int`](#int) | Returns the first _n_ elements from the list. | -| `ids` | [`[SnippetID!]`](#snippetid) | Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`. | -| `last` | [`Int`](#int) | Returns the last _n_ elements from the list. | -| `projectId` | [`ProjectID`](#projectid) | The ID of a project. | -| `type` | [`TypeEnum`](#typeenum) | The type of snippet. | -| `visibility` | [`VisibilityScopesEnum`](#visibilityscopesenum) | The visibility of the snippet. | +| `authorId` | [`UserID`](#userid) | The ID of an author. | +| `explore` | [`Boolean`](#boolean) | Explore personal snippets. | +| `ids` | [`[SnippetID!]`](#snippetid) | Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`. | +| `projectId` | [`ProjectID`](#projectid) | The ID of a project. | +| `type` | [`TypeEnum`](#typeenum) | The type of snippet. | +| `visibility` | [`VisibilityScopesEnum`](#visibilityscopesenum) | The visibility of the snippet. | -### `usageTrendsMeasurements` +### `Query.usageTrendsMeasurements` Get statistics on the instance. Returns [`UsageTrendsMeasurementConnection`](#usagetrendsmeasurementconnection). +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + #### Arguments | Name | Type | Description | | ---- | ---- | ----------- | -| `after` | [`String`](#string) | Returns the elements in the list that come after the specified cursor. | -| `before` | [`String`](#string) | Returns the elements in the list that come before the specified cursor. | -| `first` | [`Int`](#int) | Returns the first _n_ elements from the list. | -| `identifier` | [`MeasurementIdentifier!`](#measurementidentifier) | The type of measurement/statistics to retrieve. | -| `last` | [`Int`](#int) | Returns the last _n_ elements from the list. | -| `recordedAfter` | [`Time`](#time) | Measurement recorded after this date. | -| `recordedBefore` | [`Time`](#time) | Measurement recorded before this date. | +| `identifier` | [`MeasurementIdentifier!`](#measurementidentifier) | The type of measurement/statistics to retrieve. | +| `recordedAfter` | [`Time`](#time) | Measurement recorded after this date. | +| `recordedBefore` | [`Time`](#time) | Measurement recorded before this date. | -### `user` +### `Query.user` Find a user. @@ -355,71 +345,71 @@ Returns [`User`](#user). | Name | Type | Description | | ---- | ---- | ----------- | -| `id` | [`UserID`](#userid) | ID of the User. | -| `username` | [`String`](#string) | Username of the User. | +| `id` | [`UserID`](#userid) | ID of the User. | +| `username` | [`String`](#string) | Username of the User. | -### `users` +### `Query.users` Find users. Returns [`UserConnection`](#userconnection). +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + #### Arguments | Name | Type | Description | | ---- | ---- | ----------- | -| `admins` | [`Boolean`](#boolean) | Return only admin users. | -| `after` | [`String`](#string) | Returns the elements in the list that come after the specified cursor. | -| `before` | [`String`](#string) | Returns the elements in the list that come before the specified cursor. | -| `first` | [`Int`](#int) | Returns the first _n_ elements from the list. | -| `ids` | [`[ID!]`](#id) | List of user Global IDs. | -| `last` | [`Int`](#int) | Returns the last _n_ elements from the list. | -| `search` | [`String`](#string) | Query to search users by name, username, or primary email. | -| `sort` | [`Sort`](#sort) | Sort users by this criteria. | -| `usernames` | [`[String!]`](#string) | List of usernames. | +| `admins` | [`Boolean`](#boolean) | Return only admin users. | +| `ids` | [`[ID!]`](#id) | List of user Global IDs. | +| `search` | [`String`](#string) | Query to search users by name, username, or primary email. | +| `sort` | [`Sort`](#sort) | Sort users by this criteria. | +| `usernames` | [`[String!]`](#string) | List of usernames. | -### `vulnerabilities` +### `Query.vulnerabilities` Vulnerabilities reported on projects on the current user's instance security dashboard. Returns [`VulnerabilityConnection`](#vulnerabilityconnection). +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + #### Arguments | Name | Type | Description | | ---- | ---- | ----------- | -| `after` | [`String`](#string) | Returns the elements in the list that come after the specified cursor. | -| `before` | [`String`](#string) | Returns the elements in the list that come before the specified cursor. | -| `first` | [`Int`](#int) | Returns the first _n_ elements from the list. | -| `hasIssues` | [`Boolean`](#boolean) | Returns only the vulnerabilities which have linked issues. | -| `hasResolution` | [`Boolean`](#boolean) | Returns only the vulnerabilities which have been resolved on default branch. | -| `last` | [`Int`](#int) | Returns the last _n_ elements from the list. | -| `projectId` | [`[ID!]`](#id) | Filter vulnerabilities by project. | -| `reportType` | [`[VulnerabilityReportType!]`](#vulnerabilityreporttype) | Filter vulnerabilities by report type. | -| `scanner` | [`[String!]`](#string) | Filter vulnerabilities by VulnerabilityScanner.externalId. | -| `scannerId` | [`[VulnerabilitiesScannerID!]`](#vulnerabilitiesscannerid) | Filter vulnerabilities by scanner ID. | -| `severity` | [`[VulnerabilitySeverity!]`](#vulnerabilityseverity) | Filter vulnerabilities by severity. | -| `sort` | [`VulnerabilitySort`](#vulnerabilitysort) | List vulnerabilities by sort order. | -| `state` | [`[VulnerabilityState!]`](#vulnerabilitystate) | Filter vulnerabilities by state. | +| `hasIssues` | [`Boolean`](#boolean) | Returns only the vulnerabilities which have linked issues. | +| `hasResolution` | [`Boolean`](#boolean) | Returns only the vulnerabilities which have been resolved on default branch. | +| `projectId` | [`[ID!]`](#id) | Filter vulnerabilities by project. | +| `reportType` | [`[VulnerabilityReportType!]`](#vulnerabilityreporttype) | Filter vulnerabilities by report type. | +| `scanner` | [`[String!]`](#string) | Filter vulnerabilities by VulnerabilityScanner.externalId. | +| `scannerId` | [`[VulnerabilitiesScannerID!]`](#vulnerabilitiesscannerid) | Filter vulnerabilities by scanner ID. | +| `severity` | [`[VulnerabilitySeverity!]`](#vulnerabilityseverity) | Filter vulnerabilities by severity. | +| `sort` | [`VulnerabilitySort`](#vulnerabilitysort) | List vulnerabilities by sort order. | +| `state` | [`[VulnerabilityState!]`](#vulnerabilitystate) | Filter vulnerabilities by state. | -### `vulnerabilitiesCountByDay` +### `Query.vulnerabilitiesCountByDay` Number of vulnerabilities per day for the projects on the current user's instance security dashboard. Returns [`VulnerabilitiesCountByDayConnection`](#vulnerabilitiescountbydayconnection). +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + #### Arguments | Name | Type | Description | | ---- | ---- | ----------- | -| `after` | [`String`](#string) | Returns the elements in the list that come after the specified cursor. | -| `before` | [`String`](#string) | Returns the elements in the list that come before the specified cursor. | -| `endDate` | [`ISO8601Date!`](#iso8601date) | Last day for which to fetch vulnerability history. | -| `first` | [`Int`](#int) | Returns the first _n_ elements from the list. | -| `last` | [`Int`](#int) | Returns the last _n_ elements from the list. | -| `startDate` | [`ISO8601Date!`](#iso8601date) | First day for which to fetch vulnerability history. | +| `endDate` | [`ISO8601Date!`](#iso8601date) | Last day for which to fetch vulnerability history. | +| `startDate` | [`ISO8601Date!`](#iso8601date) | First day for which to fetch vulnerability history. | -### `vulnerabilitiesCountByDayAndSeverity` +### `Query.vulnerabilitiesCountByDayAndSeverity` Number of vulnerabilities per severity level, per day, for the projects on the current user's instance security dashboard. @@ -428,22 +418,22 @@ current user's instance security dashboard. WARNING: **Deprecated** in 13.3. Use of this is not recommended. -Use: `Query.vulnerabilitiesCountByDay`. +Use: [`Query.vulnerabilitiesCountByDay`](#queryvulnerabilitiescountbyday). Returns [`VulnerabilitiesCountByDayAndSeverityConnection`](#vulnerabilitiescountbydayandseverityconnection). +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + #### Arguments | Name | Type | Description | | ---- | ---- | ----------- | -| `after` | [`String`](#string) | Returns the elements in the list that come after the specified cursor. | -| `before` | [`String`](#string) | Returns the elements in the list that come before the specified cursor. | -| `endDate` | [`ISO8601Date!`](#iso8601date) | Last day for which to fetch vulnerability history. | -| `first` | [`Int`](#int) | Returns the first _n_ elements from the list. | -| `last` | [`Int`](#int) | Returns the last _n_ elements from the list. | -| `startDate` | [`ISO8601Date!`](#iso8601date) | First day for which to fetch vulnerability history. | +| `endDate` | [`ISO8601Date!`](#iso8601date) | Last day for which to fetch vulnerability history. | +| `startDate` | [`ISO8601Date!`](#iso8601date) | First day for which to fetch vulnerability history. | -### `vulnerability` +### `Query.vulnerability` Find a vulnerability. @@ -453,14 +443,6063 @@ Returns [`Vulnerability`](#vulnerability). | Name | Type | Description | | ---- | ---- | ----------- | -| `id` | [`VulnerabilityID!`](#vulnerabilityid) | The Global ID of the Vulnerability. | +| `id` | [`VulnerabilityID!`](#vulnerabilityid) | The Global ID of the Vulnerability. | + +## `Mutation` type + +The `Mutation` type contains all the mutations you can execute. + +All mutations receive their arguments in a single input object named `input`, and all mutations +support at least a return field `errors` containing a list of error messages. + +All input objects may have a `clientMutationId: String` field, identifying the mutation. + +For example: + +```graphql +mutation($id: NoteableID!, $body: String!) { + createNote(input: { noteableId: $id, body: $body }) { + errors + } +} +``` + +### `Mutation.addAwardEmoji` + +WARNING: +**Deprecated** in 13.2. +Use awardEmojiAdd. + +Input type: `AddAwardEmojiInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `awardableId` | [`AwardableID!`](#awardableid) | The global ID of the awardable resource. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `name` | [`String!`](#string) | The emoji name. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `awardEmoji` | [`AwardEmoji`](#awardemoji) | The award emoji after mutation. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.addProjectToSecurityDashboard` + +Input type: `AddProjectToSecurityDashboardInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`ProjectID!`](#projectid) | ID of the project to be added to Instance Security Dashboard. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `project` | [`Project`](#project) | Project that was added to the Instance Security Dashboard. | + +### `Mutation.adminSidekiqQueuesDeleteJobs` + +Input type: `AdminSidekiqQueuesDeleteJobsInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `callerId` | [`String`](#string) | Delete jobs matching caller_id in the context metadata. | +| `clientId` | [`String`](#string) | Delete jobs matching client_id in the context metadata. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `featureCategory` | [`String`](#string) | Delete jobs matching feature_category in the context metadata. | +| `project` | [`String`](#string) | Delete jobs matching project in the context metadata. | +| `queueName` | [`String!`](#string) | The name of the queue to delete jobs from. | +| `relatedClass` | [`String`](#string) | Delete jobs matching related_class in the context metadata. | +| `remoteIp` | [`String`](#string) | Delete jobs matching remote_ip in the context metadata. | +| `rootNamespace` | [`String`](#string) | Delete jobs matching root_namespace in the context metadata. | +| `subscriptionPlan` | [`String`](#string) | Delete jobs matching subscription_plan in the context metadata. | +| `user` | [`String`](#string) | Delete jobs matching user in the context metadata. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `result` | [`DeleteJobsResponse`](#deletejobsresponse) | Information about the status of the deletion request. | + +### `Mutation.alertSetAssignees` + +Input type: `AlertSetAssigneesInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `assigneeUsernames` | [`[String!]!`](#string) | The usernames to assign to the alert. Replaces existing assignees by default. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `iid` | [`String!`](#string) | The IID of the alert to mutate. | +| `operationMode` | [`MutationOperationMode`](#mutationoperationmode) | The operation to perform. Defaults to REPLACE. | +| `projectPath` | [`ID!`](#id) | The project the alert to mutate is in. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `alert` | [`AlertManagementAlert`](#alertmanagementalert) | The alert after mutation. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `issue` | [`Issue`](#issue) | The issue created after mutation. | +| `todo` | [`Todo`](#todo) | The to-do item after mutation. | + +### `Mutation.alertTodoCreate` + +Input type: `AlertTodoCreateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `iid` | [`String!`](#string) | The IID of the alert to mutate. | +| `projectPath` | [`ID!`](#id) | The project the alert to mutate is in. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `alert` | [`AlertManagementAlert`](#alertmanagementalert) | The alert after mutation. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `issue` | [`Issue`](#issue) | The issue created after mutation. | +| `todo` | [`Todo`](#todo) | The to-do item after mutation. | + +### `Mutation.apiFuzzingCiConfigurationCreate` + +Input type: `ApiFuzzingCiConfigurationCreateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `apiSpecificationFile` | [`String!`](#string) | File path or URL to the file that defines the API surface for scanning. Must be in the format specified by the `scanMode` argument. | +| `authPassword` | [`String`](#string) | CI variable containing the password for authenticating with the target API. | +| `authUsername` | [`String`](#string) | CI variable containing the username for authenticating with the target API. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `projectPath` | [`ID!`](#id) | Full path of the project. | +| `scanMode` | [`ApiFuzzingScanMode!`](#apifuzzingscanmode) | The mode for API fuzzing scans. | +| `scanProfile` | [`String`](#string) | Name of a default profile to use for scanning. Ex: Quick-10. | +| `target` | [`String!`](#string) | URL for the target of API fuzzing scans. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `configurationYaml` | [`String`](#string) | A YAML snippet that can be inserted into the project's `.gitlab-ci.yml` to set up API fuzzing scans. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `gitlabCiYamlEditPath` | [`String`](#string) | The location at which the project's `.gitlab-ci.yml` file can be edited in the browser. | + +### `Mutation.awardEmojiAdd` + +Input type: `AwardEmojiAddInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `awardableId` | [`AwardableID!`](#awardableid) | The global ID of the awardable resource. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `name` | [`String!`](#string) | The emoji name. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `awardEmoji` | [`AwardEmoji`](#awardemoji) | The award emoji after mutation. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.awardEmojiRemove` + +Input type: `AwardEmojiRemoveInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `awardableId` | [`AwardableID!`](#awardableid) | The global ID of the awardable resource. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `name` | [`String!`](#string) | The emoji name. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `awardEmoji` | [`AwardEmoji`](#awardemoji) | The award emoji after mutation. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.awardEmojiToggle` + +Input type: `AwardEmojiToggleInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `awardableId` | [`AwardableID!`](#awardableid) | The global ID of the awardable resource. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `name` | [`String!`](#string) | The emoji name. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `awardEmoji` | [`AwardEmoji`](#awardemoji) | The award emoji after mutation. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `toggledOn` | [`Boolean!`](#boolean) | Indicates the status of the emoji. True if the toggle awarded the emoji, and false if the toggle removed the emoji. | + +### `Mutation.boardListCreate` + +Input type: `BoardListCreateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `assigneeId` | [`UserID`](#userid) | Global ID of an existing user. | +| `backlog` | [`Boolean`](#boolean) | Create the backlog list. | +| `boardId` | [`BoardID!`](#boardid) | Global ID of the issue board to mutate. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `iterationId` | [`IterationID`](#iterationid) | Global ID of an existing iteration. | +| `labelId` | [`LabelID`](#labelid) | Global ID of an existing label. | +| `milestoneId` | [`MilestoneID`](#milestoneid) | Global ID of an existing milestone. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `list` | [`BoardList`](#boardlist) | Issue list in the issue board. | + +### `Mutation.boardListUpdateLimitMetrics` + +Input type: `BoardListUpdateLimitMetricsInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `limitMetric` | [`ListLimitMetric`](#listlimitmetric) | The new limit metric type for the list. | +| `listId` | [`ListID!`](#listid) | The global ID of the list. | +| `maxIssueCount` | [`Int`](#int) | The new maximum issue count limit. | +| `maxIssueWeight` | [`Int`](#int) | The new maximum issue weight limit. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `list` | [`BoardList`](#boardlist) | The updated list. | + +### `Mutation.bulkFindOrCreateDevopsAdoptionSegments` + +Input type: `BulkFindOrCreateDevopsAdoptionSegmentsInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `namespaceIds` | [`[NamespaceID!]!`](#namespaceid) | List of Namespace IDs for the segments. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `segments` | [`[DevopsAdoptionSegment!]`](#devopsadoptionsegment) | Created segments after mutation. | + +### `Mutation.ciCdSettingsUpdate` + +Input type: `CiCdSettingsUpdateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `fullPath` | [`ID!`](#id) | Full Path of the project the settings belong to. | +| `keepLatestArtifact` | [`Boolean`](#boolean) | Indicates if the latest artifact should be kept for this project. | +| `mergePipelinesEnabled` | [`Boolean`](#boolean) | Indicates if merge pipelines are enabled for the project. | +| `mergeTrainsEnabled` | [`Boolean`](#boolean) | Indicates if merge trains are enabled for the project. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `ciCdSettings` | [`ProjectCiCdSetting!`](#projectcicdsetting) | The CI/CD settings after mutation. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.clusterAgentDelete` + +Input type: `ClusterAgentDeleteInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`ClustersAgentID!`](#clustersagentid) | Global ID of the cluster agent that will be deleted. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.clusterAgentTokenCreate` + +Input type: `ClusterAgentTokenCreateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `clusterAgentId` | [`ClustersAgentID!`](#clustersagentid) | Global ID of the cluster agent that will be associated with the new token. | +| `description` | [`String`](#string) | Description of the token. | +| `name` | [`String!`](#string) | Name of the token. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `secret` | [`String`](#string) | Token secret value. Make sure you save it - you won't be able to access it again. | +| `token` | [`ClusterAgentToken`](#clusteragenttoken) | Token created after mutation. | + +### `Mutation.clusterAgentTokenDelete` + +Input type: `ClusterAgentTokenDeleteInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`ClustersAgentTokenID!`](#clustersagenttokenid) | Global ID of the cluster agent token that will be deleted. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.commitCreate` + +Input type: `CommitCreateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `actions` | [`[CommitAction!]!`](#commitaction) | Array of action hashes to commit as a batch. | +| `branch` | [`String!`](#string) | Name of the branch to commit into, it can be a new branch. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `message` | [`String!`](#string) | Raw commit message. | +| `projectPath` | [`ID!`](#id) | Project full path the branch is associated with. | +| `startBranch` | [`String`](#string) | If on a new branch, name of the original branch. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `commit` | [`Commit`](#commit) | The commit after mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.configureSast` + +Input type: `ConfigureSastInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `configuration` | [`SastCiConfigurationInput!`](#sastciconfigurationinput) | SAST CI configuration for the project. | +| `projectPath` | [`ID!`](#id) | Full path of the project. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `status` | [`String!`](#string) | Status of creating the commit for the supplied SAST CI configuration. | +| `successPath` | [`String`](#string) | Redirect path to use when the response is successful. | + +### `Mutation.createAlertIssue` + +Input type: `CreateAlertIssueInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `iid` | [`String!`](#string) | The IID of the alert to mutate. | +| `projectPath` | [`ID!`](#id) | The project the alert to mutate is in. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `alert` | [`AlertManagementAlert`](#alertmanagementalert) | The alert after mutation. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `issue` | [`Issue`](#issue) | The issue created after mutation. | +| `todo` | [`Todo`](#todo) | The to-do item after mutation. | + +### `Mutation.createAnnotation` + +Input type: `CreateAnnotationInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `clusterId` | [`ClustersClusterID`](#clustersclusterid) | The global ID of the cluster to add an annotation to. | +| `dashboardPath` | [`String!`](#string) | The path to a file defining the dashboard on which the annotation should be added. | +| `description` | [`String!`](#string) | The description of the annotation. | +| `endingAt` | [`Time`](#time) | Timestamp indicating ending moment to which the annotation relates. | +| `environmentId` | [`EnvironmentID`](#environmentid) | The global ID of the environment to add an annotation to. | +| `startingAt` | [`Time!`](#time) | Timestamp indicating starting moment to which the annotation relates. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `annotation` | [`MetricsDashboardAnnotation`](#metricsdashboardannotation) | The created annotation. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.createBoard` + +Input type: `CreateBoardInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `assigneeId` | [`UserID`](#userid) | ID of user to be assigned to the board. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `groupPath` | [`ID`](#id) | Full path of the group with which the resource is associated. | +| `hideBacklogList` | [`Boolean`](#boolean) | Whether or not backlog list is hidden. | +| `hideClosedList` | [`Boolean`](#boolean) | Whether or not closed list is hidden. | +| `iterationId` | [`IterationID`](#iterationid) | ID of iteration to be assigned to the board. | +| `labelIds` | [`[LabelID!]`](#labelid) | IDs of labels to be added to the board. | +| `labels` | [`[String!]`](#string) | Labels of the issue. | +| `milestoneId` | [`MilestoneID`](#milestoneid) | ID of milestone to be assigned to the board. | +| `name` | [`String`](#string) | The board name. | +| `projectPath` | [`ID`](#id) | Full path of the project with which the resource is associated. | +| `weight` | [`Int`](#int) | Weight value to be assigned to the board. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `board` | [`Board`](#board) | The board after mutation. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.createBranch` + +Input type: `CreateBranchInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `name` | [`String!`](#string) | Name of the branch. | +| `projectPath` | [`ID!`](#id) | Project full path the branch is associated with. | +| `ref` | [`String!`](#string) | Branch name or commit SHA to create branch from. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `branch` | [`Branch`](#branch) | Branch after mutation. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.createClusterAgent` + +Input type: `CreateClusterAgentInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `name` | [`String!`](#string) | Name of the cluster agent. | +| `projectPath` | [`ID!`](#id) | Full path of the associated project for this cluster agent. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `clusterAgent` | [`ClusterAgent`](#clusteragent) | Cluster agent created after mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.createComplianceFramework` + +Input type: `CreateComplianceFrameworkInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `namespacePath` | [`ID!`](#id) | Full path of the namespace to add the compliance framework to. | +| `params` | [`ComplianceFrameworkInput!`](#complianceframeworkinput) | Parameters to update the compliance framework with. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `framework` | [`ComplianceFramework`](#complianceframework) | The created compliance framework. | + +### `Mutation.createCustomEmoji` + +Available only when feature flag `custom_emoji` is enabled. + +Input type: `CreateCustomEmojiInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `groupPath` | [`ID!`](#id) | Namespace full path the emoji is associated with. | +| `name` | [`String!`](#string) | Name of the emoji. | +| `url` | [`String!`](#string) | Location of the emoji file. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `customEmoji` | [`CustomEmoji`](#customemoji) | The new custom emoji. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.createDevopsAdoptionSegment` + +Input type: `CreateDevopsAdoptionSegmentInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `namespaceId` | [`NamespaceID!`](#namespaceid) | Namespace ID to set for the segment. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `segment` | [`DevopsAdoptionSegment`](#devopsadoptionsegment) | The segment after mutation. | + +### `Mutation.createDiffNote` + +Input type: `CreateDiffNoteInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `body` | [`String!`](#string) | Content of the note. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `confidential` | [`Boolean`](#boolean) | The confidentiality flag of a note. Default is false. | +| `noteableId` | [`NoteableID!`](#noteableid) | The global ID of the resource to add a note to. | +| `position` | [`DiffPositionInput!`](#diffpositioninput) | The position of this note on a diff. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `note` | [`Note`](#note) | The note after mutation. | + +### `Mutation.createEpic` + +Input type: `CreateEpicInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `addLabelIds` | [`[ID!]`](#id) | The IDs of labels to be added to the epic. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `confidential` | [`Boolean`](#boolean) | Indicates if the epic is confidential. | +| `description` | [`String`](#string) | The description of the epic. | +| `dueDateFixed` | [`String`](#string) | The end date of the epic. | +| `dueDateIsFixed` | [`Boolean`](#boolean) | Indicates end date should be sourced from due_date_fixed field not the issue milestones. | +| `groupPath` | [`ID!`](#id) | The group the epic to mutate is in. | +| `removeLabelIds` | [`[ID!]`](#id) | The IDs of labels to be removed from the epic. | +| `startDateFixed` | [`String`](#string) | The start date of the epic. | +| `startDateIsFixed` | [`Boolean`](#boolean) | Indicates start date should be sourced from start_date_fixed field not the issue milestones. | +| `title` | [`String`](#string) | The title of the epic. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `epic` | [`Epic`](#epic) | The created epic. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.createImageDiffNote` + +Input type: `CreateImageDiffNoteInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `body` | [`String!`](#string) | Content of the note. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `confidential` | [`Boolean`](#boolean) | The confidentiality flag of a note. Default is false. | +| `noteableId` | [`NoteableID!`](#noteableid) | The global ID of the resource to add a note to. | +| `position` | [`DiffImagePositionInput!`](#diffimagepositioninput) | The position of this note on a diff. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `note` | [`Note`](#note) | The note after mutation. | + +### `Mutation.createIssue` + +Input type: `CreateIssueInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `assigneeIds` | [`[UserID!]`](#userid) | The array of user IDs to assign to the issue. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `confidential` | [`Boolean`](#boolean) | Indicates the issue is confidential. | +| `createdAt` | [`Time`](#time) | Timestamp when the issue was created. Available only for admins and project owners. | +| `description` | [`String`](#string) | Description of the issue. | +| `discussionToResolve` | [`String`](#string) | The ID of a discussion to resolve. Also pass `merge_request_to_resolve_discussions_of`. | +| `dueDate` | [`ISO8601Date`](#iso8601date) | Due date of the issue. | +| `epicId` | [`EpicID`](#epicid) | The ID of an epic to associate the issue with. | +| `healthStatus` | [`HealthStatus`](#healthstatus) | The desired health status. | +| `iid` | [`Int`](#int) | The IID (internal ID) of a project issue. Only admins and project owners can modify. | +| `labelIds` | [`[LabelID!]`](#labelid) | The IDs of labels to be added to the issue. | +| `labels` | [`[String!]`](#string) | Labels of the issue. | +| `locked` | [`Boolean`](#boolean) | Indicates discussion is locked on the issue. | +| `mergeRequestToResolveDiscussionsOf` | [`MergeRequestID`](#mergerequestid) | The IID of a merge request for which to resolve discussions. | +| `milestoneId` | [`MilestoneID`](#milestoneid) | The ID of the milestone to assign to the issue. On update milestone will be removed if set to null. | +| `projectPath` | [`ID!`](#id) | Project full path the issue is associated with. | +| `title` | [`String!`](#string) | Title of the issue. | +| `weight` | [`Int`](#int) | The weight of the issue. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `issue` | [`Issue`](#issue) | The issue after mutation. | + +### `Mutation.createIteration` + +Input type: `CreateIterationInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `description` | [`String`](#string) | The description of the iteration. | +| `dueDate` | [`String`](#string) | The end date of the iteration. | +| `groupPath` | [`ID`](#id) | Full path of the group with which the resource is associated. | +| `projectPath` | [`ID`](#id) | Full path of the project with which the resource is associated. | +| `startDate` | [`String`](#string) | The start date of the iteration. | +| `title` | [`String`](#string) | The title of the iteration. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `iteration` | [`Iteration`](#iteration) | The created iteration. | + +### `Mutation.createNote` + +Input type: `CreateNoteInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `body` | [`String!`](#string) | Content of the note. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `confidential` | [`Boolean`](#boolean) | The confidentiality flag of a note. Default is false. | +| `discussionId` | [`DiscussionID`](#discussionid) | The global ID of the discussion this note is in reply to. | +| `noteableId` | [`NoteableID!`](#noteableid) | The global ID of the resource to add a note to. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `note` | [`Note`](#note) | The note after mutation. | + +### `Mutation.createRequirement` + +Input type: `CreateRequirementInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `description` | [`String`](#string) | Description of the requirement. | +| `projectPath` | [`ID!`](#id) | Full project path the requirement is associated with. | +| `title` | [`String`](#string) | Title of the requirement. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `requirement` | [`Requirement`](#requirement) | Requirement after mutation. | + +### `Mutation.createSnippet` + +Input type: `CreateSnippetInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `blobActions` | [`[SnippetBlobActionInputType!]`](#snippetblobactioninputtype) | Actions to perform over the snippet repository and blobs. | +| `captchaResponse` **{warning-solid}** | [`String`](#string) | **Deprecated:** Use spam protection with HTTP headers instead. Deprecated in 13.11. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `description` | [`String`](#string) | Description of the snippet. | +| `projectPath` | [`ID`](#id) | The project full path the snippet is associated with. | +| `spamLogId` **{warning-solid}** | [`Int`](#int) | **Deprecated:** Use spam protection with HTTP headers instead. Deprecated in 13.11. | +| `title` | [`String!`](#string) | Title of the snippet. | +| `uploadedFiles` | [`[String!]`](#string) | The paths to files uploaded in the snippet description. | +| `visibilityLevel` | [`VisibilityLevelsEnum!`](#visibilitylevelsenum) | The visibility level of the snippet. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `captchaSiteKey` **{warning-solid}** | [`String`](#string) | **Deprecated:** Use spam protection with HTTP headers instead. Deprecated in 13.11. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `needsCaptchaResponse` **{warning-solid}** | [`Boolean`](#boolean) | **Deprecated:** Use spam protection with HTTP headers instead. Deprecated in 13.11. | +| `snippet` | [`Snippet`](#snippet) | The snippet after mutation. | +| `spam` **{warning-solid}** | [`Boolean`](#boolean) | **Deprecated:** Use spam protection with HTTP headers instead. Deprecated in 13.11. | +| `spamLogId` **{warning-solid}** | [`Int`](#int) | **Deprecated:** Use spam protection with HTTP headers instead. Deprecated in 13.11. | + +### `Mutation.createTestCase` + +Input type: `CreateTestCaseInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `description` | [`String`](#string) | The test case description. | +| `labelIds` | [`[ID!]`](#id) | The IDs of labels to be added to the test case. | +| `projectPath` | [`ID!`](#id) | The project full path to create the test case. | +| `title` | [`String!`](#string) | The test case title. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `testCase` | [`Issue`](#issue) | The test case created. | + +### `Mutation.dastOnDemandScanCreate` + +Input type: `DastOnDemandScanCreateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `dastScannerProfileId` | [`DastScannerProfileID`](#dastscannerprofileid) | ID of the scanner profile to be used for the scan. | +| `dastSiteProfileId` | [`DastSiteProfileID!`](#dastsiteprofileid) | ID of the site profile to be used for the scan. | +| `fullPath` | [`ID!`](#id) | The project the site profile belongs to. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `pipelineUrl` | [`String`](#string) | URL of the pipeline that was created. | + +### `Mutation.dastProfileCreate` + +Input type: `DastProfileCreateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `branchName` | [`String`](#string) | The associated branch. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `dastScannerProfileId` | [`DastScannerProfileID!`](#dastscannerprofileid) | ID of the scanner profile to be associated. | +| `dastSiteProfileId` | [`DastSiteProfileID!`](#dastsiteprofileid) | ID of the site profile to be associated. | +| `description` | [`String`](#string) | The description of the profile. Defaults to an empty string. | +| `fullPath` | [`ID!`](#id) | The project the profile belongs to. | +| `name` | [`String!`](#string) | The name of the profile. | +| `runAfterCreate` | [`Boolean`](#boolean) | Run scan using profile after creation. Defaults to false. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `dastProfile` | [`DastProfile`](#dastprofile) | The created profile. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `pipelineUrl` | [`String`](#string) | The URL of the pipeline that was created. Requires `runAfterCreate` to be set to `true`. | + +### `Mutation.dastProfileDelete` + +Input type: `DastProfileDeleteInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`DastProfileID!`](#dastprofileid) | ID of the profile to be deleted. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.dastProfileRun` + +Input type: `DastProfileRunInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `fullPath` | [`ID!`](#id) | Full path for the project the scanner profile belongs to. | +| `id` | [`DastProfileID!`](#dastprofileid) | ID of the profile to be used for the scan. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `pipelineUrl` | [`String`](#string) | URL of the pipeline that was created. | + +### `Mutation.dastProfileUpdate` + +Input type: `DastProfileUpdateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `branchName` | [`String`](#string) | The associated branch. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `dastScannerProfileId` | [`DastScannerProfileID`](#dastscannerprofileid) | ID of the scanner profile to be associated. | +| `dastSiteProfileId` | [`DastSiteProfileID`](#dastsiteprofileid) | ID of the site profile to be associated. | +| `description` | [`String`](#string) | The description of the profile. Defaults to an empty string. | +| `fullPath` | [`ID!`](#id) | The project the profile belongs to. | +| `id` | [`DastProfileID!`](#dastprofileid) | ID of the profile to be deleted. | +| `name` | [`String`](#string) | The name of the profile. | +| `runAfterUpdate` | [`Boolean`](#boolean) | Run scan using profile after update. Defaults to false. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `dastProfile` | [`DastProfile`](#dastprofile) | The updated profile. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `pipelineUrl` | [`String`](#string) | The URL of the pipeline that was created. Requires the input argument `runAfterUpdate` to be set to `true` when calling the mutation, otherwise no pipeline will be created. | + +### `Mutation.dastScannerProfileCreate` + +Input type: `DastScannerProfileCreateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `fullPath` | [`ID!`](#id) | The project the scanner profile belongs to. | +| `profileName` | [`String!`](#string) | The name of the scanner profile. | +| `scanType` | [`DastScanTypeEnum`](#dastscantypeenum) | Indicates the type of DAST scan that will run. Either a Passive Scan or an Active Scan. | +| `showDebugMessages` | [`Boolean`](#boolean) | Indicates if debug messages should be included in DAST console output. True to include the debug messages. | +| `spiderTimeout` | [`Int`](#int) | The maximum number of minutes allowed for the spider to traverse the site. | +| `targetTimeout` | [`Int`](#int) | The maximum number of seconds allowed for the site under test to respond to a request. | +| `useAjaxSpider` | [`Boolean`](#boolean) | Indicates if the AJAX spider should be used to crawl the target site. True to run the AJAX spider in addition to the traditional spider, and false to run only the traditional spider. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `globalId` **{warning-solid}** | [`DastScannerProfileID`](#dastscannerprofileid) | **Deprecated:** Use `id`. Deprecated in 13.6. | +| `id` | [`DastScannerProfileID`](#dastscannerprofileid) | ID of the scanner profile. | + +### `Mutation.dastScannerProfileDelete` + +Input type: `DastScannerProfileDeleteInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `fullPath` | [`ID!`](#id) | Full path for the project the scanner profile belongs to. | +| `id` | [`DastScannerProfileID!`](#dastscannerprofileid) | ID of the scanner profile to be deleted. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.dastScannerProfileUpdate` + +Input type: `DastScannerProfileUpdateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `fullPath` | [`ID!`](#id) | The project the scanner profile belongs to. | +| `id` | [`DastScannerProfileID!`](#dastscannerprofileid) | ID of the scanner profile to be updated. | +| `profileName` | [`String!`](#string) | The name of the scanner profile. | +| `scanType` | [`DastScanTypeEnum`](#dastscantypeenum) | Indicates the type of DAST scan that will run. Either a Passive Scan or an Active Scan. | +| `showDebugMessages` | [`Boolean`](#boolean) | Indicates if debug messages should be included in DAST console output. True to include the debug messages. | +| `spiderTimeout` | [`Int!`](#int) | The maximum number of minutes allowed for the spider to traverse the site. | +| `targetTimeout` | [`Int!`](#int) | The maximum number of seconds allowed for the site under test to respond to a request. | +| `useAjaxSpider` | [`Boolean`](#boolean) | Indicates if the AJAX spider should be used to crawl the target site. True to run the AJAX spider in addition to the traditional spider, and false to run only the traditional spider. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `id` | [`DastScannerProfileID`](#dastscannerprofileid) | ID of the scanner profile. | + +### `Mutation.dastSiteProfileCreate` + +Input type: `DastSiteProfileCreateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `auth` | [`DastSiteProfileAuthInput`](#dastsiteprofileauthinput) | Parameters for authentication. Will be ignored if `security_dast_site_profiles_additional_fields` feature flag is disabled. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `excludedUrls` | [`[String!]`](#string) | The URLs to skip during an authenticated scan. Defaults to `[]`. Will be ignored if `security_dast_site_profiles_additional_fields` feature flag is disabled. | +| `fullPath` | [`ID!`](#id) | The project the site profile belongs to. | +| `profileName` | [`String!`](#string) | The name of the site profile. | +| `requestHeaders` | [`String`](#string) | Comma-separated list of request header names and values to be added to every request made by DAST. Will be ignored if `security_dast_site_profiles_additional_fields` feature flag is disabled. | +| `targetType` | [`DastTargetTypeEnum`](#dasttargettypeenum) | The type of target to be scanned. Will be ignored if `security_dast_site_profiles_api_option` feature flag is disabled. | +| `targetUrl` | [`String`](#string) | The URL of the target to be scanned. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `id` | [`DastSiteProfileID`](#dastsiteprofileid) | ID of the site profile. | + +### `Mutation.dastSiteProfileDelete` + +Input type: `DastSiteProfileDeleteInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `fullPath` | [`ID!`](#id) | The project the site profile belongs to. | +| `id` | [`DastSiteProfileID!`](#dastsiteprofileid) | ID of the site profile to be deleted. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.dastSiteProfileUpdate` + +Input type: `DastSiteProfileUpdateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `auth` | [`DastSiteProfileAuthInput`](#dastsiteprofileauthinput) | Parameters for authentication. Will be ignored if `security_dast_site_profiles_additional_fields` feature flag is disabled. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `excludedUrls` | [`[String!]`](#string) | The URLs to skip during an authenticated scan. Will be ignored if `security_dast_site_profiles_additional_fields` feature flag is disabled. | +| `fullPath` | [`ID!`](#id) | The project the site profile belongs to. | +| `id` | [`DastSiteProfileID!`](#dastsiteprofileid) | ID of the site profile to be updated. | +| `profileName` | [`String!`](#string) | The name of the site profile. | +| `requestHeaders` | [`String`](#string) | Comma-separated list of request header names and values to be added to every request made by DAST. Will be ignored if `security_dast_site_profiles_additional_fields` feature flag is disabled. | +| `targetType` | [`DastTargetTypeEnum`](#dasttargettypeenum) | The type of target to be scanned. Will be ignored if `security_dast_site_profiles_api_option` feature flag is disabled. | +| `targetUrl` | [`String`](#string) | The URL of the target to be scanned. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `id` | [`DastSiteProfileID`](#dastsiteprofileid) | ID of the site profile. | + +### `Mutation.dastSiteTokenCreate` + +Input type: `DastSiteTokenCreateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `fullPath` | [`ID!`](#id) | The project the site token belongs to. | +| `targetUrl` | [`String`](#string) | The URL of the target to be validated. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `id` | [`DastSiteTokenID`](#dastsitetokenid) | ID of the site token. | +| `status` | [`DastSiteProfileValidationStatusEnum`](#dastsiteprofilevalidationstatusenum) | The current validation status of the target. | +| `token` | [`String`](#string) | Token string. | + +### `Mutation.dastSiteValidationCreate` + +Input type: `DastSiteValidationCreateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `dastSiteTokenId` | [`DastSiteTokenID!`](#dastsitetokenid) | ID of the site token. | +| `fullPath` | [`ID!`](#id) | The project the site profile belongs to. | +| `strategy` | [`DastSiteValidationStrategyEnum`](#dastsitevalidationstrategyenum) | The validation strategy to be used. | +| `validationPath` | [`String!`](#string) | The path to be requested during validation. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `id` | [`DastSiteValidationID`](#dastsitevalidationid) | ID of the site validation. | +| `status` | [`DastSiteProfileValidationStatusEnum`](#dastsiteprofilevalidationstatusenum) | The current validation status. | + +### `Mutation.dastSiteValidationRevoke` + +Input type: `DastSiteValidationRevokeInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `fullPath` | [`ID!`](#id) | The project the site validation belongs to. | +| `normalizedTargetUrl` | [`String!`](#string) | Normalized URL of the target to be revoked. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.deleteAnnotation` + +Input type: `DeleteAnnotationInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`MetricsDashboardAnnotationID!`](#metricsdashboardannotationid) | Global ID of the annotation to delete. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.deleteDevopsAdoptionSegment` + +Input type: `DeleteDevopsAdoptionSegmentInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`[AnalyticsDevopsAdoptionSegmentID!]!`](#analyticsdevopsadoptionsegmentid) | One or many IDs of the segments to delete. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.designManagementDelete` + +Input type: `DesignManagementDeleteInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `filenames` | [`[String!]!`](#string) | The filenames of the designs to delete. | +| `iid` | [`ID!`](#id) | The IID of the issue to modify designs for. | +| `projectPath` | [`ID!`](#id) | The project where the issue is to upload designs for. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `version` | [`DesignVersion`](#designversion) | The new version in which the designs are deleted. | + +### `Mutation.designManagementMove` + +Input type: `DesignManagementMoveInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`DesignManagementDesignID!`](#designmanagementdesignid) | ID of the design to move. | +| `next` | [`DesignManagementDesignID`](#designmanagementdesignid) | ID of the immediately following design. | +| `previous` | [`DesignManagementDesignID`](#designmanagementdesignid) | ID of the immediately preceding design. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `designCollection` | [`DesignCollection`](#designcollection) | The current state of the collection. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.designManagementUpload` + +Input type: `DesignManagementUploadInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `files` | [`[Upload!]!`](#upload) | The files to upload. | +| `iid` | [`ID!`](#id) | The IID of the issue to modify designs for. | +| `projectPath` | [`ID!`](#id) | The project where the issue is to upload designs for. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `designs` | [`[Design!]!`](#design) | The designs that were uploaded by the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `skippedDesigns` | [`[Design!]!`](#design) | Any designs that were skipped from the upload due to there being no change to their content since their last version. | + +### `Mutation.destroyBoard` + +Input type: `DestroyBoardInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`BoardID!`](#boardid) | The global ID of the board to destroy. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `board` | [`Board`](#board) | The board after mutation. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.destroyBoardList` + +Input type: `DestroyBoardListInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `listId` | [`ListID!`](#listid) | Global ID of the list to destroy. Only label lists are accepted. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `list` | [`BoardList`](#boardlist) | The list after mutation. | + +### `Mutation.destroyComplianceFramework` + +Input type: `DestroyComplianceFrameworkInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`ComplianceManagementFrameworkID!`](#compliancemanagementframeworkid) | The global ID of the compliance framework to destroy. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.destroyContainerRepository` + +Input type: `DestroyContainerRepositoryInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`ContainerRepositoryID!`](#containerrepositoryid) | ID of the container repository. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `containerRepository` | [`ContainerRepository!`](#containerrepository) | The container repository policy after scheduling the deletion. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.destroyContainerRepositoryTags` + +Input type: `DestroyContainerRepositoryTagsInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`ContainerRepositoryID!`](#containerrepositoryid) | ID of the container repository. | +| `tagNames` | [`[String!]!`](#string) | Container repository tag(s) to delete. Total number can't be greater than 20. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `deletedTagNames` | [`[String!]!`](#string) | Deleted container repository tags. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.destroyEpicBoard` + +Input type: `DestroyEpicBoardInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`BoardsEpicBoardID!`](#boardsepicboardid) | Global ID of the board to destroy. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `epicBoard` | [`EpicBoard`](#epicboard) | Epic board after mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.destroyNote` + +Input type: `DestroyNoteInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`NoteID!`](#noteid) | The global ID of the note to destroy. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `note` | [`Note`](#note) | The note after mutation. | + +### `Mutation.destroySnippet` + +Input type: `DestroySnippetInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`SnippetID!`](#snippetid) | The global ID of the snippet to destroy. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `snippet` | [`Snippet`](#snippet) | The snippet after mutation. | + +### `Mutation.discussionToggleResolve` + +Toggles the resolved state of a discussion. + +Input type: `DiscussionToggleResolveInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`DiscussionID!`](#discussionid) | The global ID of the discussion. | +| `resolve` | [`Boolean!`](#boolean) | Will resolve the discussion when true, and unresolve the discussion when false. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `discussion` | [`Discussion`](#discussion) | The discussion after mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.dismissVulnerability` + +WARNING: +**Deprecated** in 13.5. +Use vulnerabilityDismiss. + +Input type: `DismissVulnerabilityInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `comment` | [`String`](#string) | Comment why vulnerability should be dismissed. | +| `dismissalReason` | [`VulnerabilityDismissalReason`](#vulnerabilitydismissalreason) | Reason why vulnerability should be dismissed. | +| `id` | [`VulnerabilityID!`](#vulnerabilityid) | ID of the vulnerability to be dismissed. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `vulnerability` | [`Vulnerability`](#vulnerability) | The vulnerability after dismissal. | + +### `Mutation.environmentsCanaryIngressUpdate` + +Input type: `EnvironmentsCanaryIngressUpdateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`EnvironmentID!`](#environmentid) | The global ID of the environment to update. | +| `weight` | [`Int!`](#int) | The weight of the Canary Ingress. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.epicAddIssue` + +Input type: `EpicAddIssueInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `groupPath` | [`ID!`](#id) | The group the epic to mutate belongs to. | +| `iid` | [`ID!`](#id) | The IID of the epic to mutate. | +| `issueIid` | [`String!`](#string) | The IID of the issue to be added. | +| `projectPath` | [`ID!`](#id) | The full path of the project the issue belongs to. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `epic` | [`Epic`](#epic) | The epic after mutation. | +| `epicIssue` | [`EpicIssue`](#epicissue) | The epic-issue relation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.epicBoardCreate` + +Input type: `EpicBoardCreateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `groupPath` | [`ID`](#id) | Full path of the group with which the resource is associated. | +| `hideBacklogList` | [`Boolean`](#boolean) | Whether or not backlog list is hidden. | +| `hideClosedList` | [`Boolean`](#boolean) | Whether or not closed list is hidden. | +| `labelIds` | [`[LabelID!]`](#labelid) | IDs of labels to be added to the board. | +| `labels` | [`[String!]`](#string) | Labels of the issue. | +| `name` | [`String`](#string) | The board name. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `epicBoard` | [`EpicBoard`](#epicboard) | The created epic board. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.epicBoardListCreate` + +Input type: `EpicBoardListCreateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `backlog` | [`Boolean`](#boolean) | Create the backlog list. | +| `boardId` | [`BoardsEpicBoardID!`](#boardsepicboardid) | Global ID of the issue board to mutate. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `labelId` | [`LabelID`](#labelid) | Global ID of an existing label. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `list` | [`EpicList`](#epiclist) | Epic list in the epic board. | + +### `Mutation.epicBoardUpdate` + +Input type: `EpicBoardUpdateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `hideBacklogList` | [`Boolean`](#boolean) | Whether or not backlog list is hidden. | +| `hideClosedList` | [`Boolean`](#boolean) | Whether or not closed list is hidden. | +| `id` | [`BoardsEpicBoardID!`](#boardsepicboardid) | The epic board global ID. | +| `labelIds` | [`[LabelID!]`](#labelid) | IDs of labels to be added to the board. | +| `labels` | [`[String!]`](#string) | Labels of the issue. | +| `name` | [`String`](#string) | The board name. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `epicBoard` | [`EpicBoard`](#epicboard) | The updated epic board. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.epicMoveList` + +Input type: `EpicMoveListInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `boardId` | [`BoardsEpicBoardID!`](#boardsepicboardid) | Global ID of the board that the epic is in. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `epicId` | [`EpicID!`](#epicid) | ID of the epic to mutate. | +| `fromListId` | [`BoardsEpicListID!`](#boardsepiclistid) | ID of the board list that the epic will be moved from. | +| `toListId` | [`BoardsEpicListID!`](#boardsepiclistid) | ID of the board list that the epic will be moved to. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.epicSetSubscription` + +Input type: `EpicSetSubscriptionInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `groupPath` | [`ID!`](#id) | The group the epic to mutate belongs to. | +| `iid` | [`ID!`](#id) | The IID of the epic to mutate. | +| `subscribedState` | [`Boolean!`](#boolean) | The desired state of the subscription. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `epic` | [`Epic`](#epic) | The epic after mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.epicTreeReorder` + +Input type: `EpicTreeReorderInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `baseEpicId` | [`EpicID!`](#epicid) | The ID of the base epic of the tree. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `moved` | [`EpicTreeNodeFieldsInputType!`](#epictreenodefieldsinputtype) | Parameters for updating the tree positions. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.exportRequirements` + +Input type: `ExportRequirementsInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `authorUsername` | [`[String!]`](#string) | Filter requirements by author username. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `projectPath` | [`ID!`](#id) | Full project path the requirements are associated with. | +| `search` | [`String`](#string) | Search query for requirement title. | +| `selectedFields` | [`[String!]`](#string) | List of selected requirements fields to be exported. | +| `sort` | [`Sort`](#sort) | List requirements by sort order. | +| `state` | [`RequirementState`](#requirementstate) | Filter requirements by state. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.gitlabSubscriptionActivate` + +Input type: `GitlabSubscriptionActivateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `activationCode` | [`String!`](#string) | Activation code received after purchasing a GitLab subscription. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `license` | [`CurrentLicense`](#currentlicense) | The current license. | + +### `Mutation.httpIntegrationCreate` + +Input type: `HttpIntegrationCreateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `active` | [`Boolean!`](#boolean) | Whether the integration is receiving alerts. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `name` | [`String!`](#string) | The name of the integration. | +| `payloadAttributeMappings` | [`[AlertManagementPayloadAlertFieldInput!]`](#alertmanagementpayloadalertfieldinput) | The custom mapping of GitLab alert attributes to fields from the payload_example. | +| `payloadExample` | [`JsonString`](#jsonstring) | The example of an alert payload. | +| `projectPath` | [`ID!`](#id) | The project to create the integration in. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `integration` | [`AlertManagementHttpIntegration`](#alertmanagementhttpintegration) | The HTTP integration. | + +### `Mutation.httpIntegrationDestroy` + +Input type: `HttpIntegrationDestroyInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`AlertManagementHttpIntegrationID!`](#alertmanagementhttpintegrationid) | The ID of the integration to remove. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `integration` | [`AlertManagementHttpIntegration`](#alertmanagementhttpintegration) | The HTTP integration. | + +### `Mutation.httpIntegrationResetToken` + +Input type: `HttpIntegrationResetTokenInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`AlertManagementHttpIntegrationID!`](#alertmanagementhttpintegrationid) | The ID of the integration to mutate. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `integration` | [`AlertManagementHttpIntegration`](#alertmanagementhttpintegration) | The HTTP integration. | + +### `Mutation.httpIntegrationUpdate` + +Input type: `HttpIntegrationUpdateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `active` | [`Boolean`](#boolean) | Whether the integration is receiving alerts. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`AlertManagementHttpIntegrationID!`](#alertmanagementhttpintegrationid) | The ID of the integration to mutate. | +| `name` | [`String`](#string) | The name of the integration. | +| `payloadAttributeMappings` | [`[AlertManagementPayloadAlertFieldInput!]`](#alertmanagementpayloadalertfieldinput) | The custom mapping of GitLab alert attributes to fields from the payload_example. | +| `payloadExample` | [`JsonString`](#jsonstring) | The example of an alert payload. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `integration` | [`AlertManagementHttpIntegration`](#alertmanagementhttpintegration) | The HTTP integration. | + +### `Mutation.issueMove` + +Input type: `IssueMoveInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `iid` | [`String!`](#string) | The IID of the issue to mutate. | +| `projectPath` | [`ID!`](#id) | The project the issue to mutate is in. | +| `targetProjectPath` | [`ID!`](#id) | The project to move the issue to. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `issue` | [`Issue`](#issue) | The issue after mutation. | + +### `Mutation.issueMoveList` + +Input type: `IssueMoveListInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `boardId` | [`BoardID!`](#boardid) | Global ID of the board that the issue is in. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `epicId` | [`EpicID`](#epicid) | The ID of the parent epic. NULL when removing the association. | +| `fromListId` | [`ID`](#id) | ID of the board list that the issue will be moved from. | +| `iid` | [`String!`](#string) | IID of the issue to mutate. | +| `moveAfterId` | [`ID`](#id) | ID of issue that should be placed after the current issue. | +| `moveBeforeId` | [`ID`](#id) | ID of issue that should be placed before the current issue. | +| `projectPath` | [`ID!`](#id) | Project the issue to mutate is in. | +| `toListId` | [`ID`](#id) | ID of the board list that the issue will be moved to. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `issue` | [`Issue`](#issue) | The issue after mutation. | + +### `Mutation.issueSetAssignees` + +Input type: `IssueSetAssigneesInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `assigneeUsernames` | [`[String!]!`](#string) | The usernames to assign to the resource. Replaces existing assignees by default. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `iid` | [`String!`](#string) | The IID of the issue to mutate. | +| `operationMode` | [`MutationOperationMode`](#mutationoperationmode) | The operation to perform. Defaults to REPLACE. | +| `projectPath` | [`ID!`](#id) | The project the issue to mutate is in. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `issue` | [`Issue`](#issue) | The issue after mutation. | + +### `Mutation.issueSetConfidential` + +Input type: `IssueSetConfidentialInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `confidential` | [`Boolean!`](#boolean) | Whether or not to set the issue as a confidential. | +| `iid` | [`String!`](#string) | The IID of the issue to mutate. | +| `projectPath` | [`ID!`](#id) | The project the issue to mutate is in. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `issue` | [`Issue`](#issue) | The issue after mutation. | + +### `Mutation.issueSetDueDate` + +Input type: `IssueSetDueDateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `dueDate` | [`Time!`](#time) | The desired due date for the issue. | +| `iid` | [`String!`](#string) | The IID of the issue to mutate. | +| `projectPath` | [`ID!`](#id) | The project the issue to mutate is in. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `issue` | [`Issue`](#issue) | The issue after mutation. | + +### `Mutation.issueSetEpic` + +Input type: `IssueSetEpicInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `epicId` | [`EpicID`](#epicid) | Global ID of the epic to be assigned to the issue, epic will be removed if absent or set to null. | +| `iid` | [`String!`](#string) | The IID of the issue to mutate. | +| `projectPath` | [`ID!`](#id) | The project the issue to mutate is in. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `issue` | [`Issue`](#issue) | The issue after mutation. | + +### `Mutation.issueSetIteration` + +Input type: `IssueSetIterationInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `iid` | [`String!`](#string) | The IID of the issue to mutate. | +| `iterationId` | [`IterationID`](#iterationid) | The iteration to assign to the issue. | +| `projectPath` | [`ID!`](#id) | The project the issue to mutate is in. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `issue` | [`Issue`](#issue) | The issue after mutation. | + +### `Mutation.issueSetLocked` + +Input type: `IssueSetLockedInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `iid` | [`String!`](#string) | The IID of the issue to mutate. | +| `locked` | [`Boolean!`](#boolean) | Whether or not to lock discussion on the issue. | +| `projectPath` | [`ID!`](#id) | The project the issue to mutate is in. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `issue` | [`Issue`](#issue) | The issue after mutation. | + +### `Mutation.issueSetSeverity` + +Input type: `IssueSetSeverityInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `iid` | [`String!`](#string) | The IID of the issue to mutate. | +| `projectPath` | [`ID!`](#id) | The project the issue to mutate is in. | +| `severity` | [`IssuableSeverity!`](#issuableseverity) | Set the incident severity level. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `issue` | [`Issue`](#issue) | The issue after mutation. | + +### `Mutation.issueSetSubscription` + +Input type: `IssueSetSubscriptionInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `iid` | [`String!`](#string) | The IID of the issue to mutate. | +| `projectPath` | [`ID!`](#id) | The project the issue to mutate is in. | +| `subscribedState` | [`Boolean!`](#boolean) | The desired state of the subscription. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `issue` | [`Issue`](#issue) | The issue after mutation. | + +### `Mutation.issueSetWeight` + +Input type: `IssueSetWeightInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `iid` | [`String!`](#string) | The IID of the issue to mutate. | +| `projectPath` | [`ID!`](#id) | The project the issue to mutate is in. | +| `weight` | [`Int!`](#int) | The desired weight for the issue. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `issue` | [`Issue`](#issue) | The issue after mutation. | + +### `Mutation.iterationCadenceCreate` + +Input type: `IterationCadenceCreateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `active` | [`Boolean!`](#boolean) | Whether the iteration cadence is active. | +| `automatic` | [`Boolean!`](#boolean) | Whether the iteration cadence should automatically generate future iterations. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `durationInWeeks` | [`Int`](#int) | Duration in weeks of the iterations within this cadence. | +| `groupPath` | [`ID!`](#id) | The group where the iteration cadence is created. | +| `iterationsInAdvance` | [`Int`](#int) | Future iterations to be created when iteration cadence is set to automatic. | +| `startDate` | [`Time`](#time) | Timestamp of the iteration cadence start date. | +| `title` | [`String`](#string) | Title of the iteration cadence. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `iterationCadence` | [`IterationCadence`](#iterationcadence) | The created iteration cadence. | + +### `Mutation.iterationCadenceUpdate` + +Input type: `IterationCadenceUpdateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `active` | [`Boolean`](#boolean) | Whether the iteration cadence is active. | +| `automatic` | [`Boolean`](#boolean) | Whether the iteration cadence should automatically generate future iterations. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `durationInWeeks` | [`Int`](#int) | Duration in weeks of the iterations within this cadence. | +| `id` | [`IterationsCadenceID!`](#iterationscadenceid) | Global ID of the iteration cadence. | +| `iterationsInAdvance` | [`Int`](#int) | Future iterations to be created when iteration cadence is set to automatic. | +| `startDate` | [`Time`](#time) | Timestamp of the iteration cadence start date. | +| `title` | [`String`](#string) | Title of the iteration cadence. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `iterationCadence` | [`IterationCadence`](#iterationcadence) | The updated iteration cadence. | + +### `Mutation.jiraImportStart` + +Input type: `JiraImportStartInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `jiraProjectKey` | [`String!`](#string) | Project key of the importer Jira project. | +| `jiraProjectName` | [`String`](#string) | Project name of the importer Jira project. | +| `projectPath` | [`ID!`](#id) | The project to import the Jira project into. | +| `usersMapping` | [`[JiraUsersMappingInputType!]`](#jirausersmappinginputtype) | The mapping of Jira to GitLab users. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `jiraImport` | [`JiraImport`](#jiraimport) | The Jira import data after mutation. | + +### `Mutation.jiraImportUsers` + +Input type: `JiraImportUsersInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `projectPath` | [`ID!`](#id) | The project to import the Jira users into. | +| `startAt` | [`Int`](#int) | The index of the record the import should started at, default 0 (50 records returned). | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `jiraUsers` | [`[JiraUser!]`](#jirauser) | Users returned from Jira, matched by email and name if possible. | + +### `Mutation.labelCreate` + +Input type: `LabelCreateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `color` | [`String`](#string) | The color of the label given in 6-digit hex notation with leading '#' sign (for example, `#FFAABB`) or one of the CSS color names . | +| `description` | [`String`](#string) | Description of the label. | +| `groupPath` | [`ID`](#id) | Full path of the group with which the resource is associated. | +| `projectPath` | [`ID`](#id) | Full path of the project with which the resource is associated. | +| `title` | [`String!`](#string) | Title of the label. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `label` | [`Label`](#label) | The label after mutation. | + +### `Mutation.markAsSpamSnippet` + +Input type: `MarkAsSpamSnippetInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`SnippetID!`](#snippetid) | The global ID of the snippet to update. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `snippet` | [`Snippet`](#snippet) | The snippet after mutation. | + +### `Mutation.mergeRequestAccept` + +Accepts a merge request. +When accepted, the source branch will be merged into the target branch, either +immediately if possible, or using one of the automatic merge strategies. + +Input type: `MergeRequestAcceptInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `commitMessage` | [`String`](#string) | Custom merge commit message. | +| `iid` | [`String!`](#string) | The IID of the merge request to mutate. | +| `projectPath` | [`ID!`](#id) | The project the merge request to mutate is in. | +| `sha` | [`String!`](#string) | The HEAD SHA at the time when this merge was requested. | +| `shouldRemoveSourceBranch` | [`Boolean`](#boolean) | Should the source branch be removed. | +| `squash` | [`Boolean`](#boolean) | Squash commits on the source branch before merge. | +| `squashCommitMessage` | [`String`](#string) | Custom squash commit message (if squash is true). | +| `strategy` | [`MergeStrategyEnum`](#mergestrategyenum) | How to merge this merge request. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `mergeRequest` | [`MergeRequest`](#mergerequest) | The merge request after mutation. | + +### `Mutation.mergeRequestCreate` + +Input type: `MergeRequestCreateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `description` | [`String`](#string) | Description of the merge request (Markdown rendered as HTML for caching). | +| `labels` | [`[String!]`](#string) | Labels of the merge request. | +| `projectPath` | [`ID!`](#id) | Project full path the merge request is associated with. | +| `sourceBranch` | [`String!`](#string) | Source branch of the merge request. | +| `targetBranch` | [`String!`](#string) | Target branch of the merge request. | +| `title` | [`String!`](#string) | Title of the merge request. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `mergeRequest` | [`MergeRequest`](#mergerequest) | The merge request after mutation. | + +### `Mutation.mergeRequestReviewerRereview` + +Input type: `MergeRequestReviewerRereviewInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `iid` | [`String!`](#string) | The IID of the merge request to mutate. | +| `projectPath` | [`ID!`](#id) | The project the merge request to mutate is in. | +| `userId` | [`UserID!`](#userid) | The user ID for the user that has been requested for a new review. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `mergeRequest` | [`MergeRequest`](#mergerequest) | The merge request after mutation. | + +### `Mutation.mergeRequestSetAssignees` + +Input type: `MergeRequestSetAssigneesInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `assigneeUsernames` | [`[String!]!`](#string) | The usernames to assign to the resource. Replaces existing assignees by default. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `iid` | [`String!`](#string) | The IID of the merge request to mutate. | +| `operationMode` | [`MutationOperationMode`](#mutationoperationmode) | The operation to perform. Defaults to REPLACE. | +| `projectPath` | [`ID!`](#id) | The project the merge request to mutate is in. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `mergeRequest` | [`MergeRequest`](#mergerequest) | The merge request after mutation. | + +### `Mutation.mergeRequestSetLabels` + +Input type: `MergeRequestSetLabelsInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `iid` | [`String!`](#string) | The IID of the merge request to mutate. | +| `labelIds` | [`[LabelID!]!`](#labelid) | The Label IDs to set. Replaces existing labels by default. | +| `operationMode` | [`MutationOperationMode`](#mutationoperationmode) | Changes the operation mode. Defaults to REPLACE. | +| `projectPath` | [`ID!`](#id) | The project the merge request to mutate is in. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `mergeRequest` | [`MergeRequest`](#mergerequest) | The merge request after mutation. | + +### `Mutation.mergeRequestSetLocked` + +Input type: `MergeRequestSetLockedInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `iid` | [`String!`](#string) | The IID of the merge request to mutate. | +| `locked` | [`Boolean!`](#boolean) | Whether or not to lock the merge request. | +| `projectPath` | [`ID!`](#id) | The project the merge request to mutate is in. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `mergeRequest` | [`MergeRequest`](#mergerequest) | The merge request after mutation. | + +### `Mutation.mergeRequestSetMilestone` + +Input type: `MergeRequestSetMilestoneInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `iid` | [`String!`](#string) | The IID of the merge request to mutate. | +| `milestoneId` | [`MilestoneID`](#milestoneid) | The milestone to assign to the merge request. | +| `projectPath` | [`ID!`](#id) | The project the merge request to mutate is in. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `mergeRequest` | [`MergeRequest`](#mergerequest) | The merge request after mutation. | + +### `Mutation.mergeRequestSetSubscription` + +Input type: `MergeRequestSetSubscriptionInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `iid` | [`String!`](#string) | The IID of the merge request to mutate. | +| `projectPath` | [`ID!`](#id) | The project the merge request to mutate is in. | +| `subscribedState` | [`Boolean!`](#boolean) | The desired state of the subscription. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `mergeRequest` | [`MergeRequest`](#mergerequest) | The merge request after mutation. | + +### `Mutation.mergeRequestSetWip` + +Input type: `MergeRequestSetWipInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `iid` | [`String!`](#string) | The IID of the merge request to mutate. | +| `projectPath` | [`ID!`](#id) | The project the merge request to mutate is in. | +| `wip` | [`Boolean!`](#boolean) | Whether or not to set the merge request as a draft. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `mergeRequest` | [`MergeRequest`](#mergerequest) | The merge request after mutation. | + +### `Mutation.mergeRequestUpdate` + +Update attributes of a merge request. + +Input type: `MergeRequestUpdateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `description` | [`String`](#string) | Description of the merge request (Markdown rendered as HTML for caching). | +| `iid` | [`String!`](#string) | The IID of the merge request to mutate. | +| `projectPath` | [`ID!`](#id) | The project the merge request to mutate is in. | +| `state` | [`MergeRequestNewState`](#mergerequestnewstate) | The action to perform to change the state. | +| `targetBranch` | [`String`](#string) | Target branch of the merge request. | +| `title` | [`String`](#string) | Title of the merge request. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `mergeRequest` | [`MergeRequest`](#mergerequest) | The merge request after mutation. | + +### `Mutation.namespaceIncreaseStorageTemporarily` + +Input type: `NamespaceIncreaseStorageTemporarilyInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`NamespaceID!`](#namespaceid) | The global ID of the namespace to mutate. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `namespace` | [`Namespace`](#namespace) | The namespace after mutation. | + +### `Mutation.oncallRotationCreate` + +Input type: `OncallRotationCreateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `activePeriod` | [`OncallRotationActivePeriodInputType`](#oncallrotationactiveperiodinputtype) | The active period of time that the on-call rotation should take place. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `endsAt` | [`OncallRotationDateInputType`](#oncallrotationdateinputtype) | The end date and time of the on-call rotation, in the timezone of the on-call schedule. | +| `name` | [`String!`](#string) | The name of the on-call rotation. | +| `participants` | [`[OncallUserInputType!]!`](#oncalluserinputtype) | The usernames of users participating in the on-call rotation. A maximum limit of 100 participants applies. | +| `projectPath` | [`ID!`](#id) | The project to create the on-call schedule in. | +| `rotationLength` | [`OncallRotationLengthInputType!`](#oncallrotationlengthinputtype) | The rotation length of the on-call rotation. | +| `scheduleIid` | [`String!`](#string) | The IID of the on-call schedule to create the on-call rotation in. | +| `startsAt` | [`OncallRotationDateInputType!`](#oncallrotationdateinputtype) | The start date and time of the on-call rotation, in the timezone of the on-call schedule. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `oncallRotation` | [`IncidentManagementOncallRotation`](#incidentmanagementoncallrotation) | The on-call rotation. | + +### `Mutation.oncallRotationDestroy` + +Input type: `OncallRotationDestroyInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`IncidentManagementOncallRotationID!`](#incidentmanagementoncallrotationid) | The ID of the on-call rotation to remove. | +| `projectPath` | [`ID!`](#id) | The project to remove the on-call schedule from. | +| `scheduleIid` | [`String!`](#string) | The IID of the on-call schedule to the on-call rotation belongs to. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `oncallRotation` | [`IncidentManagementOncallRotation`](#incidentmanagementoncallrotation) | The on-call rotation. | + +### `Mutation.oncallRotationUpdate` + +Input type: `OncallRotationUpdateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `activePeriod` | [`OncallRotationActivePeriodInputType`](#oncallrotationactiveperiodinputtype) | The active period of time that the on-call rotation should take place. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `endsAt` | [`OncallRotationDateInputType`](#oncallrotationdateinputtype) | The end date and time of the on-call rotation, in the timezone of the on-call schedule. | +| `id` | [`IncidentManagementOncallRotationID!`](#incidentmanagementoncallrotationid) | The ID of the on-call schedule to create the on-call rotation in. | +| `name` | [`String`](#string) | The name of the on-call rotation. | +| `participants` | [`[OncallUserInputType!]`](#oncalluserinputtype) | The usernames of users participating in the on-call rotation. A maximum limit of 100 participants applies. | +| `rotationLength` | [`OncallRotationLengthInputType`](#oncallrotationlengthinputtype) | The rotation length of the on-call rotation. | +| `startsAt` | [`OncallRotationDateInputType`](#oncallrotationdateinputtype) | The start date and time of the on-call rotation, in the timezone of the on-call schedule. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `oncallRotation` | [`IncidentManagementOncallRotation`](#incidentmanagementoncallrotation) | The on-call rotation. | + +### `Mutation.oncallScheduleCreate` + +Input type: `OncallScheduleCreateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `description` | [`String`](#string) | The description of the on-call schedule. | +| `name` | [`String!`](#string) | The name of the on-call schedule. | +| `projectPath` | [`ID!`](#id) | The project to create the on-call schedule in. | +| `timezone` | [`String!`](#string) | The timezone of the on-call schedule. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `oncallSchedule` | [`IncidentManagementOncallSchedule`](#incidentmanagementoncallschedule) | The on-call schedule. | + +### `Mutation.oncallScheduleDestroy` + +Input type: `OncallScheduleDestroyInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `iid` | [`String!`](#string) | The on-call schedule internal ID to remove. | +| `projectPath` | [`ID!`](#id) | The project to remove the on-call schedule from. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `oncallSchedule` | [`IncidentManagementOncallSchedule`](#incidentmanagementoncallschedule) | The on-call schedule. | + +### `Mutation.oncallScheduleUpdate` + +Input type: `OncallScheduleUpdateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `description` | [`String`](#string) | The description of the on-call schedule. | +| `iid` | [`String!`](#string) | The on-call schedule internal ID to update. | +| `name` | [`String`](#string) | The name of the on-call schedule. | +| `projectPath` | [`ID!`](#id) | The project to update the on-call schedule in. | +| `timezone` | [`String`](#string) | The timezone of the on-call schedule. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `oncallSchedule` | [`IncidentManagementOncallSchedule`](#incidentmanagementoncallschedule) | The on-call schedule. | + +### `Mutation.pipelineCancel` + +Input type: `PipelineCancelInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`CiPipelineID!`](#cipipelineid) | The ID of the pipeline to mutate. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.pipelineDestroy` + +Input type: `PipelineDestroyInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`CiPipelineID!`](#cipipelineid) | The ID of the pipeline to mutate. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.pipelineRetry` + +Input type: `PipelineRetryInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`CiPipelineID!`](#cipipelineid) | The ID of the pipeline to mutate. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `pipeline` | [`Pipeline`](#pipeline) | The pipeline after mutation. | + +### `Mutation.prometheusIntegrationCreate` + +Input type: `PrometheusIntegrationCreateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `active` | [`Boolean!`](#boolean) | Whether the integration is receiving alerts. | +| `apiUrl` | [`String!`](#string) | Endpoint at which Prometheus can be queried. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `projectPath` | [`ID!`](#id) | The project to create the integration in. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `integration` | [`AlertManagementPrometheusIntegration`](#alertmanagementprometheusintegration) | The newly created integration. | + +### `Mutation.prometheusIntegrationResetToken` + +Input type: `PrometheusIntegrationResetTokenInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`PrometheusServiceID!`](#prometheusserviceid) | The ID of the integration to mutate. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `integration` | [`AlertManagementPrometheusIntegration`](#alertmanagementprometheusintegration) | The newly created integration. | + +### `Mutation.prometheusIntegrationUpdate` + +Input type: `PrometheusIntegrationUpdateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `active` | [`Boolean`](#boolean) | Whether the integration is receiving alerts. | +| `apiUrl` | [`String`](#string) | Endpoint at which Prometheus can be queried. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`PrometheusServiceID!`](#prometheusserviceid) | The ID of the integration to mutate. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `integration` | [`AlertManagementPrometheusIntegration`](#alertmanagementprometheusintegration) | The newly created integration. | + +### `Mutation.promoteToEpic` + +Input type: `PromoteToEpicInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `groupPath` | [`ID`](#id) | The group the promoted epic will belong to. | +| `iid` | [`String!`](#string) | The IID of the issue to mutate. | +| `projectPath` | [`ID!`](#id) | The project the issue to mutate is in. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `epic` | [`Epic`](#epic) | The epic after issue promotion. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `issue` | [`Issue`](#issue) | The issue after mutation. | + +### `Mutation.releaseAssetLinkCreate` + +Input type: `ReleaseAssetLinkCreateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `directAssetPath` | [`String`](#string) | Relative path for a direct asset link. | +| `linkType` | [`ReleaseAssetLinkType`](#releaseassetlinktype) | The type of the asset link. | +| `name` | [`String!`](#string) | Name of the asset link. | +| `projectPath` | [`ID!`](#id) | Full path of the project the asset link is associated with. | +| `tagName` | [`String!`](#string) | Name of the associated release's tag. | +| `url` | [`String!`](#string) | URL of the asset link. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `link` | [`ReleaseAssetLink`](#releaseassetlink) | The asset link after mutation. | + +### `Mutation.releaseAssetLinkDelete` + +Input type: `ReleaseAssetLinkDeleteInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`ReleasesLinkID!`](#releaseslinkid) | ID of the release asset link to delete. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `link` | [`ReleaseAssetLink`](#releaseassetlink) | The deleted release asset link. | + +### `Mutation.releaseAssetLinkUpdate` + +Input type: `ReleaseAssetLinkUpdateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `directAssetPath` | [`String`](#string) | Relative path for a direct asset link. | +| `id` | [`ReleasesLinkID!`](#releaseslinkid) | ID of the release asset link to update. | +| `linkType` | [`ReleaseAssetLinkType`](#releaseassetlinktype) | The type of the asset link. | +| `name` | [`String`](#string) | Name of the asset link. | +| `url` | [`String`](#string) | URL of the asset link. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `link` | [`ReleaseAssetLink`](#releaseassetlink) | The asset link after mutation. | + +### `Mutation.releaseCreate` + +Input type: `ReleaseCreateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `assets` | [`ReleaseAssetsInput`](#releaseassetsinput) | Assets associated to the release. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `description` | [`String`](#string) | Description (also known as "release notes") of the release. | +| `milestones` | [`[String!]`](#string) | The title of each milestone the release is associated with. GitLab Premium customers can specify group milestones. | +| `name` | [`String`](#string) | Name of the release. | +| `projectPath` | [`ID!`](#id) | Full path of the project the release is associated with. | +| `ref` | [`String`](#string) | The commit SHA or branch name to use if creating a new tag. | +| `releasedAt` | [`Time`](#time) | The date when the release will be/was ready. Defaults to the current time. | +| `tagName` | [`String!`](#string) | Name of the tag to associate with the release. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `release` | [`Release`](#release) | The release after mutation. | + +### `Mutation.releaseDelete` + +Input type: `ReleaseDeleteInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `projectPath` | [`ID!`](#id) | Full path of the project the release is associated with. | +| `tagName` | [`String!`](#string) | Name of the tag associated with the release to delete. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `release` | [`Release`](#release) | The deleted release. | + +### `Mutation.releaseUpdate` + +Input type: `ReleaseUpdateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `description` | [`String`](#string) | Description (release notes) of the release. | +| `milestones` | [`[String!]`](#string) | The title of each milestone the release is associated with. GitLab Premium customers can specify group milestones. | +| `name` | [`String`](#string) | Name of the release. | +| `projectPath` | [`ID!`](#id) | Full path of the project the release is associated with. | +| `releasedAt` | [`Time`](#time) | The release date. | +| `tagName` | [`String!`](#string) | Name of the tag associated with the release. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `release` | [`Release`](#release) | The release after mutation. | + +### `Mutation.removeAwardEmoji` + +WARNING: +**Deprecated** in 13.2. +Use awardEmojiRemove. + +Input type: `RemoveAwardEmojiInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `awardableId` | [`AwardableID!`](#awardableid) | The global ID of the awardable resource. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `name` | [`String!`](#string) | The emoji name. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `awardEmoji` | [`AwardEmoji`](#awardemoji) | The award emoji after mutation. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.removeProjectFromSecurityDashboard` + +Input type: `RemoveProjectFromSecurityDashboardInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`ProjectID!`](#projectid) | ID of the project to remove from the Instance Security Dashboard. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.repositionImageDiffNote` + +Repositions a DiffNote on an image (a `Note` where the `position.positionType` is `"image"`). + +Input type: `RepositionImageDiffNoteInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`DiffNoteID!`](#diffnoteid) | The global ID of the DiffNote to update. | +| `position` | [`UpdateDiffImagePositionInput!`](#updatediffimagepositioninput) | The position of this note on a diff. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `note` | [`Note`](#note) | The note after mutation. | + +### `Mutation.revertVulnerabilityToDetected` + +WARNING: +**Deprecated** in 13.5. +Use vulnerabilityRevertToDetected. + +Input type: `RevertVulnerabilityToDetectedInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`VulnerabilityID!`](#vulnerabilityid) | ID of the vulnerability to be reverted. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `vulnerability` | [`Vulnerability`](#vulnerability) | The vulnerability after revert. | + +### `Mutation.runDastScan` + +WARNING: +**Deprecated** in 13.4. +Use DastOnDemandScanCreate. + +Input type: `RunDASTScanInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `branch` | [`String!`](#string) | The branch to be associated with the scan. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `projectPath` | [`ID!`](#id) | The project the DAST scan belongs to. | +| `scanType` | [`DastScanTypeEnum!`](#dastscantypeenum) | The type of scan to be run. | +| `targetUrl` | [`String!`](#string) | The URL of the target to be scanned. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `pipelineUrl` | [`String`](#string) | URL of the pipeline that was created. | + +### `Mutation.terraformStateDelete` + +Input type: `TerraformStateDeleteInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`TerraformStateID!`](#terraformstateid) | Global ID of the Terraform state. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.terraformStateLock` + +Input type: `TerraformStateLockInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`TerraformStateID!`](#terraformstateid) | Global ID of the Terraform state. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.terraformStateUnlock` + +Input type: `TerraformStateUnlockInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`TerraformStateID!`](#terraformstateid) | Global ID of the Terraform state. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.todoCreate` + +Input type: `TodoCreateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `targetId` | [`TodoableID!`](#todoableid) | The global ID of the to-do item's parent. Issues, merge requests, designs and epics are supported. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `todo` | [`Todo`](#todo) | The to-do item created. | + +### `Mutation.todoMarkDone` + +Input type: `TodoMarkDoneInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`TodoID!`](#todoid) | The global ID of the to-do item to mark as done. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `todo` | [`Todo!`](#todo) | The requested to-do item. | + +### `Mutation.todoRestore` + +Input type: `TodoRestoreInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`TodoID!`](#todoid) | The global ID of the to-do item to restore. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `todo` | [`Todo!`](#todo) | The requested to-do item. | + +### `Mutation.todoRestoreMany` + +Input type: `TodoRestoreManyInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `ids` | [`[TodoID!]!`](#todoid) | The global IDs of the to-do items to restore (a maximum of 50 is supported at once). | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `todos` | [`[Todo!]!`](#todo) | Updated to-do items. | +| `updatedIds` **{warning-solid}** | [`[TodoID!]!`](#todoid) | **Deprecated:** Use to-do items. Deprecated in 13.2. | + +### `Mutation.todosMarkAllDone` + +Input type: `TodosMarkAllDoneInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `todos` | [`[Todo!]!`](#todo) | Updated to-do items. | +| `updatedIds` **{warning-solid}** | [`[TodoID!]!`](#todoid) | **Deprecated:** Use to-do items. Deprecated in 13.2. | + +### `Mutation.toggleAwardEmoji` + +WARNING: +**Deprecated** in 13.2. +Use awardEmojiToggle. + +Input type: `ToggleAwardEmojiInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `awardableId` | [`AwardableID!`](#awardableid) | The global ID of the awardable resource. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `name` | [`String!`](#string) | The emoji name. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `awardEmoji` | [`AwardEmoji`](#awardemoji) | The award emoji after mutation. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `toggledOn` | [`Boolean!`](#boolean) | Indicates the status of the emoji. True if the toggle awarded the emoji, and false if the toggle removed the emoji. | + +### `Mutation.updateAlertStatus` + +Input type: `UpdateAlertStatusInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `iid` | [`String!`](#string) | The IID of the alert to mutate. | +| `projectPath` | [`ID!`](#id) | The project the alert to mutate is in. | +| `status` | [`AlertManagementStatus!`](#alertmanagementstatus) | The status to set the alert. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `alert` | [`AlertManagementAlert`](#alertmanagementalert) | The alert after mutation. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `issue` | [`Issue`](#issue) | The issue created after mutation. | +| `todo` | [`Todo`](#todo) | The to-do item after mutation. | + +### `Mutation.updateBoard` + +Input type: `UpdateBoardInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `assigneeId` | [`UserID`](#userid) | ID of user to be assigned to the board. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `hideBacklogList` | [`Boolean`](#boolean) | Whether or not backlog list is hidden. | +| `hideClosedList` | [`Boolean`](#boolean) | Whether or not closed list is hidden. | +| `id` | [`BoardID!`](#boardid) | The board global ID. | +| `iterationId` | [`IterationID`](#iterationid) | ID of iteration to be assigned to the board. | +| `labelIds` | [`[LabelID!]`](#labelid) | IDs of labels to be added to the board. | +| `labels` | [`[String!]`](#string) | Labels of the issue. | +| `milestoneId` | [`MilestoneID`](#milestoneid) | ID of milestone to be assigned to the board. | +| `name` | [`String`](#string) | The board name. | +| `weight` | [`Int`](#int) | Weight value to be assigned to the board. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `board` | [`Board`](#board) | The board after mutation. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.updateBoardEpicUserPreferences` + +Input type: `UpdateBoardEpicUserPreferencesInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `boardId` | [`BoardID!`](#boardid) | The board global ID. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `collapsed` | [`Boolean!`](#boolean) | Whether the epic should be collapsed in the board. | +| `epicId` | [`EpicID!`](#epicid) | ID of an epic to set preferences for. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `epicUserPreferences` | [`BoardEpicUserPreferences`](#boardepicuserpreferences) | User preferences for the epic in the board after mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.updateBoardList` + +Input type: `UpdateBoardListInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `collapsed` | [`Boolean`](#boolean) | Indicates if the list is collapsed for this user. | +| `listId` | [`ListID!`](#listid) | Global ID of the list. | +| `position` | [`Int`](#int) | Position of list within the board. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `list` | [`BoardList`](#boardlist) | Mutated list. | + +### `Mutation.updateComplianceFramework` + +Input type: `UpdateComplianceFrameworkInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`ComplianceManagementFrameworkID!`](#compliancemanagementframeworkid) | The global ID of the compliance framework to update. | +| `params` | [`ComplianceFrameworkInput!`](#complianceframeworkinput) | Parameters to update the compliance framework with. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `complianceFramework` | [`ComplianceFramework`](#complianceframework) | The compliance framework after mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.updateContainerExpirationPolicy` + +Input type: `UpdateContainerExpirationPolicyInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cadence` | [`ContainerExpirationPolicyCadenceEnum`](#containerexpirationpolicycadenceenum) | This container expiration policy schedule. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `enabled` | [`Boolean`](#boolean) | Indicates whether this container expiration policy is enabled. | +| `keepN` | [`ContainerExpirationPolicyKeepEnum`](#containerexpirationpolicykeepenum) | Number of tags to retain. | +| `nameRegex` | [`UntrustedRegexp`](#untrustedregexp) | Tags with names matching this regex pattern will expire. | +| `nameRegexKeep` | [`UntrustedRegexp`](#untrustedregexp) | Tags with names matching this regex pattern will be preserved. | +| `olderThan` | [`ContainerExpirationPolicyOlderThanEnum`](#containerexpirationpolicyolderthanenum) | Tags older that this will expire. | +| `projectPath` | [`ID!`](#id) | The project path where the container expiration policy is located. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `containerExpirationPolicy` | [`ContainerExpirationPolicy`](#containerexpirationpolicy) | The container expiration policy after mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.updateEpic` + +Input type: `UpdateEpicInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `addLabelIds` | [`[ID!]`](#id) | The IDs of labels to be added to the epic. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `confidential` | [`Boolean`](#boolean) | Indicates if the epic is confidential. | +| `description` | [`String`](#string) | The description of the epic. | +| `dueDateFixed` | [`String`](#string) | The end date of the epic. | +| `dueDateIsFixed` | [`Boolean`](#boolean) | Indicates end date should be sourced from due_date_fixed field not the issue milestones. | +| `groupPath` | [`ID!`](#id) | The group the epic to mutate is in. | +| `iid` | [`ID!`](#id) | The IID of the epic to mutate. | +| `removeLabelIds` | [`[ID!]`](#id) | The IDs of labels to be removed from the epic. | +| `startDateFixed` | [`String`](#string) | The start date of the epic. | +| `startDateIsFixed` | [`Boolean`](#boolean) | Indicates start date should be sourced from start_date_fixed field not the issue milestones. | +| `stateEvent` | [`EpicStateEvent`](#epicstateevent) | State event for the epic. | +| `title` | [`String`](#string) | The title of the epic. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `epic` | [`Epic`](#epic) | The epic after mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.updateEpicBoardList` + +Input type: `UpdateEpicBoardListInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `collapsed` | [`Boolean`](#boolean) | Indicates if the list is collapsed for this user. | +| `listId` | [`BoardsEpicListID!`](#boardsepiclistid) | Global ID of the epic list. | +| `position` | [`Int`](#int) | Position of list within the board. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `list` | [`EpicList`](#epiclist) | Mutated epic list. | + +### `Mutation.updateImageDiffNote` + +Updates a DiffNote on an image (a `Note` where the `position.positionType` is `"image"`). +If the body of the Note contains only quick actions, +the Note will be destroyed during the update, and no Note will be +returned. + +Input type: `UpdateImageDiffNoteInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `body` | [`String`](#string) | Content of the note. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`NoteID!`](#noteid) | The global ID of the note to update. | +| `position` | [`UpdateDiffImagePositionInput`](#updatediffimagepositioninput) | The position of this note on a diff. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `note` | [`Note`](#note) | The note after mutation. | + +### `Mutation.updateIssue` + +Input type: `UpdateIssueInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `addLabelIds` | [`[ID!]`](#id) | The IDs of labels to be added to the issue. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `confidential` | [`Boolean`](#boolean) | Indicates the issue is confidential. | +| `description` | [`String`](#string) | Description of the issue. | +| `dueDate` | [`ISO8601Date`](#iso8601date) | Due date of the issue. | +| `epicId` | [`EpicID`](#epicid) | The ID of the parent epic. NULL when removing the association. | +| `healthStatus` | [`HealthStatus`](#healthstatus) | The desired health status. | +| `iid` | [`String!`](#string) | The IID of the issue to mutate. | +| `locked` | [`Boolean`](#boolean) | Indicates discussion is locked on the issue. | +| `milestoneId` | [`ID`](#id) | The ID of the milestone to assign to the issue. On update milestone will be removed if set to null. | +| `projectPath` | [`ID!`](#id) | The project the issue to mutate is in. | +| `removeLabelIds` | [`[ID!]`](#id) | The IDs of labels to be removed from the issue. | +| `stateEvent` | [`IssueStateEvent`](#issuestateevent) | Close or reopen an issue. | +| `title` | [`String`](#string) | Title of the issue. | +| `weight` | [`Int`](#int) | The weight of the issue. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `issue` | [`Issue`](#issue) | The issue after mutation. | + +### `Mutation.updateIteration` + +Input type: `UpdateIterationInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `description` | [`String`](#string) | Description of the iteration. | +| `dueDate` | [`String`](#string) | End date of the iteration. | +| `groupPath` | [`ID!`](#id) | Group of the iteration. | +| `id` | [`ID!`](#id) | Global ID of the iteration. | +| `startDate` | [`String`](#string) | Start date of the iteration. | +| `title` | [`String`](#string) | Title of the iteration. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `iteration` | [`Iteration`](#iteration) | Updated iteration. | + +### `Mutation.updateNamespacePackageSettings` + +Input type: `UpdateNamespacePackageSettingsInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `mavenDuplicateExceptionRegex` | [`UntrustedRegexp`](#untrustedregexp) | When maven_duplicates_allowed is false, you can publish duplicate packages with names that match this regex. Otherwise, this setting has no effect. | +| `mavenDuplicatesAllowed` | [`Boolean`](#boolean) | Indicates whether duplicate Maven packages are allowed for this namespace. | +| `namespacePath` | [`ID!`](#id) | The namespace path where the namespace package setting is located. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `packageSettings` | [`PackageSettings`](#packagesettings) | The namespace package setting after mutation. | + +### `Mutation.updateNote` + +Updates a Note. +If the body of the Note contains only quick actions, +the Note will be destroyed during the update, and no Note will be +returned. + +Input type: `UpdateNoteInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `body` | [`String`](#string) | Content of the note. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `confidential` | [`Boolean`](#boolean) | The confidentiality flag of a note. Default is false. | +| `id` | [`NoteID!`](#noteid) | The global ID of the note to update. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `note` | [`Note`](#note) | The note after mutation. | + +### `Mutation.updateRequirement` + +Input type: `UpdateRequirementInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `description` | [`String`](#string) | Description of the requirement. | +| `iid` | [`String!`](#string) | The IID of the requirement to update. | +| `lastTestReportState` | [`TestReportState`](#testreportstate) | Creates a test report for the requirement with the given state. | +| `projectPath` | [`ID!`](#id) | Full project path the requirement is associated with. | +| `state` | [`RequirementState`](#requirementstate) | State of the requirement. | +| `title` | [`String`](#string) | Title of the requirement. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `requirement` | [`Requirement`](#requirement) | Requirement after mutation. | + +### `Mutation.updateSnippet` + +Input type: `UpdateSnippetInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `blobActions` | [`[SnippetBlobActionInputType!]`](#snippetblobactioninputtype) | Actions to perform over the snippet repository and blobs. | +| `captchaResponse` **{warning-solid}** | [`String`](#string) | **Deprecated:** Use spam protection with HTTP headers instead. Deprecated in 13.11. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `description` | [`String`](#string) | Description of the snippet. | +| `id` | [`SnippetID!`](#snippetid) | The global ID of the snippet to update. | +| `spamLogId` **{warning-solid}** | [`Int`](#int) | **Deprecated:** Use spam protection with HTTP headers instead. Deprecated in 13.11. | +| `title` | [`String`](#string) | Title of the snippet. | +| `visibilityLevel` | [`VisibilityLevelsEnum`](#visibilitylevelsenum) | The visibility level of the snippet. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `captchaSiteKey` **{warning-solid}** | [`String`](#string) | **Deprecated:** Use spam protection with HTTP headers instead. Deprecated in 13.11. | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `needsCaptchaResponse` **{warning-solid}** | [`Boolean`](#boolean) | **Deprecated:** Use spam protection with HTTP headers instead. Deprecated in 13.11. | +| `snippet` | [`Snippet`](#snippet) | The snippet after mutation. | +| `spam` **{warning-solid}** | [`Boolean`](#boolean) | **Deprecated:** Use spam protection with HTTP headers instead. Deprecated in 13.11. | +| `spamLogId` **{warning-solid}** | [`Int`](#int) | **Deprecated:** Use spam protection with HTTP headers instead. Deprecated in 13.11. | + +### `Mutation.userCalloutCreate` + +Input type: `UserCalloutCreateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `featureName` | [`String!`](#string) | The feature name you want to dismiss the callout for. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `userCallout` | [`UserCallout!`](#usercallout) | The user callout dismissed. | + +### `Mutation.vulnerabilityConfirm` + +Input type: `VulnerabilityConfirmInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`VulnerabilityID!`](#vulnerabilityid) | ID of the vulnerability to be confirmed. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `vulnerability` | [`Vulnerability`](#vulnerability) | The vulnerability after state change. | + +### `Mutation.vulnerabilityDismiss` + +Input type: `VulnerabilityDismissInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `comment` | [`String`](#string) | Comment why vulnerability should be dismissed. | +| `dismissalReason` | [`VulnerabilityDismissalReason`](#vulnerabilitydismissalreason) | Reason why vulnerability should be dismissed. | +| `id` | [`VulnerabilityID!`](#vulnerabilityid) | ID of the vulnerability to be dismissed. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `vulnerability` | [`Vulnerability`](#vulnerability) | The vulnerability after dismissal. | + +### `Mutation.vulnerabilityExternalIssueLinkCreate` + +Input type: `VulnerabilityExternalIssueLinkCreateInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `externalTracker` | [`VulnerabilityExternalIssueLinkExternalTracker!`](#vulnerabilityexternalissuelinkexternaltracker) | External tracker type of the external issue link. | +| `id` | [`VulnerabilityID!`](#vulnerabilityid) | ID of the vulnerability. | +| `linkType` | [`VulnerabilityExternalIssueLinkType!`](#vulnerabilityexternalissuelinktype) | Type of the external issue link. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `externalIssueLink` | [`VulnerabilityExternalIssueLink`](#vulnerabilityexternalissuelink) | The created external issue link. | + +### `Mutation.vulnerabilityExternalIssueLinkDestroy` + +Input type: `VulnerabilityExternalIssueLinkDestroyInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`VulnerabilitiesExternalIssueLinkID!`](#vulnerabilitiesexternalissuelinkid) | The global ID of the vulnerability external issue link. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + +### `Mutation.vulnerabilityResolve` + +Input type: `VulnerabilityResolveInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`VulnerabilityID!`](#vulnerabilityid) | ID of the vulnerability to be resolved. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `vulnerability` | [`Vulnerability`](#vulnerability) | The vulnerability after state change. | + +### `Mutation.vulnerabilityRevertToDetected` + +Input type: `VulnerabilityRevertToDetectedInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `id` | [`VulnerabilityID!`](#vulnerabilityid) | ID of the vulnerability to be reverted. | + +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `vulnerability` | [`Vulnerability`](#vulnerability) | The vulnerability after revert. | + +## Connections + +Some types in our schema are `Connection` types - they represent a paginated +collection of edges between two nodes in the graph. These follow the +[Relay cursor connections specification](https://relay.dev/graphql/connections.htm). + +### Pagination arguments {#connection-pagination-arguments} + +All connection fields support the following pagination arguments: + +| Name | Type | Description | +|------|------|-------------| +| `after` | [`String`](#string) | Returns the elements in the list that come after the specified cursor. | +| `before` | [`String`](#string) | Returns the elements in the list that come before the specified cursor. | +| `first` | [`Int`](#int) | Returns the first _n_ elements from the list. | +| `last` | [`Int`](#int) | Returns the last _n_ elements from the list. | + +Since these arguments are common to all connection fields, they are not repeated for each connection. + +### Connection fields + +All connections have at least the following fields: + +| Name | Type | Description | +|------|------|-------------| +| `pageInfo` | [`PageInfo!`](#pageinfo) | Pagination information. | +| `edges` | `[edge!]` | The edges. | +| `nodes` | `[item!]` | The items in the current page. | + +The precise type of `Edge` and `Item` depends on the kind of connection. A +[`UserConnection`](#userconnection) will have nodes that have the type +[`[User!]`](#user), and edges that have the type [`UserEdge`](#useredge). + +### Connection types + +Some of the types in the schema exist solely to model connections. Each connection +has a distinct, named type, with a distinct named edge type. These are listed separately +below. + +#### `AlertManagementAlertConnection` + +The connection type for [`AlertManagementAlert`](#alertmanagementalert). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[AlertManagementAlertEdge]`](#alertmanagementalertedge) | A list of edges. | +| `nodes` | [`[AlertManagementAlert]`](#alertmanagementalert) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `AlertManagementAlertEdge` + +The edge type for [`AlertManagementAlert`](#alertmanagementalert). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`AlertManagementAlert`](#alertmanagementalert) | The item at the end of the edge. | + +#### `AlertManagementHttpIntegrationConnection` + +The connection type for [`AlertManagementHttpIntegration`](#alertmanagementhttpintegration). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[AlertManagementHttpIntegrationEdge]`](#alertmanagementhttpintegrationedge) | A list of edges. | +| `nodes` | [`[AlertManagementHttpIntegration]`](#alertmanagementhttpintegration) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `AlertManagementHttpIntegrationEdge` + +The edge type for [`AlertManagementHttpIntegration`](#alertmanagementhttpintegration). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`AlertManagementHttpIntegration`](#alertmanagementhttpintegration) | The item at the end of the edge. | + +#### `AlertManagementIntegrationConnection` + +The connection type for [`AlertManagementIntegration`](#alertmanagementintegration). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[AlertManagementIntegrationEdge]`](#alertmanagementintegrationedge) | A list of edges. | +| `nodes` | [`[AlertManagementIntegration]`](#alertmanagementintegration) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `AlertManagementIntegrationEdge` + +The edge type for [`AlertManagementIntegration`](#alertmanagementintegration). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`AlertManagementIntegration`](#alertmanagementintegration) | The item at the end of the edge. | + +#### `AwardEmojiConnection` + +The connection type for [`AwardEmoji`](#awardemoji). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[AwardEmojiEdge]`](#awardemojiedge) | A list of edges. | +| `nodes` | [`[AwardEmoji]`](#awardemoji) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `AwardEmojiEdge` + +The edge type for [`AwardEmoji`](#awardemoji). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`AwardEmoji`](#awardemoji) | The item at the end of the edge. | + +#### `BlobConnection` + +The connection type for [`Blob`](#blob). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[BlobEdge]`](#blobedge) | A list of edges. | +| `nodes` | [`[Blob]`](#blob) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `BlobEdge` + +The edge type for [`Blob`](#blob). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`Blob`](#blob) | The item at the end of the edge. | + +#### `BoardConnection` + +The connection type for [`Board`](#board). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[BoardEdge]`](#boardedge) | A list of edges. | +| `nodes` | [`[Board]`](#board) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `BoardEdge` + +The edge type for [`Board`](#board). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`Board`](#board) | The item at the end of the edge. | + +#### `BoardEpicConnection` + +The connection type for [`BoardEpic`](#boardepic). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[BoardEpicEdge]`](#boardepicedge) | A list of edges. | +| `nodes` | [`[BoardEpic]`](#boardepic) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `BoardEpicEdge` + +The edge type for [`BoardEpic`](#boardepic). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`BoardEpic`](#boardepic) | The item at the end of the edge. | + +#### `BoardListConnection` + +The connection type for [`BoardList`](#boardlist). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[BoardListEdge]`](#boardlistedge) | A list of edges. | +| `nodes` | [`[BoardList]`](#boardlist) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `BoardListEdge` + +The edge type for [`BoardList`](#boardlist). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`BoardList`](#boardlist) | The item at the end of the edge. | + +#### `CiBuildNeedConnection` + +The connection type for [`CiBuildNeed`](#cibuildneed). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[CiBuildNeedEdge]`](#cibuildneededge) | A list of edges. | +| `nodes` | [`[CiBuildNeed]`](#cibuildneed) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `CiBuildNeedEdge` + +The edge type for [`CiBuildNeed`](#cibuildneed). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`CiBuildNeed`](#cibuildneed) | The item at the end of the edge. | + +#### `CiConfigGroupConnection` + +The connection type for [`CiConfigGroup`](#ciconfiggroup). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[CiConfigGroupEdge]`](#ciconfiggroupedge) | A list of edges. | +| `nodes` | [`[CiConfigGroup]`](#ciconfiggroup) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `CiConfigGroupEdge` + +The edge type for [`CiConfigGroup`](#ciconfiggroup). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`CiConfigGroup`](#ciconfiggroup) | The item at the end of the edge. | + +#### `CiConfigJobConnection` + +The connection type for [`CiConfigJob`](#ciconfigjob). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[CiConfigJobEdge]`](#ciconfigjobedge) | A list of edges. | +| `nodes` | [`[CiConfigJob]`](#ciconfigjob) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `CiConfigJobEdge` + +The edge type for [`CiConfigJob`](#ciconfigjob). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`CiConfigJob`](#ciconfigjob) | The item at the end of the edge. | + +#### `CiConfigNeedConnection` + +The connection type for [`CiConfigNeed`](#ciconfigneed). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[CiConfigNeedEdge]`](#ciconfigneededge) | A list of edges. | +| `nodes` | [`[CiConfigNeed]`](#ciconfigneed) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `CiConfigNeedEdge` + +The edge type for [`CiConfigNeed`](#ciconfigneed). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`CiConfigNeed`](#ciconfigneed) | The item at the end of the edge. | + +#### `CiConfigStageConnection` + +The connection type for [`CiConfigStage`](#ciconfigstage). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[CiConfigStageEdge]`](#ciconfigstageedge) | A list of edges. | +| `nodes` | [`[CiConfigStage]`](#ciconfigstage) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `CiConfigStageEdge` + +The edge type for [`CiConfigStage`](#ciconfigstage). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`CiConfigStage`](#ciconfigstage) | The item at the end of the edge. | + +#### `CiGroupConnection` + +The connection type for [`CiGroup`](#cigroup). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[CiGroupEdge]`](#cigroupedge) | A list of edges. | +| `nodes` | [`[CiGroup]`](#cigroup) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `CiGroupEdge` + +The edge type for [`CiGroup`](#cigroup). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`CiGroup`](#cigroup) | The item at the end of the edge. | + +#### `CiJobArtifactConnection` + +The connection type for [`CiJobArtifact`](#cijobartifact). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[CiJobArtifactEdge]`](#cijobartifactedge) | A list of edges. | +| `nodes` | [`[CiJobArtifact]`](#cijobartifact) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `CiJobArtifactEdge` + +The edge type for [`CiJobArtifact`](#cijobartifact). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`CiJobArtifact`](#cijobartifact) | The item at the end of the edge. | + +#### `CiJobConnection` + +The connection type for [`CiJob`](#cijob). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `count` | [`Int!`](#int) | Total count of collection. | +| `edges` | [`[CiJobEdge]`](#cijobedge) | A list of edges. | +| `nodes` | [`[CiJob]`](#cijob) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `CiJobEdge` + +The edge type for [`CiJob`](#cijob). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`CiJob`](#cijob) | The item at the end of the edge. | + +#### `CiStageConnection` + +The connection type for [`CiStage`](#cistage). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[CiStageEdge]`](#cistageedge) | A list of edges. | +| `nodes` | [`[CiStage]`](#cistage) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `CiStageEdge` + +The edge type for [`CiStage`](#cistage). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`CiStage`](#cistage) | The item at the end of the edge. | + +#### `ClusterAgentConnection` + +The connection type for [`ClusterAgent`](#clusteragent). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `count` | [`Int!`](#int) | Total count of collection. | +| `edges` | [`[ClusterAgentEdge]`](#clusteragentedge) | A list of edges. | +| `nodes` | [`[ClusterAgent]`](#clusteragent) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `ClusterAgentEdge` + +The edge type for [`ClusterAgent`](#clusteragent). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`ClusterAgent`](#clusteragent) | The item at the end of the edge. | + +#### `ClusterAgentTokenConnection` + +The connection type for [`ClusterAgentToken`](#clusteragenttoken). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `count` | [`Int!`](#int) | Total count of collection. | +| `edges` | [`[ClusterAgentTokenEdge]`](#clusteragenttokenedge) | A list of edges. | +| `nodes` | [`[ClusterAgentToken]`](#clusteragenttoken) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `ClusterAgentTokenEdge` + +The edge type for [`ClusterAgentToken`](#clusteragenttoken). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`ClusterAgentToken`](#clusteragenttoken) | The item at the end of the edge. | + +#### `CodeCoverageActivityConnection` + +The connection type for [`CodeCoverageActivity`](#codecoverageactivity). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[CodeCoverageActivityEdge]`](#codecoverageactivityedge) | A list of edges. | +| `nodes` | [`[CodeCoverageActivity]`](#codecoverageactivity) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `CodeCoverageActivityEdge` + +The edge type for [`CodeCoverageActivity`](#codecoverageactivity). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`CodeCoverageActivity`](#codecoverageactivity) | The item at the end of the edge. | + +#### `CommitConnection` + +The connection type for [`Commit`](#commit). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[CommitEdge]`](#commitedge) | A list of edges. | +| `nodes` | [`[Commit]`](#commit) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `CommitEdge` + +The edge type for [`Commit`](#commit). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`Commit`](#commit) | The item at the end of the edge. | + +#### `ComplianceFrameworkConnection` + +The connection type for [`ComplianceFramework`](#complianceframework). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[ComplianceFrameworkEdge]`](#complianceframeworkedge) | A list of edges. | +| `nodes` | [`[ComplianceFramework]`](#complianceframework) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `ComplianceFrameworkEdge` + +The edge type for [`ComplianceFramework`](#complianceframework). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`ComplianceFramework`](#complianceframework) | The item at the end of the edge. | + +#### `ContainerRepositoryConnection` + +The connection type for [`ContainerRepository`](#containerrepository). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[ContainerRepositoryEdge]`](#containerrepositoryedge) | A list of edges. | +| `nodes` | [`[ContainerRepository]`](#containerrepository) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `ContainerRepositoryEdge` + +The edge type for [`ContainerRepository`](#containerrepository). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`ContainerRepository`](#containerrepository) | The item at the end of the edge. | + +#### `ContainerRepositoryTagConnection` + +The connection type for [`ContainerRepositoryTag`](#containerrepositorytag). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[ContainerRepositoryTagEdge]`](#containerrepositorytagedge) | A list of edges. | +| `nodes` | [`[ContainerRepositoryTag]`](#containerrepositorytag) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `ContainerRepositoryTagEdge` + +The edge type for [`ContainerRepositoryTag`](#containerrepositorytag). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`ContainerRepositoryTag`](#containerrepositorytag) | The item at the end of the edge. | + +#### `CustomEmojiConnection` + +The connection type for [`CustomEmoji`](#customemoji). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[CustomEmojiEdge]`](#customemojiedge) | A list of edges. | +| `nodes` | [`[CustomEmoji]`](#customemoji) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `CustomEmojiEdge` + +The edge type for [`CustomEmoji`](#customemoji). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`CustomEmoji`](#customemoji) | The item at the end of the edge. | + +#### `DastProfileConnection` + +The connection type for [`DastProfile`](#dastprofile). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[DastProfileEdge]`](#dastprofileedge) | A list of edges. | +| `nodes` | [`[DastProfile]`](#dastprofile) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `DastProfileEdge` + +The edge type for [`DastProfile`](#dastprofile). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`DastProfile`](#dastprofile) | The item at the end of the edge. | + +#### `DastScannerProfileConnection` + +The connection type for [`DastScannerProfile`](#dastscannerprofile). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[DastScannerProfileEdge]`](#dastscannerprofileedge) | A list of edges. | +| `nodes` | [`[DastScannerProfile]`](#dastscannerprofile) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `DastScannerProfileEdge` + +The edge type for [`DastScannerProfile`](#dastscannerprofile). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`DastScannerProfile`](#dastscannerprofile) | The item at the end of the edge. | + +#### `DastSiteProfileConnection` + +The connection type for [`DastSiteProfile`](#dastsiteprofile). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[DastSiteProfileEdge]`](#dastsiteprofileedge) | A list of edges. | +| `nodes` | [`[DastSiteProfile]`](#dastsiteprofile) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `DastSiteProfileEdge` + +The edge type for [`DastSiteProfile`](#dastsiteprofile). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`DastSiteProfile`](#dastsiteprofile) | The item at the end of the edge. | + +#### `DastSiteValidationConnection` + +The connection type for [`DastSiteValidation`](#dastsitevalidation). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[DastSiteValidationEdge]`](#dastsitevalidationedge) | A list of edges. | +| `nodes` | [`[DastSiteValidation]`](#dastsitevalidation) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `DastSiteValidationEdge` + +The edge type for [`DastSiteValidation`](#dastsitevalidation). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`DastSiteValidation`](#dastsitevalidation) | The item at the end of the edge. | + +#### `DesignAtVersionConnection` + +The connection type for [`DesignAtVersion`](#designatversion). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[DesignAtVersionEdge]`](#designatversionedge) | A list of edges. | +| `nodes` | [`[DesignAtVersion]`](#designatversion) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `DesignAtVersionEdge` + +The edge type for [`DesignAtVersion`](#designatversion). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`DesignAtVersion`](#designatversion) | The item at the end of the edge. | + +#### `DesignConnection` + +The connection type for [`Design`](#design). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[DesignEdge]`](#designedge) | A list of edges. | +| `nodes` | [`[Design]`](#design) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `DesignEdge` + +The edge type for [`Design`](#design). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`Design`](#design) | The item at the end of the edge. | + +#### `DesignVersionConnection` + +The connection type for [`DesignVersion`](#designversion). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[DesignVersionEdge]`](#designversionedge) | A list of edges. | +| `nodes` | [`[DesignVersion]`](#designversion) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `DesignVersionEdge` + +The edge type for [`DesignVersion`](#designversion). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`DesignVersion`](#designversion) | The item at the end of the edge. | + +#### `DevopsAdoptionSegmentConnection` + +The connection type for [`DevopsAdoptionSegment`](#devopsadoptionsegment). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[DevopsAdoptionSegmentEdge]`](#devopsadoptionsegmentedge) | A list of edges. | +| `nodes` | [`[DevopsAdoptionSegment]`](#devopsadoptionsegment) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `DevopsAdoptionSegmentEdge` + +The edge type for [`DevopsAdoptionSegment`](#devopsadoptionsegment). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`DevopsAdoptionSegment`](#devopsadoptionsegment) | The item at the end of the edge. | + +#### `DiscussionConnection` + +The connection type for [`Discussion`](#discussion). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[DiscussionEdge]`](#discussionedge) | A list of edges. | +| `nodes` | [`[Discussion]`](#discussion) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `DiscussionEdge` + +The edge type for [`Discussion`](#discussion). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`Discussion`](#discussion) | The item at the end of the edge. | + +#### `EnvironmentConnection` + +The connection type for [`Environment`](#environment). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[EnvironmentEdge]`](#environmentedge) | A list of edges. | +| `nodes` | [`[Environment]`](#environment) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `EnvironmentEdge` + +The edge type for [`Environment`](#environment). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`Environment`](#environment) | The item at the end of the edge. | + +#### `EpicBoardConnection` + +The connection type for [`EpicBoard`](#epicboard). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[EpicBoardEdge]`](#epicboardedge) | A list of edges. | +| `nodes` | [`[EpicBoard]`](#epicboard) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `EpicBoardEdge` + +The edge type for [`EpicBoard`](#epicboard). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`EpicBoard`](#epicboard) | The item at the end of the edge. | + +#### `EpicConnection` + +The connection type for [`Epic`](#epic). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[EpicEdge]`](#epicedge) | A list of edges. | +| `nodes` | [`[Epic]`](#epic) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `EpicEdge` + +The edge type for [`Epic`](#epic). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`Epic`](#epic) | The item at the end of the edge. | + +#### `EpicIssueConnection` + +The connection type for [`EpicIssue`](#epicissue). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `count` | [`Int!`](#int) | Total count of collection. | +| `edges` | [`[EpicIssueEdge]`](#epicissueedge) | A list of edges. | +| `nodes` | [`[EpicIssue]`](#epicissue) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | +| `weight` | [`Int!`](#int) | Total weight of issues collection. | + +#### `EpicIssueEdge` + +The edge type for [`EpicIssue`](#epicissue). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`EpicIssue`](#epicissue) | The item at the end of the edge. | + +#### `EpicListConnection` + +The connection type for [`EpicList`](#epiclist). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[EpicListEdge]`](#epiclistedge) | A list of edges. | +| `nodes` | [`[EpicList]`](#epiclist) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `EpicListEdge` + +The edge type for [`EpicList`](#epiclist). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`EpicList`](#epiclist) | The item at the end of the edge. | + +#### `EventConnection` + +The connection type for [`Event`](#event). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[EventEdge]`](#eventedge) | A list of edges. | +| `nodes` | [`[Event]`](#event) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `EventEdge` + +The edge type for [`Event`](#event). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`Event`](#event) | The item at the end of the edge. | + +#### `GroupMemberConnection` + +The connection type for [`GroupMember`](#groupmember). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[GroupMemberEdge]`](#groupmemberedge) | A list of edges. | +| `nodes` | [`[GroupMember]`](#groupmember) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `GroupMemberEdge` + +The edge type for [`GroupMember`](#groupmember). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`GroupMember`](#groupmember) | The item at the end of the edge. | + +#### `GroupWikiRepositoryRegistryConnection` + +The connection type for [`GroupWikiRepositoryRegistry`](#groupwikirepositoryregistry). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[GroupWikiRepositoryRegistryEdge]`](#groupwikirepositoryregistryedge) | A list of edges. | +| `nodes` | [`[GroupWikiRepositoryRegistry]`](#groupwikirepositoryregistry) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `GroupWikiRepositoryRegistryEdge` + +The edge type for [`GroupWikiRepositoryRegistry`](#groupwikirepositoryregistry). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`GroupWikiRepositoryRegistry`](#groupwikirepositoryregistry) | The item at the end of the edge. | + +#### `IncidentManagementOncallRotationConnection` + +The connection type for [`IncidentManagementOncallRotation`](#incidentmanagementoncallrotation). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[IncidentManagementOncallRotationEdge]`](#incidentmanagementoncallrotationedge) | A list of edges. | +| `nodes` | [`[IncidentManagementOncallRotation]`](#incidentmanagementoncallrotation) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `IncidentManagementOncallRotationEdge` + +The edge type for [`IncidentManagementOncallRotation`](#incidentmanagementoncallrotation). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`IncidentManagementOncallRotation`](#incidentmanagementoncallrotation) | The item at the end of the edge. | + +#### `IncidentManagementOncallScheduleConnection` + +The connection type for [`IncidentManagementOncallSchedule`](#incidentmanagementoncallschedule). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[IncidentManagementOncallScheduleEdge]`](#incidentmanagementoncallscheduleedge) | A list of edges. | +| `nodes` | [`[IncidentManagementOncallSchedule]`](#incidentmanagementoncallschedule) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `IncidentManagementOncallScheduleEdge` + +The edge type for [`IncidentManagementOncallSchedule`](#incidentmanagementoncallschedule). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`IncidentManagementOncallSchedule`](#incidentmanagementoncallschedule) | The item at the end of the edge. | + +#### `IncidentManagementOncallShiftConnection` + +The connection type for [`IncidentManagementOncallShift`](#incidentmanagementoncallshift). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[IncidentManagementOncallShiftEdge]`](#incidentmanagementoncallshiftedge) | A list of edges. | +| `nodes` | [`[IncidentManagementOncallShift]`](#incidentmanagementoncallshift) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `IncidentManagementOncallShiftEdge` + +The edge type for [`IncidentManagementOncallShift`](#incidentmanagementoncallshift). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`IncidentManagementOncallShift`](#incidentmanagementoncallshift) | The item at the end of the edge. | + +#### `IssueConnection` + +The connection type for [`Issue`](#issue). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `count` | [`Int!`](#int) | Total count of collection. | +| `edges` | [`[IssueEdge]`](#issueedge) | A list of edges. | +| `nodes` | [`[Issue]`](#issue) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | +| `weight` | [`Int!`](#int) | Total weight of issues collection. | + +#### `IssueEdge` + +The edge type for [`Issue`](#issue). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`Issue`](#issue) | The item at the end of the edge. | + +#### `IterationCadenceConnection` + +The connection type for [`IterationCadence`](#iterationcadence). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[IterationCadenceEdge]`](#iterationcadenceedge) | A list of edges. | +| `nodes` | [`[IterationCadence]`](#iterationcadence) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `IterationCadenceEdge` + +The edge type for [`IterationCadence`](#iterationcadence). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`IterationCadence`](#iterationcadence) | The item at the end of the edge. | + +#### `IterationConnection` + +The connection type for [`Iteration`](#iteration). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[IterationEdge]`](#iterationedge) | A list of edges. | +| `nodes` | [`[Iteration]`](#iteration) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `IterationEdge` + +The edge type for [`Iteration`](#iteration). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`Iteration`](#iteration) | The item at the end of the edge. | + +#### `JiraImportConnection` + +The connection type for [`JiraImport`](#jiraimport). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[JiraImportEdge]`](#jiraimportedge) | A list of edges. | +| `nodes` | [`[JiraImport]`](#jiraimport) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `JiraImportEdge` + +The edge type for [`JiraImport`](#jiraimport). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`JiraImport`](#jiraimport) | The item at the end of the edge. | + +#### `JiraProjectConnection` + +The connection type for [`JiraProject`](#jiraproject). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[JiraProjectEdge]`](#jiraprojectedge) | A list of edges. | +| `nodes` | [`[JiraProject]`](#jiraproject) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `JiraProjectEdge` + +The edge type for [`JiraProject`](#jiraproject). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`JiraProject`](#jiraproject) | The item at the end of the edge. | + +#### `LabelConnection` + +The connection type for [`Label`](#label). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `count` | [`Int!`](#int) | Total count of collection. | +| `edges` | [`[LabelEdge]`](#labeledge) | A list of edges. | +| `nodes` | [`[Label]`](#label) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `LabelEdge` + +The edge type for [`Label`](#label). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`Label`](#label) | The item at the end of the edge. | + +#### `LicenseHistoryEntryConnection` + +The connection type for [`LicenseHistoryEntry`](#licensehistoryentry). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[LicenseHistoryEntryEdge]`](#licensehistoryentryedge) | A list of edges. | +| `nodes` | [`[LicenseHistoryEntry]`](#licensehistoryentry) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `LicenseHistoryEntryEdge` + +The edge type for [`LicenseHistoryEntry`](#licensehistoryentry). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`LicenseHistoryEntry`](#licensehistoryentry) | The item at the end of the edge. | + +#### `MemberInterfaceConnection` + +The connection type for [`MemberInterface`](#memberinterface). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[MemberInterfaceEdge]`](#memberinterfaceedge) | A list of edges. | +| `nodes` | [`[MemberInterface]`](#memberinterface) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `MemberInterfaceEdge` + +The edge type for [`MemberInterface`](#memberinterface). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`MemberInterface`](#memberinterface) | The item at the end of the edge. | + +#### `MergeRequestConnection` + +The connection type for [`MergeRequest`](#mergerequest). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `count` | [`Int!`](#int) | Total count of collection. | +| `edges` | [`[MergeRequestEdge]`](#mergerequestedge) | A list of edges. | +| `nodes` | [`[MergeRequest]`](#mergerequest) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | +| `totalTimeToMerge` | [`Float`](#float) | Total sum of time to merge, in seconds, for the collection of merge requests. | + +#### `MergeRequestDiffRegistryConnection` + +The connection type for [`MergeRequestDiffRegistry`](#mergerequestdiffregistry). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[MergeRequestDiffRegistryEdge]`](#mergerequestdiffregistryedge) | A list of edges. | +| `nodes` | [`[MergeRequestDiffRegistry]`](#mergerequestdiffregistry) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `MergeRequestDiffRegistryEdge` + +The edge type for [`MergeRequestDiffRegistry`](#mergerequestdiffregistry). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`MergeRequestDiffRegistry`](#mergerequestdiffregistry) | The item at the end of the edge. | + +#### `MergeRequestEdge` + +The edge type for [`MergeRequest`](#mergerequest). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`MergeRequest`](#mergerequest) | The item at the end of the edge. | + +#### `MergeRequestReviewerConnection` + +The connection type for [`MergeRequestReviewer`](#mergerequestreviewer). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[MergeRequestReviewerEdge]`](#mergerequestrevieweredge) | A list of edges. | +| `nodes` | [`[MergeRequestReviewer]`](#mergerequestreviewer) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `MergeRequestReviewerEdge` + +The edge type for [`MergeRequestReviewer`](#mergerequestreviewer). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`MergeRequestReviewer`](#mergerequestreviewer) | The item at the end of the edge. | + +#### `MetricsDashboardAnnotationConnection` + +The connection type for [`MetricsDashboardAnnotation`](#metricsdashboardannotation). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[MetricsDashboardAnnotationEdge]`](#metricsdashboardannotationedge) | A list of edges. | +| `nodes` | [`[MetricsDashboardAnnotation]`](#metricsdashboardannotation) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `MetricsDashboardAnnotationEdge` + +The edge type for [`MetricsDashboardAnnotation`](#metricsdashboardannotation). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`MetricsDashboardAnnotation`](#metricsdashboardannotation) | The item at the end of the edge. | + +#### `MilestoneConnection` + +The connection type for [`Milestone`](#milestone). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[MilestoneEdge]`](#milestoneedge) | A list of edges. | +| `nodes` | [`[Milestone]`](#milestone) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `MilestoneEdge` + +The edge type for [`Milestone`](#milestone). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`Milestone`](#milestone) | The item at the end of the edge. | + +#### `NamespaceConnection` + +The connection type for [`Namespace`](#namespace). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[NamespaceEdge]`](#namespaceedge) | A list of edges. | +| `nodes` | [`[Namespace]`](#namespace) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `NamespaceEdge` + +The edge type for [`Namespace`](#namespace). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`Namespace`](#namespace) | The item at the end of the edge. | + +#### `NoteConnection` + +The connection type for [`Note`](#note). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[NoteEdge]`](#noteedge) | A list of edges. | +| `nodes` | [`[Note]`](#note) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `NoteEdge` + +The edge type for [`Note`](#note). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`Note`](#note) | The item at the end of the edge. | + +#### `OncallParticipantTypeConnection` + +The connection type for [`OncallParticipantType`](#oncallparticipanttype). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[OncallParticipantTypeEdge]`](#oncallparticipanttypeedge) | A list of edges. | +| `nodes` | [`[OncallParticipantType]`](#oncallparticipanttype) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `OncallParticipantTypeEdge` + +The edge type for [`OncallParticipantType`](#oncallparticipanttype). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`OncallParticipantType`](#oncallparticipanttype) | The item at the end of the edge. | + +#### `PackageConnection` + +The connection type for [`Package`](#package). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[PackageEdge]`](#packageedge) | A list of edges. | +| `nodes` | [`[Package]`](#package) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `PackageEdge` + +The edge type for [`Package`](#package). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`Package`](#package) | The item at the end of the edge. | + +#### `PackageFileConnection` + +The connection type for [`PackageFile`](#packagefile). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[PackageFileEdge]`](#packagefileedge) | A list of edges. | +| `nodes` | [`[PackageFile]`](#packagefile) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `PackageFileEdge` + +The edge type for [`PackageFile`](#packagefile). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`PackageFile`](#packagefile) | The item at the end of the edge. | + +#### `PackageFileRegistryConnection` + +The connection type for [`PackageFileRegistry`](#packagefileregistry). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[PackageFileRegistryEdge]`](#packagefileregistryedge) | A list of edges. | +| `nodes` | [`[PackageFileRegistry]`](#packagefileregistry) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `PackageFileRegistryEdge` + +The edge type for [`PackageFileRegistry`](#packagefileregistry). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`PackageFileRegistry`](#packagefileregistry) | The item at the end of the edge. | + +#### `PackageTagConnection` + +The connection type for [`PackageTag`](#packagetag). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[PackageTagEdge]`](#packagetagedge) | A list of edges. | +| `nodes` | [`[PackageTag]`](#packagetag) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `PackageTagEdge` + +The edge type for [`PackageTag`](#packagetag). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`PackageTag`](#packagetag) | The item at the end of the edge. | + +#### `PipelineArtifactRegistryConnection` + +The connection type for [`PipelineArtifactRegistry`](#pipelineartifactregistry). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[PipelineArtifactRegistryEdge]`](#pipelineartifactregistryedge) | A list of edges. | +| `nodes` | [`[PipelineArtifactRegistry]`](#pipelineartifactregistry) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `PipelineArtifactRegistryEdge` + +The edge type for [`PipelineArtifactRegistry`](#pipelineartifactregistry). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`PipelineArtifactRegistry`](#pipelineartifactregistry) | The item at the end of the edge. | + +#### `PipelineConnection` + +The connection type for [`Pipeline`](#pipeline). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `count` | [`Int!`](#int) | Total count of collection. | +| `edges` | [`[PipelineEdge]`](#pipelineedge) | A list of edges. | +| `nodes` | [`[Pipeline]`](#pipeline) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `PipelineEdge` + +The edge type for [`Pipeline`](#pipeline). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`Pipeline`](#pipeline) | The item at the end of the edge. | + +#### `PipelineSecurityReportFindingConnection` + +The connection type for [`PipelineSecurityReportFinding`](#pipelinesecurityreportfinding). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[PipelineSecurityReportFindingEdge]`](#pipelinesecurityreportfindingedge) | A list of edges. | +| `nodes` | [`[PipelineSecurityReportFinding]`](#pipelinesecurityreportfinding) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `PipelineSecurityReportFindingEdge` + +The edge type for [`PipelineSecurityReportFinding`](#pipelinesecurityreportfinding). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`PipelineSecurityReportFinding`](#pipelinesecurityreportfinding) | The item at the end of the edge. | + +#### `ProjectConnection` + +The connection type for [`Project`](#project). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[ProjectEdge]`](#projectedge) | A list of edges. | +| `nodes` | [`[Project]`](#project) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `ProjectEdge` + +The edge type for [`Project`](#project). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`Project`](#project) | The item at the end of the edge. | + +#### `ProjectMemberConnection` + +The connection type for [`ProjectMember`](#projectmember). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[ProjectMemberEdge]`](#projectmemberedge) | A list of edges. | +| `nodes` | [`[ProjectMember]`](#projectmember) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `ProjectMemberEdge` + +The edge type for [`ProjectMember`](#projectmember). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`ProjectMember`](#projectmember) | The item at the end of the edge. | + +#### `ReleaseAssetLinkConnection` + +The connection type for [`ReleaseAssetLink`](#releaseassetlink). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[ReleaseAssetLinkEdge]`](#releaseassetlinkedge) | A list of edges. | +| `nodes` | [`[ReleaseAssetLink]`](#releaseassetlink) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `ReleaseAssetLinkEdge` + +The edge type for [`ReleaseAssetLink`](#releaseassetlink). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`ReleaseAssetLink`](#releaseassetlink) | The item at the end of the edge. | + +#### `ReleaseConnection` + +The connection type for [`Release`](#release). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `count` | [`Int!`](#int) | Total count of collection. | +| `edges` | [`[ReleaseEdge]`](#releaseedge) | A list of edges. | +| `nodes` | [`[Release]`](#release) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `ReleaseEdge` + +The edge type for [`Release`](#release). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`Release`](#release) | The item at the end of the edge. | + +#### `ReleaseEvidenceConnection` + +The connection type for [`ReleaseEvidence`](#releaseevidence). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[ReleaseEvidenceEdge]`](#releaseevidenceedge) | A list of edges. | +| `nodes` | [`[ReleaseEvidence]`](#releaseevidence) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `ReleaseEvidenceEdge` + +The edge type for [`ReleaseEvidence`](#releaseevidence). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`ReleaseEvidence`](#releaseevidence) | The item at the end of the edge. | + +#### `ReleaseSourceConnection` + +The connection type for [`ReleaseSource`](#releasesource). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[ReleaseSourceEdge]`](#releasesourceedge) | A list of edges. | +| `nodes` | [`[ReleaseSource]`](#releasesource) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `ReleaseSourceEdge` + +The edge type for [`ReleaseSource`](#releasesource). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`ReleaseSource`](#releasesource) | The item at the end of the edge. | + +#### `RepositoryBlobConnection` + +The connection type for [`RepositoryBlob`](#repositoryblob). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[RepositoryBlobEdge]`](#repositoryblobedge) | A list of edges. | +| `nodes` | [`[RepositoryBlob]`](#repositoryblob) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `RepositoryBlobEdge` + +The edge type for [`RepositoryBlob`](#repositoryblob). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`RepositoryBlob`](#repositoryblob) | The item at the end of the edge. | + +#### `RequirementConnection` + +The connection type for [`Requirement`](#requirement). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[RequirementEdge]`](#requirementedge) | A list of edges. | +| `nodes` | [`[Requirement]`](#requirement) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `RequirementEdge` + +The edge type for [`Requirement`](#requirement). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`Requirement`](#requirement) | The item at the end of the edge. | + +#### `RunnerArchitectureConnection` + +The connection type for [`RunnerArchitecture`](#runnerarchitecture). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[RunnerArchitectureEdge]`](#runnerarchitectureedge) | A list of edges. | +| `nodes` | [`[RunnerArchitecture]`](#runnerarchitecture) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `RunnerArchitectureEdge` + +The edge type for [`RunnerArchitecture`](#runnerarchitecture). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`RunnerArchitecture`](#runnerarchitecture) | The item at the end of the edge. | + +#### `RunnerPlatformConnection` + +The connection type for [`RunnerPlatform`](#runnerplatform). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[RunnerPlatformEdge]`](#runnerplatformedge) | A list of edges. | +| `nodes` | [`[RunnerPlatform]`](#runnerplatform) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `RunnerPlatformEdge` + +The edge type for [`RunnerPlatform`](#runnerplatform). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`RunnerPlatform`](#runnerplatform) | The item at the end of the edge. | + +#### `SastCiConfigurationAnalyzersEntityConnection` + +The connection type for [`SastCiConfigurationAnalyzersEntity`](#sastciconfigurationanalyzersentity). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[SastCiConfigurationAnalyzersEntityEdge]`](#sastciconfigurationanalyzersentityedge) | A list of edges. | +| `nodes` | [`[SastCiConfigurationAnalyzersEntity]`](#sastciconfigurationanalyzersentity) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `SastCiConfigurationAnalyzersEntityEdge` + +The edge type for [`SastCiConfigurationAnalyzersEntity`](#sastciconfigurationanalyzersentity). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`SastCiConfigurationAnalyzersEntity`](#sastciconfigurationanalyzersentity) | The item at the end of the edge. | + +#### `SastCiConfigurationEntityConnection` + +The connection type for [`SastCiConfigurationEntity`](#sastciconfigurationentity). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[SastCiConfigurationEntityEdge]`](#sastciconfigurationentityedge) | A list of edges. | +| `nodes` | [`[SastCiConfigurationEntity]`](#sastciconfigurationentity) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `SastCiConfigurationEntityEdge` + +The edge type for [`SastCiConfigurationEntity`](#sastciconfigurationentity). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`SastCiConfigurationEntity`](#sastciconfigurationentity) | The item at the end of the edge. | + +#### `SastCiConfigurationOptionsEntityConnection` + +The connection type for [`SastCiConfigurationOptionsEntity`](#sastciconfigurationoptionsentity). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[SastCiConfigurationOptionsEntityEdge]`](#sastciconfigurationoptionsentityedge) | A list of edges. | +| `nodes` | [`[SastCiConfigurationOptionsEntity]`](#sastciconfigurationoptionsentity) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `SastCiConfigurationOptionsEntityEdge` + +The edge type for [`SastCiConfigurationOptionsEntity`](#sastciconfigurationoptionsentity). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`SastCiConfigurationOptionsEntity`](#sastciconfigurationoptionsentity) | The item at the end of the edge. | + +#### `ScanConnection` + +The connection type for [`Scan`](#scan). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[ScanEdge]`](#scanedge) | A list of edges. | +| `nodes` | [`[Scan]`](#scan) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `ScanEdge` + +The edge type for [`Scan`](#scan). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`Scan`](#scan) | The item at the end of the edge. | + +#### `ScannedResourceConnection` + +The connection type for [`ScannedResource`](#scannedresource). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[ScannedResourceEdge]`](#scannedresourceedge) | A list of edges. | +| `nodes` | [`[ScannedResource]`](#scannedresource) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `ScannedResourceEdge` + +The edge type for [`ScannedResource`](#scannedresource). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`ScannedResource`](#scannedresource) | The item at the end of the edge. | + +#### `SentryErrorConnection` + +The connection type for [`SentryError`](#sentryerror). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[SentryErrorEdge]`](#sentryerroredge) | A list of edges. | +| `nodes` | [`[SentryError]`](#sentryerror) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `SentryErrorEdge` + +The edge type for [`SentryError`](#sentryerror). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`SentryError`](#sentryerror) | The item at the end of the edge. | + +#### `ServiceConnection` + +The connection type for [`Service`](#service). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[ServiceEdge]`](#serviceedge) | A list of edges. | +| `nodes` | [`[Service]`](#service) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `ServiceEdge` + +The edge type for [`Service`](#service). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`Service`](#service) | The item at the end of the edge. | + +#### `SnippetBlobConnection` + +The connection type for [`SnippetBlob`](#snippetblob). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[SnippetBlobEdge]`](#snippetblobedge) | A list of edges. | +| `nodes` | [`[SnippetBlob]`](#snippetblob) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `SnippetBlobEdge` + +The edge type for [`SnippetBlob`](#snippetblob). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`SnippetBlob`](#snippetblob) | The item at the end of the edge. | + +#### `SnippetConnection` + +The connection type for [`Snippet`](#snippet). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[SnippetEdge]`](#snippetedge) | A list of edges. | +| `nodes` | [`[Snippet]`](#snippet) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `SnippetEdge` + +The edge type for [`Snippet`](#snippet). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`Snippet`](#snippet) | The item at the end of the edge. | + +#### `SnippetRepositoryRegistryConnection` + +The connection type for [`SnippetRepositoryRegistry`](#snippetrepositoryregistry). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[SnippetRepositoryRegistryEdge]`](#snippetrepositoryregistryedge) | A list of edges. | +| `nodes` | [`[SnippetRepositoryRegistry]`](#snippetrepositoryregistry) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `SnippetRepositoryRegistryEdge` + +The edge type for [`SnippetRepositoryRegistry`](#snippetrepositoryregistry). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`SnippetRepositoryRegistry`](#snippetrepositoryregistry) | The item at the end of the edge. | + +#### `SubmoduleConnection` + +The connection type for [`Submodule`](#submodule). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[SubmoduleEdge]`](#submoduleedge) | A list of edges. | +| `nodes` | [`[Submodule]`](#submodule) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `SubmoduleEdge` + +The edge type for [`Submodule`](#submodule). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`Submodule`](#submodule) | The item at the end of the edge. | + +#### `TerraformStateConnection` + +The connection type for [`TerraformState`](#terraformstate). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `count` | [`Int!`](#int) | Total count of collection. | +| `edges` | [`[TerraformStateEdge]`](#terraformstateedge) | A list of edges. | +| `nodes` | [`[TerraformState]`](#terraformstate) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `TerraformStateEdge` + +The edge type for [`TerraformState`](#terraformstate). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`TerraformState`](#terraformstate) | The item at the end of the edge. | + +#### `TerraformStateVersionRegistryConnection` + +The connection type for [`TerraformStateVersionRegistry`](#terraformstateversionregistry). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[TerraformStateVersionRegistryEdge]`](#terraformstateversionregistryedge) | A list of edges. | +| `nodes` | [`[TerraformStateVersionRegistry]`](#terraformstateversionregistry) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `TerraformStateVersionRegistryEdge` + +The edge type for [`TerraformStateVersionRegistry`](#terraformstateversionregistry). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`TerraformStateVersionRegistry`](#terraformstateversionregistry) | The item at the end of the edge. | + +#### `TestCaseConnection` + +The connection type for [`TestCase`](#testcase). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `count` | [`Int!`](#int) | Total count of collection. | +| `edges` | [`[TestCaseEdge]`](#testcaseedge) | A list of edges. | +| `nodes` | [`[TestCase]`](#testcase) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `TestCaseEdge` + +The edge type for [`TestCase`](#testcase). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`TestCase`](#testcase) | The item at the end of the edge. | + +#### `TestReportConnection` + +The connection type for [`TestReport`](#testreport). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[TestReportEdge]`](#testreportedge) | A list of edges. | +| `nodes` | [`[TestReport]`](#testreport) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `TestReportEdge` + +The edge type for [`TestReport`](#testreport). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`TestReport`](#testreport) | The item at the end of the edge. | + +#### `TestSuiteSummaryConnection` + +The connection type for [`TestSuiteSummary`](#testsuitesummary). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `count` | [`Int!`](#int) | Total count of collection. | +| `edges` | [`[TestSuiteSummaryEdge]`](#testsuitesummaryedge) | A list of edges. | +| `nodes` | [`[TestSuiteSummary]`](#testsuitesummary) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `TestSuiteSummaryEdge` + +The edge type for [`TestSuiteSummary`](#testsuitesummary). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`TestSuiteSummary`](#testsuitesummary) | The item at the end of the edge. | + +#### `TimelogConnection` + +The connection type for [`Timelog`](#timelog). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[TimelogEdge]`](#timelogedge) | A list of edges. | +| `nodes` | [`[Timelog]`](#timelog) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `TimelogEdge` + +The edge type for [`Timelog`](#timelog). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`Timelog`](#timelog) | The item at the end of the edge. | + +#### `TodoConnection` + +The connection type for [`Todo`](#todo). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[TodoEdge]`](#todoedge) | A list of edges. | +| `nodes` | [`[Todo]`](#todo) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `TodoEdge` + +The edge type for [`Todo`](#todo). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`Todo`](#todo) | The item at the end of the edge. | + +#### `TreeEntryConnection` + +The connection type for [`TreeEntry`](#treeentry). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[TreeEntryEdge]`](#treeentryedge) | A list of edges. | +| `nodes` | [`[TreeEntry]`](#treeentry) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `TreeEntryEdge` + +The edge type for [`TreeEntry`](#treeentry). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`TreeEntry`](#treeentry) | The item at the end of the edge. | + +#### `UsageTrendsMeasurementConnection` + +The connection type for [`UsageTrendsMeasurement`](#usagetrendsmeasurement). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[UsageTrendsMeasurementEdge]`](#usagetrendsmeasurementedge) | A list of edges. | +| `nodes` | [`[UsageTrendsMeasurement]`](#usagetrendsmeasurement) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `UsageTrendsMeasurementEdge` + +The edge type for [`UsageTrendsMeasurement`](#usagetrendsmeasurement). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`UsageTrendsMeasurement`](#usagetrendsmeasurement) | The item at the end of the edge. | + +#### `UserCalloutConnection` + +The connection type for [`UserCallout`](#usercallout). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[UserCalloutEdge]`](#usercalloutedge) | A list of edges. | +| `nodes` | [`[UserCallout]`](#usercallout) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `UserCalloutEdge` + +The edge type for [`UserCallout`](#usercallout). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`UserCallout`](#usercallout) | The item at the end of the edge. | + +#### `UserConnection` + +The connection type for [`User`](#user). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[UserEdge]`](#useredge) | A list of edges. | +| `nodes` | [`[User]`](#user) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `UserEdge` + +The edge type for [`User`](#user). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`User`](#user) | The item at the end of the edge. | + +#### `VulnerabilitiesCountByDayAndSeverityConnection` + +The connection type for [`VulnerabilitiesCountByDayAndSeverity`](#vulnerabilitiescountbydayandseverity). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[VulnerabilitiesCountByDayAndSeverityEdge]`](#vulnerabilitiescountbydayandseverityedge) | A list of edges. | +| `nodes` | [`[VulnerabilitiesCountByDayAndSeverity]`](#vulnerabilitiescountbydayandseverity) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `VulnerabilitiesCountByDayAndSeverityEdge` + +The edge type for [`VulnerabilitiesCountByDayAndSeverity`](#vulnerabilitiescountbydayandseverity). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`VulnerabilitiesCountByDayAndSeverity`](#vulnerabilitiescountbydayandseverity) | The item at the end of the edge. | + +#### `VulnerabilitiesCountByDayConnection` + +The connection type for [`VulnerabilitiesCountByDay`](#vulnerabilitiescountbyday). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[VulnerabilitiesCountByDayEdge]`](#vulnerabilitiescountbydayedge) | A list of edges. | +| `nodes` | [`[VulnerabilitiesCountByDay]`](#vulnerabilitiescountbyday) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `VulnerabilitiesCountByDayEdge` + +The edge type for [`VulnerabilitiesCountByDay`](#vulnerabilitiescountbyday). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`VulnerabilitiesCountByDay`](#vulnerabilitiescountbyday) | The item at the end of the edge. | + +#### `VulnerabilityConnection` + +The connection type for [`Vulnerability`](#vulnerability). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[VulnerabilityEdge]`](#vulnerabilityedge) | A list of edges. | +| `nodes` | [`[Vulnerability]`](#vulnerability) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `VulnerabilityEdge` + +The edge type for [`Vulnerability`](#vulnerability). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`Vulnerability`](#vulnerability) | The item at the end of the edge. | + +#### `VulnerabilityExternalIssueLinkConnection` + +The connection type for [`VulnerabilityExternalIssueLink`](#vulnerabilityexternalissuelink). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[VulnerabilityExternalIssueLinkEdge]`](#vulnerabilityexternalissuelinkedge) | A list of edges. | +| `nodes` | [`[VulnerabilityExternalIssueLink]`](#vulnerabilityexternalissuelink) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `VulnerabilityExternalIssueLinkEdge` + +The edge type for [`VulnerabilityExternalIssueLink`](#vulnerabilityexternalissuelink). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`VulnerabilityExternalIssueLink`](#vulnerabilityexternalissuelink) | The item at the end of the edge. | + +#### `VulnerabilityIssueLinkConnection` + +The connection type for [`VulnerabilityIssueLink`](#vulnerabilityissuelink). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[VulnerabilityIssueLinkEdge]`](#vulnerabilityissuelinkedge) | A list of edges. | +| `nodes` | [`[VulnerabilityIssueLink]`](#vulnerabilityissuelink) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `VulnerabilityIssueLinkEdge` + +The edge type for [`VulnerabilityIssueLink`](#vulnerabilityissuelink). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`VulnerabilityIssueLink`](#vulnerabilityissuelink) | The item at the end of the edge. | + +#### `VulnerabilityScannerConnection` + +The connection type for [`VulnerabilityScanner`](#vulnerabilityscanner). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `edges` | [`[VulnerabilityScannerEdge]`](#vulnerabilityscanneredge) | A list of edges. | +| `nodes` | [`[VulnerabilityScanner]`](#vulnerabilityscanner) | A list of nodes. | +| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | + +#### `VulnerabilityScannerEdge` + +The edge type for [`VulnerabilityScanner`](#vulnerabilityscanner). + +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cursor` | [`String!`](#string) | A cursor for use in pagination. | +| `node` | [`VulnerabilityScanner`](#vulnerabilityscanner) | The item at the end of the edge. | ## Object types Object types represent the resources that the GitLab GraphQL API can return. They contain _fields_. Each field has its own type, which will either be one of the basic GraphQL [scalar types](https://graphql.org/learn/schema/#scalar-types) -(e.g.: `String` or `Boolean`) or other object types. +(e.g.: `String` or `Boolean`) or other object types. Fields may have arguments. +Fields with arguments are exactly like top-level queries, and are listed beneath +the table of fields for each object type. For more information, see [Object Types and Fields](https://graphql.org/learn/schema/#object-types-and-fields) @@ -470,6520 +6509,5724 @@ on `graphql.org`. Represents the access level of a relationship between a User and object that it is related to. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `integerValue` | [`Int`](#int) | Integer representation of access level. | -| `stringValue` | [`AccessLevelEnum`](#accesslevelenum) | String representation of access level. | +#### Fields -### `AddAwardEmojiPayload` - -Autogenerated return type of AddAwardEmoji. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `awardEmoji` | [`AwardEmoji`](#awardemoji) | The award emoji after mutation. | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `AddProjectToSecurityDashboardPayload` - -Autogenerated return type of AddProjectToSecurityDashboard. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `project` | [`Project`](#project) | Project that was added to the Instance Security Dashboard. | - -### `AdminSidekiqQueuesDeleteJobsPayload` - -Autogenerated return type of AdminSidekiqQueuesDeleteJobs. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `result` | [`DeleteJobsResponse`](#deletejobsresponse) | Information about the status of the deletion request. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `integerValue` | [`Int`](#int) | Integer representation of access level. | +| `stringValue` | [`AccessLevelEnum`](#accesslevelenum) | String representation of access level. | ### `AlertManagementAlert` Describes an alert from the project's Alert Management. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `assignees` | [`UserConnection`](#userconnection) | Assignees of the alert. | -| `createdAt` | [`Time`](#time) | Timestamp the alert was created. | -| `description` | [`String`](#string) | Description of the alert. | -| `details` | [`JSON`](#json) | Alert details. | -| `detailsUrl` | [`String!`](#string) | The URL of the alert detail page. | -| `discussions` | [`DiscussionConnection!`](#discussionconnection) | All discussions on this noteable. | -| `endedAt` | [`Time`](#time) | Timestamp the alert ended. | -| `environment` | [`Environment`](#environment) | Environment for the alert. | -| `eventCount` | [`Int`](#int) | Number of events of this alert. | -| `hosts` | [`[String!]`](#string) | List of hosts the alert came from. | -| `iid` | [`ID!`](#id) | Internal ID of the alert. | -| `issue` | [`Issue`](#issue) | Issue attached to the alert. | -| `issueIid` **{warning-solid}** | [`ID`](#id) | **Deprecated** in 13.10. Use issue field. | -| `metricsDashboardUrl` | [`String`](#string) | URL for metrics embed for the alert. | -| `monitoringTool` | [`String`](#string) | Monitoring tool the alert came from. | -| `notes` | [`NoteConnection!`](#noteconnection) | All notes on this noteable. | -| `prometheusAlert` | [`PrometheusAlert`](#prometheusalert) | The alert condition for Prometheus. | -| `runbook` | [`String`](#string) | Runbook for the alert as defined in alert details. | -| `service` | [`String`](#string) | Service the alert came from. | -| `severity` | [`AlertManagementSeverity`](#alertmanagementseverity) | Severity of the alert. | -| `startedAt` | [`Time`](#time) | Timestamp the alert was raised. | -| `status` | [`AlertManagementStatus`](#alertmanagementstatus) | Status of the alert. | -| `title` | [`String`](#string) | Title of the alert. | -| `todos` | [`TodoConnection`](#todoconnection) | To-do items of the current user for the alert. | -| `updatedAt` | [`Time`](#time) | Timestamp the alert was last updated. | +#### Fields -### `AlertManagementAlertConnection` +| Name | Type | Description | +| ---- | ---- | ----------- | +| `assignees` | [`UserConnection`](#userconnection) | Assignees of the alert. | +| `createdAt` | [`Time`](#time) | Timestamp the alert was created. | +| `description` | [`String`](#string) | Description of the alert. | +| `details` | [`JSON`](#json) | Alert details. | +| `detailsUrl` | [`String!`](#string) | The URL of the alert detail page. | +| `discussions` | [`DiscussionConnection!`](#discussionconnection) | All discussions on this noteable. | +| `endedAt` | [`Time`](#time) | Timestamp the alert ended. | +| `environment` | [`Environment`](#environment) | Environment for the alert. | +| `eventCount` | [`Int`](#int) | Number of events of this alert. | +| `hosts` | [`[String!]`](#string) | List of hosts the alert came from. | +| `iid` | [`ID!`](#id) | Internal ID of the alert. | +| `issue` | [`Issue`](#issue) | Issue attached to the alert. | +| `issueIid` **{warning-solid}** | [`ID`](#id) | **Deprecated** in 13.10. Use issue field. | +| `metricsDashboardUrl` | [`String`](#string) | URL for metrics embed for the alert. | +| `monitoringTool` | [`String`](#string) | Monitoring tool the alert came from. | +| `notes` | [`NoteConnection!`](#noteconnection) | All notes on this noteable. | +| `prometheusAlert` | [`PrometheusAlert`](#prometheusalert) | The alert condition for Prometheus. | +| `runbook` | [`String`](#string) | Runbook for the alert as defined in alert details. | +| `service` | [`String`](#string) | Service the alert came from. | +| `severity` | [`AlertManagementSeverity`](#alertmanagementseverity) | Severity of the alert. | +| `startedAt` | [`Time`](#time) | Timestamp the alert was raised. | +| `status` | [`AlertManagementStatus`](#alertmanagementstatus) | Status of the alert. | +| `title` | [`String`](#string) | Title of the alert. | +| `updatedAt` | [`Time`](#time) | Timestamp the alert was last updated. | -The connection type for AlertManagementAlert. +#### Fields with arguments -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[AlertManagementAlertEdge]`](#alertmanagementalertedge) | A list of edges. | -| `nodes` | [`[AlertManagementAlert]`](#alertmanagementalert) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | +##### `AlertManagementAlert.todos` -### `AlertManagementAlertEdge` +To-do items of the current user for the alert. -An edge in a connection. +Returns [`TodoConnection`](#todoconnection). -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`AlertManagementAlert`](#alertmanagementalert) | The item at the end of the edge. | +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `action` | [`[TodoActionEnum!]`](#todoactionenum) | The action to be filtered. | +| `authorId` | [`[ID!]`](#id) | The ID of an author. | +| `groupId` | [`[ID!]`](#id) | The ID of a group. | +| `projectId` | [`[ID!]`](#id) | The ID of a project. | +| `state` | [`[TodoStateEnum!]`](#todostateenum) | The state of the todo. | +| `type` | [`[TodoTargetEnum!]`](#todotargetenum) | The type of the todo. | ### `AlertManagementAlertStatusCountsType` Represents total number of alerts for the represented categories. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `acknowledged` | [`Int`](#int) | Number of alerts with status ACKNOWLEDGED for the project. | -| `all` | [`Int`](#int) | Total number of alerts for the project. | -| `ignored` | [`Int`](#int) | Number of alerts with status IGNORED for the project. | -| `open` | [`Int`](#int) | Number of alerts with status TRIGGERED or ACKNOWLEDGED for the project. | -| `resolved` | [`Int`](#int) | Number of alerts with status RESOLVED for the project. | -| `triggered` | [`Int`](#int) | Number of alerts with status TRIGGERED for the project. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `acknowledged` | [`Int`](#int) | Number of alerts with status ACKNOWLEDGED for the project. | +| `all` | [`Int`](#int) | Total number of alerts for the project. | +| `ignored` | [`Int`](#int) | Number of alerts with status IGNORED for the project. | +| `open` | [`Int`](#int) | Number of alerts with status TRIGGERED or ACKNOWLEDGED for the project. | +| `resolved` | [`Int`](#int) | Number of alerts with status RESOLVED for the project. | +| `triggered` | [`Int`](#int) | Number of alerts with status TRIGGERED for the project. | ### `AlertManagementHttpIntegration` An endpoint and credentials used to accept alerts for a project. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `active` | [`Boolean`](#boolean) | Whether the endpoint is currently accepting alerts. | -| `apiUrl` | [`String`](#string) | URL at which Prometheus metrics can be queried to populate the metrics dashboard. | -| `id` | [`ID!`](#id) | ID of the integration. | -| `name` | [`String`](#string) | Name of the integration. | -| `payloadAlertFields` | [`[AlertManagementPayloadAlertField!]`](#alertmanagementpayloadalertfield) | Extract alert fields from payload example for custom mapping. | -| `payloadAttributeMappings` | [`[AlertManagementPayloadAlertMappingField!]`](#alertmanagementpayloadalertmappingfield) | The custom mapping of GitLab alert attributes to fields from the payload_example. | -| `payloadExample` | [`JsonString`](#jsonstring) | The example of an alert payload. | -| `token` | [`String`](#string) | Token used to authenticate alert notification requests. | -| `type` | [`AlertManagementIntegrationType!`](#alertmanagementintegrationtype) | Type of integration. | -| `url` | [`String`](#string) | Endpoint which accepts alert notifications. | +#### Fields -### `AlertManagementHttpIntegrationConnection` - -The connection type for AlertManagementHttpIntegration. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[AlertManagementHttpIntegrationEdge]`](#alertmanagementhttpintegrationedge) | A list of edges. | -| `nodes` | [`[AlertManagementHttpIntegration]`](#alertmanagementhttpintegration) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `AlertManagementHttpIntegrationEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`AlertManagementHttpIntegration`](#alertmanagementhttpintegration) | The item at the end of the edge. | - -### `AlertManagementIntegrationConnection` - -The connection type for AlertManagementIntegration. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[AlertManagementIntegrationEdge]`](#alertmanagementintegrationedge) | A list of edges. | -| `nodes` | [`[AlertManagementIntegration]`](#alertmanagementintegration) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `AlertManagementIntegrationEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`AlertManagementIntegration`](#alertmanagementintegration) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `active` | [`Boolean`](#boolean) | Whether the endpoint is currently accepting alerts. | +| `apiUrl` | [`String`](#string) | URL at which Prometheus metrics can be queried to populate the metrics dashboard. | +| `id` | [`ID!`](#id) | ID of the integration. | +| `name` | [`String`](#string) | Name of the integration. | +| `payloadAlertFields` | [`[AlertManagementPayloadAlertField!]`](#alertmanagementpayloadalertfield) | Extract alert fields from payload example for custom mapping. | +| `payloadAttributeMappings` | [`[AlertManagementPayloadAlertMappingField!]`](#alertmanagementpayloadalertmappingfield) | The custom mapping of GitLab alert attributes to fields from the payload_example. | +| `payloadExample` | [`JsonString`](#jsonstring) | The example of an alert payload. | +| `token` | [`String`](#string) | Token used to authenticate alert notification requests. | +| `type` | [`AlertManagementIntegrationType!`](#alertmanagementintegrationtype) | Type of integration. | +| `url` | [`String`](#string) | Endpoint which accepts alert notifications. | ### `AlertManagementPayloadAlertField` Parsed field from an alert used for custom mappings. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `label` | [`String`](#string) | Human-readable label of the payload path. | -| `path` | [`[PayloadAlertFieldPathSegment!]`](#payloadalertfieldpathsegment) | Path to value inside payload JSON. | -| `type` | [`AlertManagementPayloadAlertFieldType`](#alertmanagementpayloadalertfieldtype) | Type of the parsed value. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `label` | [`String`](#string) | Human-readable label of the payload path. | +| `path` | [`[PayloadAlertFieldPathSegment!]`](#payloadalertfieldpathsegment) | Path to value inside payload JSON. | +| `type` | [`AlertManagementPayloadAlertFieldType`](#alertmanagementpayloadalertfieldtype) | Type of the parsed value. | ### `AlertManagementPayloadAlertMappingField` Parsed field (with its name) from an alert used for custom mappings. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `fieldName` | [`AlertManagementPayloadAlertFieldName`](#alertmanagementpayloadalertfieldname) | A GitLab alert field name. | -| `label` | [`String`](#string) | Human-readable label of the payload path. | -| `path` | [`[PayloadAlertFieldPathSegment!]`](#payloadalertfieldpathsegment) | Path to value inside payload JSON. | -| `type` | [`AlertManagementPayloadAlertFieldType`](#alertmanagementpayloadalertfieldtype) | Type of the parsed value. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `fieldName` | [`AlertManagementPayloadAlertFieldName`](#alertmanagementpayloadalertfieldname) | A GitLab alert field name. | +| `label` | [`String`](#string) | Human-readable label of the payload path. | +| `path` | [`[PayloadAlertFieldPathSegment!]`](#payloadalertfieldpathsegment) | Path to value inside payload JSON. | +| `type` | [`AlertManagementPayloadAlertFieldType`](#alertmanagementpayloadalertfieldtype) | Type of the parsed value. | ### `AlertManagementPrometheusIntegration` An endpoint and credentials used to accept Prometheus alerts for a project. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `active` | [`Boolean`](#boolean) | Whether the endpoint is currently accepting alerts. | -| `apiUrl` | [`String`](#string) | URL at which Prometheus metrics can be queried to populate the metrics dashboard. | -| `id` | [`ID!`](#id) | ID of the integration. | -| `name` | [`String`](#string) | Name of the integration. | -| `token` | [`String`](#string) | Token used to authenticate alert notification requests. | -| `type` | [`AlertManagementIntegrationType!`](#alertmanagementintegrationtype) | Type of integration. | -| `url` | [`String`](#string) | Endpoint which accepts alert notifications. | +#### Fields -### `AlertSetAssigneesPayload` - -Autogenerated return type of AlertSetAssignees. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `alert` | [`AlertManagementAlert`](#alertmanagementalert) | The alert after mutation. | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `issue` | [`Issue`](#issue) | The issue created after mutation. | -| `todo` | [`Todo`](#todo) | The to-do item after mutation. | - -### `AlertTodoCreatePayload` - -Autogenerated return type of AlertTodoCreate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `alert` | [`AlertManagementAlert`](#alertmanagementalert) | The alert after mutation. | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `issue` | [`Issue`](#issue) | The issue created after mutation. | -| `todo` | [`Todo`](#todo) | The to-do item after mutation. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `active` | [`Boolean`](#boolean) | Whether the endpoint is currently accepting alerts. | +| `apiUrl` | [`String`](#string) | URL at which Prometheus metrics can be queried to populate the metrics dashboard. | +| `id` | [`ID!`](#id) | ID of the integration. | +| `name` | [`String`](#string) | Name of the integration. | +| `token` | [`String`](#string) | Token used to authenticate alert notification requests. | +| `type` | [`AlertManagementIntegrationType!`](#alertmanagementintegrationtype) | Type of integration. | +| `url` | [`String`](#string) | Endpoint which accepts alert notifications. | ### `ApiFuzzingCiConfiguration` Data associated with configuring API fuzzing scans in GitLab CI. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `scanModes` | [`[ApiFuzzingScanMode!]`](#apifuzzingscanmode) | All available scan modes. | -| `scanProfiles` | [`[ApiFuzzingScanProfile!]`](#apifuzzingscanprofile) | All default scan profiles. | +#### Fields -### `ApiFuzzingCiConfigurationCreatePayload` - -Autogenerated return type of ApiFuzzingCiConfigurationCreate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `configurationYaml` | [`String`](#string) | A YAML snippet that can be inserted into the project's `.gitlab-ci.yml` to set up API fuzzing scans. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `gitlabCiYamlEditPath` | [`String`](#string) | The location at which the project's `.gitlab-ci.yml` file can be edited in the browser. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `scanModes` | [`[ApiFuzzingScanMode!]`](#apifuzzingscanmode) | All available scan modes. | +| `scanProfiles` | [`[ApiFuzzingScanProfile!]`](#apifuzzingscanprofile) | All default scan profiles. | ### `ApiFuzzingScanProfile` An API Fuzzing scan profile. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `description` | [`String`](#string) | A short description of the profile. | -| `name` | [`String`](#string) | The unique name of the profile. | -| `yaml` | [`String`](#string) | A syntax highlit HTML representation of the YAML. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `description` | [`String`](#string) | A short description of the profile. | +| `name` | [`String`](#string) | The unique name of the profile. | +| `yaml` | [`String`](#string) | A syntax highlit HTML representation of the YAML. | ### `ApprovalRule` Describes a rule for who can approve merge requests. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `id` | [`GlobalID!`](#globalid) | ID of the rule. | -| `name` | [`String`](#string) | Name of the rule. | -| `type` | [`ApprovalRuleType`](#approvalruletype) | Type of the rule. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `id` | [`GlobalID!`](#globalid) | ID of the rule. | +| `name` | [`String`](#string) | Name of the rule. | +| `type` | [`ApprovalRuleType`](#approvalruletype) | Type of the rule. | ### `AwardEmoji` An emoji awarded by a user. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `description` | [`String!`](#string) | The emoji description. | -| `emoji` | [`String!`](#string) | The emoji as an icon. | -| `name` | [`String!`](#string) | The emoji name. | -| `unicode` | [`String!`](#string) | The emoji in Unicode. | -| `unicodeVersion` | [`String!`](#string) | The Unicode version for this emoji. | -| `user` | [`User!`](#user) | The user who awarded the emoji. | +#### Fields -### `AwardEmojiAddPayload` - -Autogenerated return type of AwardEmojiAdd. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `awardEmoji` | [`AwardEmoji`](#awardemoji) | The award emoji after mutation. | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `AwardEmojiConnection` - -The connection type for AwardEmoji. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[AwardEmojiEdge]`](#awardemojiedge) | A list of edges. | -| `nodes` | [`[AwardEmoji]`](#awardemoji) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `AwardEmojiEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`AwardEmoji`](#awardemoji) | The item at the end of the edge. | - -### `AwardEmojiRemovePayload` - -Autogenerated return type of AwardEmojiRemove. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `awardEmoji` | [`AwardEmoji`](#awardemoji) | The award emoji after mutation. | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `AwardEmojiTogglePayload` - -Autogenerated return type of AwardEmojiToggle. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `awardEmoji` | [`AwardEmoji`](#awardemoji) | The award emoji after mutation. | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `toggledOn` | [`Boolean!`](#boolean) | Indicates the status of the emoji. True if the toggle awarded the emoji, and false if the toggle removed the emoji. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `description` | [`String!`](#string) | The emoji description. | +| `emoji` | [`String!`](#string) | The emoji as an icon. | +| `name` | [`String!`](#string) | The emoji name. | +| `unicode` | [`String!`](#string) | The emoji in Unicode. | +| `unicodeVersion` | [`String!`](#string) | The Unicode version for this emoji. | +| `user` | [`User!`](#user) | The user who awarded the emoji. | ### `BaseService` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `active` | [`Boolean`](#boolean) | Indicates if the service is active. | -| `type` | [`String`](#string) | Class name of the service. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `active` | [`Boolean`](#boolean) | Indicates if the service is active. | +| `type` | [`String`](#string) | Class name of the service. | ### `Blob` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `flatPath` | [`String!`](#string) | Flat path of the entry. | -| `id` | [`ID!`](#id) | ID of the entry. | -| `lfsOid` | [`String`](#string) | LFS ID of the blob. | -| `mode` | [`String`](#string) | Blob mode in numeric format. | -| `name` | [`String!`](#string) | Name of the entry. | -| `path` | [`String!`](#string) | Path of the entry. | -| `sha` | [`String!`](#string) | Last commit SHA for the entry. | -| `type` | [`EntryType!`](#entrytype) | Type of tree entry. | -| `webPath` | [`String`](#string) | Web path of the blob. | -| `webUrl` | [`String`](#string) | Web URL of the blob. | +#### Fields -### `BlobConnection` - -The connection type for Blob. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[BlobEdge]`](#blobedge) | A list of edges. | -| `nodes` | [`[Blob]`](#blob) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `BlobEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`Blob`](#blob) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `flatPath` | [`String!`](#string) | Flat path of the entry. | +| `id` | [`ID!`](#id) | ID of the entry. | +| `lfsOid` | [`String`](#string) | LFS ID of the blob. | +| `mode` | [`String`](#string) | Blob mode in numeric format. | +| `name` | [`String!`](#string) | Name of the entry. | +| `path` | [`String!`](#string) | Path of the entry. | +| `sha` | [`String!`](#string) | Last commit SHA for the entry. | +| `type` | [`EntryType!`](#entrytype) | Type of tree entry. | +| `webPath` | [`String`](#string) | Web path of the blob. | +| `webUrl` | [`String`](#string) | Web URL of the blob. | ### `Board` Represents a project or group issue board. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `assignee` | [`User`](#user) | The board assignee. | -| `createdAt` | [`Time!`](#time) | Timestamp of when the board was created. | -| `epics` | [`BoardEpicConnection`](#boardepicconnection) | Epics associated with board issues. | -| `hideBacklogList` | [`Boolean`](#boolean) | Whether or not backlog list is hidden. | -| `hideClosedList` | [`Boolean`](#boolean) | Whether or not closed list is hidden. | -| `id` | [`ID!`](#id) | ID (global ID) of the board. | -| `iteration` | [`Iteration`](#iteration) | The board iteration. | -| `labels` | [`LabelConnection`](#labelconnection) | Labels of the board. | -| `lists` | [`BoardListConnection`](#boardlistconnection) | Lists of the board. | -| `milestone` | [`Milestone`](#milestone) | The board milestone. | -| `name` | [`String`](#string) | Name of the board. | -| `updatedAt` | [`Time!`](#time) | Timestamp of when the board was last updated. | -| `webPath` | [`String!`](#string) | Web path of the board. | -| `webUrl` | [`String!`](#string) | Web URL of the board. | -| `weight` | [`Int`](#int) | Weight of the board. | +#### Fields -### `BoardConnection` +| Name | Type | Description | +| ---- | ---- | ----------- | +| `assignee` | [`User`](#user) | The board assignee. | +| `createdAt` | [`Time!`](#time) | Timestamp of when the board was created. | +| `hideBacklogList` | [`Boolean`](#boolean) | Whether or not backlog list is hidden. | +| `hideClosedList` | [`Boolean`](#boolean) | Whether or not closed list is hidden. | +| `id` | [`ID!`](#id) | ID (global ID) of the board. | +| `iteration` | [`Iteration`](#iteration) | The board iteration. | +| `labels` | [`LabelConnection`](#labelconnection) | Labels of the board. | +| `milestone` | [`Milestone`](#milestone) | The board milestone. | +| `name` | [`String`](#string) | Name of the board. | +| `updatedAt` | [`Time!`](#time) | Timestamp of when the board was last updated. | +| `webPath` | [`String!`](#string) | Web path of the board. | +| `webUrl` | [`String!`](#string) | Web URL of the board. | +| `weight` | [`Int`](#int) | Weight of the board. | -The connection type for Board. +#### Fields with arguments -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[BoardEdge]`](#boardedge) | A list of edges. | -| `nodes` | [`[Board]`](#board) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | +##### `Board.epics` -### `BoardEdge` +Epics associated with board issues. -An edge in a connection. +Returns [`BoardEpicConnection`](#boardepicconnection). -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`Board`](#board) | The item at the end of the edge. | +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `issueFilters` | [`BoardIssueInput`](#boardissueinput) | Filters applied when selecting issues on the board. | + +##### `Board.lists` + +Lists of the board. + +Returns [`BoardListConnection`](#boardlistconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `id` | [`ListID`](#listid) | Find a list by its global ID. | +| `issueFilters` | [`BoardIssueInput`](#boardissueinput) | Filters applied when getting issue metadata in the board list. | ### `BoardEpic` Represents an epic on an issue board. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `author` | [`User!`](#user) | Author of the epic. | -| `awardEmoji` | [`AwardEmojiConnection`](#awardemojiconnection) | A list of award emojis associated with the epic. | -| `children` | [`EpicConnection`](#epicconnection) | Children (sub-epics) of the epic. | -| `closedAt` | [`Time`](#time) | Timestamp of when the epic was closed. | -| `confidential` | [`Boolean`](#boolean) | Indicates if the epic is confidential. | -| `createdAt` | [`Time`](#time) | Timestamp of when the epic was created. | -| `currentUserTodos` | [`TodoConnection!`](#todoconnection) | To-do items for the current user. | -| `descendantCounts` | [`EpicDescendantCount`](#epicdescendantcount) | Number of open and closed descendant epics and issues. | -| `descendantWeightSum` | [`EpicDescendantWeights`](#epicdescendantweights) | Total weight of open and closed issues in the epic and its descendants. | -| `description` | [`String`](#string) | Description of the epic. | -| `descriptionHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `description`. | -| `discussions` | [`DiscussionConnection!`](#discussionconnection) | All discussions on this noteable. | -| `downvotes` | [`Int!`](#int) | Number of downvotes the epic has received. | -| `dueDate` | [`Time`](#time) | Due date of the epic. | -| `dueDateFixed` | [`Time`](#time) | Fixed due date of the epic. | -| `dueDateFromMilestones` | [`Time`](#time) | Inherited due date of the epic from milestones. | -| `dueDateIsFixed` | [`Boolean`](#boolean) | Indicates if the due date has been manually set. | -| `events` | [`EventConnection`](#eventconnection) | A list of events associated with the object. | -| `group` | [`Group!`](#group) | Group to which the epic belongs. | -| `hasChildren` | [`Boolean!`](#boolean) | Indicates if the epic has children. | -| `hasIssues` | [`Boolean!`](#boolean) | Indicates if the epic has direct issues. | -| `hasParent` | [`Boolean!`](#boolean) | Indicates if the epic has a parent epic. | -| `healthStatus` | [`EpicHealthStatus`](#epichealthstatus) | Current health status of the epic. | -| `id` | [`ID!`](#id) | ID of the epic. | -| `iid` | [`ID!`](#id) | Internal ID of the epic. | -| `issues` | [`EpicIssueConnection`](#epicissueconnection) | A list of issues associated with the epic. | -| `labels` | [`LabelConnection`](#labelconnection) | Labels assigned to the epic. | -| `notes` | [`NoteConnection!`](#noteconnection) | All notes on this noteable. | -| `parent` | [`Epic`](#epic) | Parent epic of the epic. | -| `participants` | [`UserConnection`](#userconnection) | List of participants for the epic. | -| `reference` | [`String!`](#string) | Internal reference of the epic. Returned in shortened format by default. | -| `relationPath` | [`String`](#string) | URI path of the epic-issue relationship. | -| `relativePosition` | [`Int`](#int) | The relative position of the epic in the epic tree. | -| `startDate` | [`Time`](#time) | Start date of the epic. | -| `startDateFixed` | [`Time`](#time) | Fixed start date of the epic. | -| `startDateFromMilestones` | [`Time`](#time) | Inherited start date of the epic from milestones. | -| `startDateIsFixed` | [`Boolean`](#boolean) | Indicates if the start date has been manually set. | -| `state` | [`EpicState!`](#epicstate) | State of the epic. | -| `subscribed` | [`Boolean!`](#boolean) | Indicates the currently logged in user is subscribed to the epic. | -| `title` | [`String`](#string) | Title of the epic. | -| `titleHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `title`. | -| `updatedAt` | [`Time`](#time) | Timestamp of when the epic was updated. | -| `upvotes` | [`Int!`](#int) | Number of upvotes the epic has received. | -| `userDiscussionsCount` | [`Int!`](#int) | Number of user discussions in the epic. | -| `userNotesCount` | [`Int!`](#int) | Number of user notes of the epic. | -| `userPermissions` | [`EpicPermissions!`](#epicpermissions) | Permissions for the current user on the resource. | -| `userPreferences` | [`BoardEpicUserPreferences`](#boardepicuserpreferences) | User preferences for the epic on the issue board. | -| `webPath` | [`String!`](#string) | Web path of the epic. | -| `webUrl` | [`String!`](#string) | Web URL of the epic. | +#### Fields -### `BoardEpicConnection` +| Name | Type | Description | +| ---- | ---- | ----------- | +| `author` | [`User!`](#user) | Author of the epic. | +| `awardEmoji` | [`AwardEmojiConnection`](#awardemojiconnection) | A list of award emojis associated with the epic. | +| `closedAt` | [`Time`](#time) | Timestamp of when the epic was closed. | +| `confidential` | [`Boolean`](#boolean) | Indicates if the epic is confidential. | +| `createdAt` | [`Time`](#time) | Timestamp of when the epic was created. | +| `descendantCounts` | [`EpicDescendantCount`](#epicdescendantcount) | Number of open and closed descendant epics and issues. | +| `descendantWeightSum` | [`EpicDescendantWeights`](#epicdescendantweights) | Total weight of open and closed issues in the epic and its descendants. | +| `description` | [`String`](#string) | Description of the epic. | +| `descriptionHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `description`. | +| `discussions` | [`DiscussionConnection!`](#discussionconnection) | All discussions on this noteable. | +| `downvotes` | [`Int!`](#int) | Number of downvotes the epic has received. | +| `dueDate` | [`Time`](#time) | Due date of the epic. | +| `dueDateFixed` | [`Time`](#time) | Fixed due date of the epic. | +| `dueDateFromMilestones` | [`Time`](#time) | Inherited due date of the epic from milestones. | +| `dueDateIsFixed` | [`Boolean`](#boolean) | Indicates if the due date has been manually set. | +| `events` | [`EventConnection`](#eventconnection) | A list of events associated with the object. | +| `group` | [`Group!`](#group) | Group to which the epic belongs. | +| `hasChildren` | [`Boolean!`](#boolean) | Indicates if the epic has children. | +| `hasIssues` | [`Boolean!`](#boolean) | Indicates if the epic has direct issues. | +| `hasParent` | [`Boolean!`](#boolean) | Indicates if the epic has a parent epic. | +| `healthStatus` | [`EpicHealthStatus`](#epichealthstatus) | Current health status of the epic. | +| `id` | [`ID!`](#id) | ID of the epic. | +| `iid` | [`ID!`](#id) | Internal ID of the epic. | +| `issues` | [`EpicIssueConnection`](#epicissueconnection) | A list of issues associated with the epic. | +| `labels` | [`LabelConnection`](#labelconnection) | Labels assigned to the epic. | +| `notes` | [`NoteConnection!`](#noteconnection) | All notes on this noteable. | +| `parent` | [`Epic`](#epic) | Parent epic of the epic. | +| `participants` | [`UserConnection`](#userconnection) | List of participants for the epic. | +| `relationPath` | [`String`](#string) | URI path of the epic-issue relationship. | +| `relativePosition` | [`Int`](#int) | The relative position of the epic in the epic tree. | +| `startDate` | [`Time`](#time) | Start date of the epic. | +| `startDateFixed` | [`Time`](#time) | Fixed start date of the epic. | +| `startDateFromMilestones` | [`Time`](#time) | Inherited start date of the epic from milestones. | +| `startDateIsFixed` | [`Boolean`](#boolean) | Indicates if the start date has been manually set. | +| `state` | [`EpicState!`](#epicstate) | State of the epic. | +| `subscribed` | [`Boolean!`](#boolean) | Indicates the currently logged in user is subscribed to the epic. | +| `title` | [`String`](#string) | Title of the epic. | +| `titleHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `title`. | +| `updatedAt` | [`Time`](#time) | Timestamp of when the epic was updated. | +| `upvotes` | [`Int!`](#int) | Number of upvotes the epic has received. | +| `userDiscussionsCount` | [`Int!`](#int) | Number of user discussions in the epic. | +| `userNotesCount` | [`Int!`](#int) | Number of user notes of the epic. | +| `userPermissions` | [`EpicPermissions!`](#epicpermissions) | Permissions for the current user on the resource. | +| `userPreferences` | [`BoardEpicUserPreferences`](#boardepicuserpreferences) | User preferences for the epic on the issue board. | +| `webPath` | [`String!`](#string) | Web path of the epic. | +| `webUrl` | [`String!`](#string) | Web URL of the epic. | -The connection type for BoardEpic. +#### Fields with arguments -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[BoardEpicEdge]`](#boardepicedge) | A list of edges. | -| `nodes` | [`[BoardEpic]`](#boardepic) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | +##### `BoardEpic.children` -### `BoardEpicEdge` +Children (sub-epics) of the epic. -An edge in a connection. +Returns [`EpicConnection`](#epicconnection). -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`BoardEpic`](#boardepic) | The item at the end of the edge. | +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `authorUsername` | [`String`](#string) | Filter epics by author. | +| `confidential` | [`Boolean`](#boolean) | Filter epics by given confidentiality. | +| `endDate` **{warning-solid}** | [`Time`](#time) | **Deprecated** in 13.5. Use timeframe.end. | +| `iid` | [`ID`](#id) | IID of the epic, e.g., "1". | +| `iidStartsWith` | [`String`](#string) | Filter epics by IID for autocomplete. | +| `iids` | [`[ID!]`](#id) | List of IIDs of epics, e.g., [1, 2]. | +| `includeDescendantGroups` | [`Boolean`](#boolean) | Include epics from descendant groups. | +| `labelName` | [`[String!]`](#string) | Filter epics by labels. | +| `milestoneTitle` | [`String`](#string) | Filter epics by milestone title, computed from epic's issues. | +| `myReactionEmoji` | [`String`](#string) | Filter by reaction emoji applied by the current user. | +| `search` | [`String`](#string) | Search query for epic title or description. | +| `sort` | [`EpicSort`](#epicsort) | List epics by sort order. | +| `startDate` **{warning-solid}** | [`Time`](#time) | **Deprecated** in 13.5. Use timeframe.start. | +| `state` | [`EpicState`](#epicstate) | Filter epics by state. | +| `timeframe` | [`Timeframe`](#timeframe) | List items overlapping the given timeframe. | + +##### `BoardEpic.currentUserTodos` + +To-do items for the current user. + +Returns [`TodoConnection!`](#todoconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `state` | [`TodoStateEnum`](#todostateenum) | State of the to-do items. | + +##### `BoardEpic.reference` + +Internal reference of the epic. Returned in shortened format by default. + +Returns [`String!`](#string). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `full` | [`Boolean`](#boolean) | Indicates if the reference should be returned in full. | ### `BoardEpicUserPreferences` Represents user preferences for a board epic. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `collapsed` | [`Boolean!`](#boolean) | Indicates epic should be displayed as collapsed. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `collapsed` | [`Boolean!`](#boolean) | Indicates epic should be displayed as collapsed. | ### `BoardList` Represents a list for an issue board. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `assignee` | [`User`](#user) | Assignee in the list. | -| `collapsed` | [`Boolean`](#boolean) | Indicates if the list is collapsed for this user. | -| `id` | [`ID!`](#id) | ID (global ID) of the list. | -| `issues` | [`IssueConnection`](#issueconnection) | Board issues. | -| `issuesCount` | [`Int`](#int) | Count of issues in the list. | -| `iteration` | [`Iteration`](#iteration) | Iteration of the list. | -| `label` | [`Label`](#label) | Label of the list. | -| `limitMetric` | [`ListLimitMetric`](#listlimitmetric) | The current limit metric for the list. | -| `listType` | [`String!`](#string) | Type of the list. | -| `maxIssueCount` | [`Int`](#int) | Maximum number of issues in the list. | -| `maxIssueWeight` | [`Int`](#int) | Maximum weight of issues in the list. | -| `milestone` | [`Milestone`](#milestone) | Milestone of the list. | -| `position` | [`Int`](#int) | Position of list within the board. | -| `title` | [`String!`](#string) | Title of the list. | -| `totalWeight` | [`Int`](#int) | Total weight of all issues in the list. | +#### Fields -### `BoardListConnection` +| Name | Type | Description | +| ---- | ---- | ----------- | +| `assignee` | [`User`](#user) | Assignee in the list. | +| `collapsed` | [`Boolean`](#boolean) | Indicates if the list is collapsed for this user. | +| `id` | [`ID!`](#id) | ID (global ID) of the list. | +| `issuesCount` | [`Int`](#int) | Count of issues in the list. | +| `iteration` | [`Iteration`](#iteration) | Iteration of the list. | +| `label` | [`Label`](#label) | Label of the list. | +| `limitMetric` | [`ListLimitMetric`](#listlimitmetric) | The current limit metric for the list. | +| `listType` | [`String!`](#string) | Type of the list. | +| `maxIssueCount` | [`Int`](#int) | Maximum number of issues in the list. | +| `maxIssueWeight` | [`Int`](#int) | Maximum weight of issues in the list. | +| `milestone` | [`Milestone`](#milestone) | Milestone of the list. | +| `position` | [`Int`](#int) | Position of list within the board. | +| `title` | [`String!`](#string) | Title of the list. | +| `totalWeight` | [`Int`](#int) | Total weight of all issues in the list. | -The connection type for BoardList. +#### Fields with arguments -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[BoardListEdge]`](#boardlistedge) | A list of edges. | -| `nodes` | [`[BoardList]`](#boardlist) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | +##### `BoardList.issues` -### `BoardListCreatePayload` +Board issues. -Autogenerated return type of BoardListCreate. +Returns [`IssueConnection`](#issueconnection). -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `list` | [`BoardList`](#boardlist) | Issue list in the issue board. | +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. -### `BoardListEdge` +###### Arguments -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`BoardList`](#boardlist) | The item at the end of the edge. | - -### `BoardListUpdateLimitMetricsPayload` - -Autogenerated return type of BoardListUpdateLimitMetrics. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `list` | [`BoardList`](#boardlist) | The updated list. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `filters` | [`BoardIssueInput`](#boardissueinput) | Filters applied when selecting issues in the board list. | ### `Branch` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `commit` | [`Commit`](#commit) | Commit for the branch. | -| `name` | [`String!`](#string) | Name of the branch. | +#### Fields -### `BulkFindOrCreateDevopsAdoptionSegmentsPayload` - -Autogenerated return type of BulkFindOrCreateDevopsAdoptionSegments. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `segments` | [`[DevopsAdoptionSegment!]`](#devopsadoptionsegment) | Created segments after mutation. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `commit` | [`Commit`](#commit) | Commit for the branch. | +| `name` | [`String!`](#string) | Name of the branch. | ### `BurnupChartDailyTotals` Represents the total number of issues and their weights for a particular day. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `completedCount` | [`Int!`](#int) | Number of closed issues as of this day. | -| `completedWeight` | [`Int!`](#int) | Total weight of closed issues as of this day. | -| `date` | [`ISO8601Date!`](#iso8601date) | Date for burnup totals. | -| `scopeCount` | [`Int!`](#int) | Number of issues as of this day. | -| `scopeWeight` | [`Int!`](#int) | Total weight of issues as of this day. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `completedCount` | [`Int!`](#int) | Number of closed issues as of this day. | +| `completedWeight` | [`Int!`](#int) | Total weight of closed issues as of this day. | +| `date` | [`ISO8601Date!`](#iso8601date) | Date for burnup totals. | +| `scopeCount` | [`Int!`](#int) | Number of issues as of this day. | +| `scopeWeight` | [`Int!`](#int) | Total weight of issues as of this day. | ### `CiApplicationSettings` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `keepLatestArtifact` | [`Boolean`](#boolean) | Whether to keep the latest jobs artifacts. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `keepLatestArtifact` | [`Boolean`](#boolean) | Whether to keep the latest jobs artifacts. | ### `CiBuildNeed` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `name` | [`String`](#string) | Name of the job we need to complete. | +#### Fields -### `CiBuildNeedConnection` - -The connection type for CiBuildNeed. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[CiBuildNeedEdge]`](#cibuildneededge) | A list of edges. | -| `nodes` | [`[CiBuildNeed]`](#cibuildneed) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `CiBuildNeedEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`CiBuildNeed`](#cibuildneed) | The item at the end of the edge. | - -### `CiCdSettingsUpdatePayload` - -Autogenerated return type of CiCdSettingsUpdate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `ciCdSettings` | [`ProjectCiCdSetting!`](#projectcicdsetting) | The CI/CD settings after mutation. | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `name` | [`String`](#string) | Name of the job we need to complete. | ### `CiConfig` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `errors` | [`[String!]`](#string) | Linting errors. | -| `mergedYaml` | [`String`](#string) | Merged CI configuration YAML. | -| `stages` | [`CiConfigStageConnection`](#ciconfigstageconnection) | Stages of the pipeline. | -| `status` | [`CiConfigStatus`](#ciconfigstatus) | Status of linting, can be either valid or invalid. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `errors` | [`[String!]`](#string) | Linting errors. | +| `mergedYaml` | [`String`](#string) | Merged CI configuration YAML. | +| `stages` | [`CiConfigStageConnection`](#ciconfigstageconnection) | Stages of the pipeline. | +| `status` | [`CiConfigStatus`](#ciconfigstatus) | Status of linting, can be either valid or invalid. | ### `CiConfigGroup` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `jobs` | [`CiConfigJobConnection`](#ciconfigjobconnection) | Jobs in group. | -| `name` | [`String`](#string) | Name of the job group. | -| `size` | [`Int`](#int) | Size of the job group. | +#### Fields -### `CiConfigGroupConnection` - -The connection type for CiConfigGroup. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[CiConfigGroupEdge]`](#ciconfiggroupedge) | A list of edges. | -| `nodes` | [`[CiConfigGroup]`](#ciconfiggroup) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `CiConfigGroupEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`CiConfigGroup`](#ciconfiggroup) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `jobs` | [`CiConfigJobConnection`](#ciconfigjobconnection) | Jobs in group. | +| `name` | [`String`](#string) | Name of the job group. | +| `size` | [`Int`](#int) | Size of the job group. | ### `CiConfigJob` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `afterScript` | [`[String!]`](#string) | Override a set of commands that are executed after the job. | -| `allowFailure` | [`Boolean`](#boolean) | Allow job to fail. | -| `beforeScript` | [`[String!]`](#string) | Override a set of commands that are executed before the job. | -| `environment` | [`String`](#string) | Name of an environment to which the job deploys. | -| `except` | [`CiConfigJobRestriction`](#ciconfigjobrestriction) | Limit when jobs are not created. | -| `groupName` | [`String`](#string) | Name of the job group. | -| `name` | [`String`](#string) | Name of the job. | -| `needs` | [`CiConfigNeedConnection`](#ciconfigneedconnection) | Builds that must complete before the jobs run. | -| `only` | [`CiConfigJobRestriction`](#ciconfigjobrestriction) | Jobs are created when these conditions do not apply. | -| `script` | [`[String!]`](#string) | Shell script that is executed by a runner. | -| `stage` | [`String`](#string) | Name of the job stage. | -| `tags` | [`[String!]`](#string) | List of tags that are used to select a runner. | -| `when` | [`String`](#string) | When to run the job. | +#### Fields -### `CiConfigJobConnection` - -The connection type for CiConfigJob. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[CiConfigJobEdge]`](#ciconfigjobedge) | A list of edges. | -| `nodes` | [`[CiConfigJob]`](#ciconfigjob) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `CiConfigJobEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`CiConfigJob`](#ciconfigjob) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `afterScript` | [`[String!]`](#string) | Override a set of commands that are executed after the job. | +| `allowFailure` | [`Boolean`](#boolean) | Allow job to fail. | +| `beforeScript` | [`[String!]`](#string) | Override a set of commands that are executed before the job. | +| `environment` | [`String`](#string) | Name of an environment to which the job deploys. | +| `except` | [`CiConfigJobRestriction`](#ciconfigjobrestriction) | Limit when jobs are not created. | +| `groupName` | [`String`](#string) | Name of the job group. | +| `name` | [`String`](#string) | Name of the job. | +| `needs` | [`CiConfigNeedConnection`](#ciconfigneedconnection) | Builds that must complete before the jobs run. | +| `only` | [`CiConfigJobRestriction`](#ciconfigjobrestriction) | Jobs are created when these conditions do not apply. | +| `script` | [`[String!]`](#string) | Shell script that is executed by a runner. | +| `stage` | [`String`](#string) | Name of the job stage. | +| `tags` | [`[String!]`](#string) | List of tags that are used to select a runner. | +| `when` | [`String`](#string) | When to run the job. | ### `CiConfigJobRestriction` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `refs` | [`[String!]`](#string) | The Git refs the job restriction applies to. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `refs` | [`[String!]`](#string) | The Git refs the job restriction applies to. | ### `CiConfigNeed` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `name` | [`String`](#string) | Name of the need. | +#### Fields -### `CiConfigNeedConnection` - -The connection type for CiConfigNeed. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[CiConfigNeedEdge]`](#ciconfigneededge) | A list of edges. | -| `nodes` | [`[CiConfigNeed]`](#ciconfigneed) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `CiConfigNeedEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`CiConfigNeed`](#ciconfigneed) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `name` | [`String`](#string) | Name of the need. | ### `CiConfigStage` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `groups` | [`CiConfigGroupConnection`](#ciconfiggroupconnection) | Groups of jobs for the stage. | -| `name` | [`String`](#string) | Name of the stage. | +#### Fields -### `CiConfigStageConnection` - -The connection type for CiConfigStage. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[CiConfigStageEdge]`](#ciconfigstageedge) | A list of edges. | -| `nodes` | [`[CiConfigStage]`](#ciconfigstage) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `CiConfigStageEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`CiConfigStage`](#ciconfigstage) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `groups` | [`CiConfigGroupConnection`](#ciconfiggroupconnection) | Groups of jobs for the stage. | +| `name` | [`String`](#string) | Name of the stage. | ### `CiGroup` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `detailedStatus` | [`DetailedStatus`](#detailedstatus) | Detailed status of the group. | -| `jobs` | [`CiJobConnection`](#cijobconnection) | Jobs in group. | -| `name` | [`String`](#string) | Name of the job group. | -| `size` | [`Int`](#int) | Size of the group. | +#### Fields -### `CiGroupConnection` - -The connection type for CiGroup. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[CiGroupEdge]`](#cigroupedge) | A list of edges. | -| `nodes` | [`[CiGroup]`](#cigroup) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `CiGroupEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`CiGroup`](#cigroup) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `detailedStatus` | [`DetailedStatus`](#detailedstatus) | Detailed status of the group. | +| `jobs` | [`CiJobConnection`](#cijobconnection) | Jobs in group. | +| `name` | [`String`](#string) | Name of the job group. | +| `size` | [`Int`](#int) | Size of the group. | ### `CiJob` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `active` | [`Boolean!`](#boolean) | Indicates the job is active. | -| `allowFailure` | [`Boolean!`](#boolean) | Whether this job is allowed to fail. | -| `artifacts` | [`CiJobArtifactConnection`](#cijobartifactconnection) | Artifacts generated by the job. | -| `cancelable` | [`Boolean!`](#boolean) | Indicates the job can be canceled. | -| `commitPath` | [`String`](#string) | Path to the commit that triggered the job. | -| `coverage` | [`Float`](#float) | Coverage level of the job. | -| `createdAt` | [`Time!`](#time) | When the job was created. | -| `detailedStatus` | [`DetailedStatus`](#detailedstatus) | Detailed status of the job. | -| `duration` | [`Int`](#int) | Duration of the job in seconds. | -| `finishedAt` | [`Time`](#time) | When a job has finished running. | -| `id` | [`JobID`](#jobid) | ID of the job. | -| `name` | [`String`](#string) | Name of the job. | -| `needs` | [`CiBuildNeedConnection`](#cibuildneedconnection) | References to builds that must complete before the jobs run. | -| `pipeline` | [`Pipeline`](#pipeline) | Pipeline the job belongs to. | -| `playable` | [`Boolean!`](#boolean) | Indicates the job can be played. | -| `queuedAt` | [`Time`](#time) | When the job was enqueued and marked as pending. | -| `refName` | [`String`](#string) | Ref name of the job. | -| `refPath` | [`String`](#string) | Path to the ref. | -| `retryable` | [`Boolean!`](#boolean) | Indicates the job can be retried. | -| `scheduledAt` | [`Time`](#time) | Schedule for the build. | -| `schedulingType` | [`String`](#string) | Type of pipeline scheduling. Value is `dag` if the pipeline uses the `needs` keyword, and `stage` otherwise. | -| `shortSha` | [`String!`](#string) | Short SHA1 ID of the commit. | -| `stage` | [`CiStage`](#cistage) | Stage of the job. | -| `startedAt` | [`Time`](#time) | When the job was started. | -| `status` | [`CiJobStatus`](#cijobstatus) | Status of the job. | -| `tags` | [`[String!]`](#string) | Tags for the current job. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `active` | [`Boolean!`](#boolean) | Indicates the job is active. | +| `allowFailure` | [`Boolean!`](#boolean) | Whether this job is allowed to fail. | +| `artifacts` | [`CiJobArtifactConnection`](#cijobartifactconnection) | Artifacts generated by the job. | +| `cancelable` | [`Boolean!`](#boolean) | Indicates the job can be canceled. | +| `commitPath` | [`String`](#string) | Path to the commit that triggered the job. | +| `coverage` | [`Float`](#float) | Coverage level of the job. | +| `createdAt` | [`Time!`](#time) | When the job was created. | +| `detailedStatus` | [`DetailedStatus`](#detailedstatus) | Detailed status of the job. | +| `duration` | [`Int`](#int) | Duration of the job in seconds. | +| `finishedAt` | [`Time`](#time) | When a job has finished running. | +| `id` | [`JobID`](#jobid) | ID of the job. | +| `name` | [`String`](#string) | Name of the job. | +| `needs` | [`CiBuildNeedConnection`](#cibuildneedconnection) | References to builds that must complete before the jobs run. | +| `pipeline` | [`Pipeline`](#pipeline) | Pipeline the job belongs to. | +| `playable` | [`Boolean!`](#boolean) | Indicates the job can be played. | +| `queuedAt` | [`Time`](#time) | When the job was enqueued and marked as pending. | +| `refName` | [`String`](#string) | Ref name of the job. | +| `refPath` | [`String`](#string) | Path to the ref. | +| `retryable` | [`Boolean!`](#boolean) | Indicates the job can be retried. | +| `scheduledAt` | [`Time`](#time) | Schedule for the build. | +| `schedulingType` | [`String`](#string) | Type of pipeline scheduling. Value is `dag` if the pipeline uses the `needs` keyword, and `stage` otherwise. | +| `shortSha` | [`String!`](#string) | Short SHA1 ID of the commit. | +| `stage` | [`CiStage`](#cistage) | Stage of the job. | +| `startedAt` | [`Time`](#time) | When the job was started. | +| `status` | [`CiJobStatus`](#cijobstatus) | Status of the job. | +| `tags` | [`[String!]`](#string) | Tags for the current job. | ### `CiJobArtifact` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `downloadPath` | [`String`](#string) | URL for downloading the artifact's file. | -| `fileType` | [`JobArtifactFileType`](#jobartifactfiletype) | File type of the artifact. | +#### Fields -### `CiJobArtifactConnection` - -The connection type for CiJobArtifact. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[CiJobArtifactEdge]`](#cijobartifactedge) | A list of edges. | -| `nodes` | [`[CiJobArtifact]`](#cijobartifact) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `CiJobArtifactEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`CiJobArtifact`](#cijobartifact) | The item at the end of the edge. | - -### `CiJobConnection` - -The connection type for CiJob. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `count` | [`Int!`](#int) | Total count of collection. | -| `edges` | [`[CiJobEdge]`](#cijobedge) | A list of edges. | -| `nodes` | [`[CiJob]`](#cijob) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `CiJobEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`CiJob`](#cijob) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `downloadPath` | [`String`](#string) | URL for downloading the artifact's file. | +| `fileType` | [`JobArtifactFileType`](#jobartifactfiletype) | File type of the artifact. | ### `CiStage` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `detailedStatus` | [`DetailedStatus`](#detailedstatus) | Detailed status of the stage. | -| `groups` | [`CiGroupConnection`](#cigroupconnection) | Group of jobs for the stage. | -| `jobs` | [`CiJobConnection`](#cijobconnection) | Jobs for the stage. | -| `name` | [`String`](#string) | Name of the stage. | +#### Fields -### `CiStageConnection` - -The connection type for CiStage. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[CiStageEdge]`](#cistageedge) | A list of edges. | -| `nodes` | [`[CiStage]`](#cistage) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `CiStageEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`CiStage`](#cistage) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `detailedStatus` | [`DetailedStatus`](#detailedstatus) | Detailed status of the stage. | +| `groups` | [`CiGroupConnection`](#cigroupconnection) | Group of jobs for the stage. | +| `jobs` | [`CiJobConnection`](#cijobconnection) | Jobs for the stage. | +| `name` | [`String`](#string) | Name of the stage. | ### `ClusterAgent` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `createdAt` | [`Time`](#time) | Timestamp the cluster agent was created. | -| `createdByUser` | [`User`](#user) | User object, containing information about the person who created the agent. | -| `id` | [`ID!`](#id) | ID of the cluster agent. | -| `name` | [`String`](#string) | Name of the cluster agent. | -| `project` | [`Project`](#project) | The project this cluster agent is associated with. | -| `tokens` | [`ClusterAgentTokenConnection`](#clusteragenttokenconnection) | Tokens associated with the cluster agent. | -| `updatedAt` | [`Time`](#time) | Timestamp the cluster agent was updated. | -| `webPath` | [`String`](#string) | Web path of the cluster agent. | +#### Fields -### `ClusterAgentConnection` - -The connection type for ClusterAgent. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `count` | [`Int!`](#int) | Total count of collection. | -| `edges` | [`[ClusterAgentEdge]`](#clusteragentedge) | A list of edges. | -| `nodes` | [`[ClusterAgent]`](#clusteragent) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `ClusterAgentDeletePayload` - -Autogenerated return type of ClusterAgentDelete. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `ClusterAgentEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`ClusterAgent`](#clusteragent) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `createdAt` | [`Time`](#time) | Timestamp the cluster agent was created. | +| `createdByUser` | [`User`](#user) | User object, containing information about the person who created the agent. | +| `id` | [`ID!`](#id) | ID of the cluster agent. | +| `name` | [`String`](#string) | Name of the cluster agent. | +| `project` | [`Project`](#project) | The project this cluster agent is associated with. | +| `tokens` | [`ClusterAgentTokenConnection`](#clusteragenttokenconnection) | Tokens associated with the cluster agent. | +| `updatedAt` | [`Time`](#time) | Timestamp the cluster agent was updated. | +| `webPath` | [`String`](#string) | Web path of the cluster agent. | ### `ClusterAgentToken` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clusterAgent` | [`ClusterAgent`](#clusteragent) | Cluster agent this token is associated with. | -| `createdAt` | [`Time`](#time) | Timestamp the token was created. | -| `createdByUser` | [`User`](#user) | The user who created the token. | -| `description` | [`String`](#string) | Description of the token. | -| `id` | [`ClustersAgentTokenID!`](#clustersagenttokenid) | Global ID of the token. | -| `lastUsedAt` | [`Time`](#time) | Timestamp the token was last used. | -| `name` | [`String`](#string) | Name given to the token. | +#### Fields -### `ClusterAgentTokenConnection` - -The connection type for ClusterAgentToken. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `count` | [`Int!`](#int) | Total count of collection. | -| `edges` | [`[ClusterAgentTokenEdge]`](#clusteragenttokenedge) | A list of edges. | -| `nodes` | [`[ClusterAgentToken]`](#clusteragenttoken) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `ClusterAgentTokenCreatePayload` - -Autogenerated return type of ClusterAgentTokenCreate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `secret` | [`String`](#string) | Token secret value. Make sure you save it - you won't be able to access it again. | -| `token` | [`ClusterAgentToken`](#clusteragenttoken) | Token created after mutation. | - -### `ClusterAgentTokenDeletePayload` - -Autogenerated return type of ClusterAgentTokenDelete. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `ClusterAgentTokenEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`ClusterAgentToken`](#clusteragenttoken) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clusterAgent` | [`ClusterAgent`](#clusteragent) | Cluster agent this token is associated with. | +| `createdAt` | [`Time`](#time) | Timestamp the token was created. | +| `createdByUser` | [`User`](#user) | The user who created the token. | +| `description` | [`String`](#string) | Description of the token. | +| `id` | [`ClustersAgentTokenID!`](#clustersagenttokenid) | Global ID of the token. | +| `lastUsedAt` | [`Time`](#time) | Timestamp the token was last used. | +| `name` | [`String`](#string) | Name given to the token. | ### `CodeCoverageActivity` Represents the code coverage activity for a group. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `averageCoverage` | [`Float`](#float) | Average percentage of the different code coverage results available for the group. | -| `coverageCount` | [`Int`](#int) | Number of different code coverage results available for the group. | -| `date` | [`Date!`](#date) | Date when the code coverage was created. | -| `projectCount` | [`Int`](#int) | Number of projects with code coverage results for the group. | +#### Fields -### `CodeCoverageActivityConnection` - -The connection type for CodeCoverageActivity. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[CodeCoverageActivityEdge]`](#codecoverageactivityedge) | A list of edges. | -| `nodes` | [`[CodeCoverageActivity]`](#codecoverageactivity) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `CodeCoverageActivityEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`CodeCoverageActivity`](#codecoverageactivity) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `averageCoverage` | [`Float`](#float) | Average percentage of the different code coverage results available for the group. | +| `coverageCount` | [`Int`](#int) | Number of different code coverage results available for the group. | +| `date` | [`Date!`](#date) | Date when the code coverage was created. | +| `projectCount` | [`Int`](#int) | Number of projects with code coverage results for the group. | ### `CodeCoverageSummary` Represents the code coverage summary for a project. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `averageCoverage` | [`Float`](#float) | Average percentage of the different code coverage results available for the project. | -| `coverageCount` | [`Int`](#int) | Number of different code coverage results available. | -| `lastUpdatedOn` | [`Date`](#date) | Latest date when the code coverage was created for the project. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `averageCoverage` | [`Float`](#float) | Average percentage of the different code coverage results available for the project. | +| `coverageCount` | [`Int`](#int) | Number of different code coverage results available. | +| `lastUpdatedOn` | [`Date`](#date) | Latest date when the code coverage was created for the project. | ### `Commit` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `author` | [`User`](#user) | Author of the commit. | -| `authorGravatar` | [`String`](#string) | Commit authors gravatar. | -| `authorName` | [`String`](#string) | Commit authors name. | -| `authoredDate` | [`Time`](#time) | Timestamp of when the commit was authored. | -| `description` | [`String`](#string) | Description of the commit message. | -| `descriptionHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `description`. | -| `id` | [`ID!`](#id) | ID (global ID) of the commit. | -| `message` | [`String`](#string) | Raw commit message. | -| `pipelines` | [`PipelineConnection`](#pipelineconnection) | Pipelines of the commit ordered latest first. | -| `sha` | [`String!`](#string) | SHA1 ID of the commit. | -| `shortId` | [`String!`](#string) | Short SHA1 ID of the commit. | -| `signatureHtml` | [`String`](#string) | Rendered HTML of the commit signature. | -| `title` | [`String`](#string) | Title of the commit message. | -| `titleHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `title`. | -| `webPath` | [`String!`](#string) | Web path of the commit. | -| `webUrl` | [`String!`](#string) | Web URL of the commit. | +#### Fields -### `CommitConnection` +| Name | Type | Description | +| ---- | ---- | ----------- | +| `author` | [`User`](#user) | Author of the commit. | +| `authorGravatar` | [`String`](#string) | Commit authors gravatar. | +| `authorName` | [`String`](#string) | Commit authors name. | +| `authoredDate` | [`Time`](#time) | Timestamp of when the commit was authored. | +| `description` | [`String`](#string) | Description of the commit message. | +| `descriptionHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `description`. | +| `id` | [`ID!`](#id) | ID (global ID) of the commit. | +| `message` | [`String`](#string) | Raw commit message. | +| `sha` | [`String!`](#string) | SHA1 ID of the commit. | +| `shortId` | [`String!`](#string) | Short SHA1 ID of the commit. | +| `signatureHtml` | [`String`](#string) | Rendered HTML of the commit signature. | +| `title` | [`String`](#string) | Title of the commit message. | +| `titleHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `title`. | +| `webPath` | [`String!`](#string) | Web path of the commit. | +| `webUrl` | [`String!`](#string) | Web URL of the commit. | -The connection type for Commit. +#### Fields with arguments -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[CommitEdge]`](#commitedge) | A list of edges. | -| `nodes` | [`[Commit]`](#commit) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | +##### `Commit.pipelines` -### `CommitCreatePayload` +Pipelines of the commit ordered latest first. -Autogenerated return type of CommitCreate. +Returns [`PipelineConnection`](#pipelineconnection). -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `commit` | [`Commit`](#commit) | The commit after mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. -### `CommitEdge` +###### Arguments -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`Commit`](#commit) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `ref` | [`String`](#string) | Filter pipelines by the ref they are run for. | +| `sha` | [`String`](#string) | Filter pipelines by the sha of the commit they are run for. | +| `status` | [`PipelineStatusEnum`](#pipelinestatusenum) | Filter pipelines by their status. | ### `ComplianceFramework` Represents a ComplianceFramework associated with a Project. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `color` | [`String!`](#string) | Hexadecimal representation of compliance framework's label color. | -| `description` | [`String!`](#string) | Description of the compliance framework. | -| `id` | [`ID!`](#id) | Compliance framework ID. | -| `name` | [`String!`](#string) | Name of the compliance framework. | -| `pipelineConfigurationFullPath` | [`String`](#string) | Full path of the compliance pipeline configuration stored in a project repository, such as `.gitlab/.compliance-gitlab-ci.yml@compliance/hipaa` **(ULTIMATE)**. | +#### Fields -### `ComplianceFrameworkConnection` - -The connection type for ComplianceFramework. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[ComplianceFrameworkEdge]`](#complianceframeworkedge) | A list of edges. | -| `nodes` | [`[ComplianceFramework]`](#complianceframework) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `ComplianceFrameworkEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`ComplianceFramework`](#complianceframework) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `color` | [`String!`](#string) | Hexadecimal representation of compliance framework's label color. | +| `description` | [`String!`](#string) | Description of the compliance framework. | +| `id` | [`ID!`](#id) | Compliance framework ID. | +| `name` | [`String!`](#string) | Name of the compliance framework. | +| `pipelineConfigurationFullPath` | [`String`](#string) | Full path of the compliance pipeline configuration stored in a project repository, such as `.gitlab/.compliance-gitlab-ci.yml@compliance/hipaa` **(ULTIMATE)**. | ### `ComposerMetadata` Composer metadata. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `composerJson` | [`PackageComposerJsonType!`](#packagecomposerjsontype) | Data of the Composer JSON file. | -| `targetSha` | [`String!`](#string) | Target SHA of the package. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `composerJson` | [`PackageComposerJsonType!`](#packagecomposerjsontype) | Data of the Composer JSON file. | +| `targetSha` | [`String!`](#string) | Target SHA of the package. | ### `ConanFileMetadata` Conan file metadata. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `conanFileType` | [`ConanMetadatumFileTypeEnum!`](#conanmetadatumfiletypeenum) | Type of the Conan file. | -| `conanPackageReference` | [`String`](#string) | Reference of the Conan package. | -| `createdAt` | [`Time!`](#time) | Date of creation. | -| `id` | [`PackagesConanFileMetadatumID!`](#packagesconanfilemetadatumid) | ID of the metadatum. | -| `packageRevision` | [`String`](#string) | Revision of the package. | -| `recipeRevision` | [`String!`](#string) | Revision of the Conan recipe. | -| `updatedAt` | [`Time!`](#time) | Date of most recent update. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `conanFileType` | [`ConanMetadatumFileTypeEnum!`](#conanmetadatumfiletypeenum) | Type of the Conan file. | +| `conanPackageReference` | [`String`](#string) | Reference of the Conan package. | +| `createdAt` | [`Time!`](#time) | Date of creation. | +| `id` | [`PackagesConanFileMetadatumID!`](#packagesconanfilemetadatumid) | ID of the metadatum. | +| `packageRevision` | [`String`](#string) | Revision of the package. | +| `recipeRevision` | [`String!`](#string) | Revision of the Conan recipe. | +| `updatedAt` | [`Time!`](#time) | Date of most recent update. | ### `ConanMetadata` Conan metadata. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `createdAt` | [`Time!`](#time) | Date of creation. | -| `id` | [`PackagesConanMetadatumID!`](#packagesconanmetadatumid) | ID of the metadatum. | -| `packageChannel` | [`String!`](#string) | Channel of the Conan package. | -| `packageUsername` | [`String!`](#string) | Username of the Conan package. | -| `recipe` | [`String!`](#string) | Recipe of the Conan package. | -| `recipePath` | [`String!`](#string) | Recipe path of the Conan package. | -| `updatedAt` | [`Time!`](#time) | Date of most recent update. | +#### Fields -### `ConfigureSastPayload` - -Autogenerated return type of ConfigureSast. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `status` | [`String!`](#string) | Status of creating the commit for the supplied SAST CI configuration. | -| `successPath` | [`String`](#string) | Redirect path to use when the response is successful. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `createdAt` | [`Time!`](#time) | Date of creation. | +| `id` | [`PackagesConanMetadatumID!`](#packagesconanmetadatumid) | ID of the metadatum. | +| `packageChannel` | [`String!`](#string) | Channel of the Conan package. | +| `packageUsername` | [`String!`](#string) | Username of the Conan package. | +| `recipe` | [`String!`](#string) | Recipe of the Conan package. | +| `recipePath` | [`String!`](#string) | Recipe path of the Conan package. | +| `updatedAt` | [`Time!`](#time) | Date of most recent update. | ### `ContainerExpirationPolicy` A tag expiration policy designed to keep only the images that matter most. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cadence` | [`ContainerExpirationPolicyCadenceEnum!`](#containerexpirationpolicycadenceenum) | This container expiration policy schedule. | -| `createdAt` | [`Time!`](#time) | Timestamp of when the container expiration policy was created. | -| `enabled` | [`Boolean!`](#boolean) | Indicates whether this container expiration policy is enabled. | -| `keepN` | [`ContainerExpirationPolicyKeepEnum`](#containerexpirationpolicykeepenum) | Number of tags to retain. | -| `nameRegex` | [`UntrustedRegexp`](#untrustedregexp) | Tags with names matching this regex pattern will expire. | -| `nameRegexKeep` | [`UntrustedRegexp`](#untrustedregexp) | Tags with names matching this regex pattern will be preserved. | -| `nextRunAt` | [`Time`](#time) | Next time that this container expiration policy will get executed. | -| `olderThan` | [`ContainerExpirationPolicyOlderThanEnum`](#containerexpirationpolicyolderthanenum) | Tags older that this will expire. | -| `updatedAt` | [`Time!`](#time) | Timestamp of when the container expiration policy was updated. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `cadence` | [`ContainerExpirationPolicyCadenceEnum!`](#containerexpirationpolicycadenceenum) | This container expiration policy schedule. | +| `createdAt` | [`Time!`](#time) | Timestamp of when the container expiration policy was created. | +| `enabled` | [`Boolean!`](#boolean) | Indicates whether this container expiration policy is enabled. | +| `keepN` | [`ContainerExpirationPolicyKeepEnum`](#containerexpirationpolicykeepenum) | Number of tags to retain. | +| `nameRegex` | [`UntrustedRegexp`](#untrustedregexp) | Tags with names matching this regex pattern will expire. | +| `nameRegexKeep` | [`UntrustedRegexp`](#untrustedregexp) | Tags with names matching this regex pattern will be preserved. | +| `nextRunAt` | [`Time`](#time) | Next time that this container expiration policy will get executed. | +| `olderThan` | [`ContainerExpirationPolicyOlderThanEnum`](#containerexpirationpolicyolderthanenum) | Tags older that this will expire. | +| `updatedAt` | [`Time!`](#time) | Timestamp of when the container expiration policy was updated. | ### `ContainerRepository` A container repository. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `canDelete` | [`Boolean!`](#boolean) | Can the current user delete the container repository. | -| `createdAt` | [`Time!`](#time) | Timestamp when the container repository was created. | -| `expirationPolicyCleanupStatus` | [`ContainerRepositoryCleanupStatus`](#containerrepositorycleanupstatus) | The tags cleanup status for the container repository. | -| `expirationPolicyStartedAt` | [`Time`](#time) | Timestamp when the cleanup done by the expiration policy was started on the container repository. | -| `id` | [`ID!`](#id) | ID of the container repository. | -| `location` | [`String!`](#string) | URL of the container repository. | -| `name` | [`String!`](#string) | Name of the container repository. | -| `path` | [`String!`](#string) | Path of the container repository. | -| `project` | [`Project!`](#project) | Project of the container registry. | -| `status` | [`ContainerRepositoryStatus`](#containerrepositorystatus) | Status of the container repository. | -| `tagsCount` | [`Int!`](#int) | Number of tags associated with this image. | -| `updatedAt` | [`Time!`](#time) | Timestamp when the container repository was updated. | +#### Fields -### `ContainerRepositoryConnection` - -The connection type for ContainerRepository. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[ContainerRepositoryEdge]`](#containerrepositoryedge) | A list of edges. | -| `nodes` | [`[ContainerRepository]`](#containerrepository) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `canDelete` | [`Boolean!`](#boolean) | Can the current user delete the container repository. | +| `createdAt` | [`Time!`](#time) | Timestamp when the container repository was created. | +| `expirationPolicyCleanupStatus` | [`ContainerRepositoryCleanupStatus`](#containerrepositorycleanupstatus) | The tags cleanup status for the container repository. | +| `expirationPolicyStartedAt` | [`Time`](#time) | Timestamp when the cleanup done by the expiration policy was started on the container repository. | +| `id` | [`ID!`](#id) | ID of the container repository. | +| `location` | [`String!`](#string) | URL of the container repository. | +| `name` | [`String!`](#string) | Name of the container repository. | +| `path` | [`String!`](#string) | Path of the container repository. | +| `project` | [`Project!`](#project) | Project of the container registry. | +| `status` | [`ContainerRepositoryStatus`](#containerrepositorystatus) | Status of the container repository. | +| `tagsCount` | [`Int!`](#int) | Number of tags associated with this image. | +| `updatedAt` | [`Time!`](#time) | Timestamp when the container repository was updated. | ### `ContainerRepositoryDetails` Details of a container repository. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `canDelete` | [`Boolean!`](#boolean) | Can the current user delete the container repository. | -| `createdAt` | [`Time!`](#time) | Timestamp when the container repository was created. | -| `expirationPolicyCleanupStatus` | [`ContainerRepositoryCleanupStatus`](#containerrepositorycleanupstatus) | The tags cleanup status for the container repository. | -| `expirationPolicyStartedAt` | [`Time`](#time) | Timestamp when the cleanup done by the expiration policy was started on the container repository. | -| `id` | [`ID!`](#id) | ID of the container repository. | -| `location` | [`String!`](#string) | URL of the container repository. | -| `name` | [`String!`](#string) | Name of the container repository. | -| `path` | [`String!`](#string) | Path of the container repository. | -| `project` | [`Project!`](#project) | Project of the container registry. | -| `status` | [`ContainerRepositoryStatus`](#containerrepositorystatus) | Status of the container repository. | -| `tags` | [`ContainerRepositoryTagConnection`](#containerrepositorytagconnection) | Tags of the container repository. | -| `tagsCount` | [`Int!`](#int) | Number of tags associated with this image. | -| `updatedAt` | [`Time!`](#time) | Timestamp when the container repository was updated. | +#### Fields -### `ContainerRepositoryEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`ContainerRepository`](#containerrepository) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `canDelete` | [`Boolean!`](#boolean) | Can the current user delete the container repository. | +| `createdAt` | [`Time!`](#time) | Timestamp when the container repository was created. | +| `expirationPolicyCleanupStatus` | [`ContainerRepositoryCleanupStatus`](#containerrepositorycleanupstatus) | The tags cleanup status for the container repository. | +| `expirationPolicyStartedAt` | [`Time`](#time) | Timestamp when the cleanup done by the expiration policy was started on the container repository. | +| `id` | [`ID!`](#id) | ID of the container repository. | +| `location` | [`String!`](#string) | URL of the container repository. | +| `name` | [`String!`](#string) | Name of the container repository. | +| `path` | [`String!`](#string) | Path of the container repository. | +| `project` | [`Project!`](#project) | Project of the container registry. | +| `status` | [`ContainerRepositoryStatus`](#containerrepositorystatus) | Status of the container repository. | +| `tags` | [`ContainerRepositoryTagConnection`](#containerrepositorytagconnection) | Tags of the container repository. | +| `tagsCount` | [`Int!`](#int) | Number of tags associated with this image. | +| `updatedAt` | [`Time!`](#time) | Timestamp when the container repository was updated. | ### `ContainerRepositoryTag` A tag from a container repository. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `canDelete` | [`Boolean!`](#boolean) | Can the current user delete this tag. | -| `createdAt` | [`Time`](#time) | Timestamp when the tag was created. | -| `digest` | [`String`](#string) | Digest of the tag. | -| `location` | [`String!`](#string) | URL of the tag. | -| `name` | [`String!`](#string) | Name of the tag. | -| `path` | [`String!`](#string) | Path of the tag. | -| `revision` | [`String`](#string) | Revision of the tag. | -| `shortRevision` | [`String`](#string) | Short revision of the tag. | -| `totalSize` | [`BigInt`](#bigint) | The size of the tag. | +#### Fields -### `ContainerRepositoryTagConnection` - -The connection type for ContainerRepositoryTag. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[ContainerRepositoryTagEdge]`](#containerrepositorytagedge) | A list of edges. | -| `nodes` | [`[ContainerRepositoryTag]`](#containerrepositorytag) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `ContainerRepositoryTagEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`ContainerRepositoryTag`](#containerrepositorytag) | The item at the end of the edge. | - -### `CreateAlertIssuePayload` - -Autogenerated return type of CreateAlertIssue. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `alert` | [`AlertManagementAlert`](#alertmanagementalert) | The alert after mutation. | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `issue` | [`Issue`](#issue) | The issue created after mutation. | -| `todo` | [`Todo`](#todo) | The to-do item after mutation. | - -### `CreateAnnotationPayload` - -Autogenerated return type of CreateAnnotation. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `annotation` | [`MetricsDashboardAnnotation`](#metricsdashboardannotation) | The created annotation. | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `CreateBoardPayload` - -Autogenerated return type of CreateBoard. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `board` | [`Board`](#board) | The board after mutation. | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `CreateBranchPayload` - -Autogenerated return type of CreateBranch. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `branch` | [`Branch`](#branch) | Branch after mutation. | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `CreateClusterAgentPayload` - -Autogenerated return type of CreateClusterAgent. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `clusterAgent` | [`ClusterAgent`](#clusteragent) | Cluster agent created after mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `CreateComplianceFrameworkPayload` - -Autogenerated return type of CreateComplianceFramework. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `framework` | [`ComplianceFramework`](#complianceframework) | The created compliance framework. | - -### `CreateCustomEmojiPayload` - -Autogenerated return type of CreateCustomEmoji. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `customEmoji` | [`CustomEmoji`](#customemoji) | The new custom emoji. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `CreateDevopsAdoptionSegmentPayload` - -Autogenerated return type of CreateDevopsAdoptionSegment. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `segment` | [`DevopsAdoptionSegment`](#devopsadoptionsegment) | The segment after mutation. | - -### `CreateDiffNotePayload` - -Autogenerated return type of CreateDiffNote. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `note` | [`Note`](#note) | The note after mutation. | - -### `CreateEpicPayload` - -Autogenerated return type of CreateEpic. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `epic` | [`Epic`](#epic) | The created epic. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `CreateImageDiffNotePayload` - -Autogenerated return type of CreateImageDiffNote. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `note` | [`Note`](#note) | The note after mutation. | - -### `CreateIssuePayload` - -Autogenerated return type of CreateIssue. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `issue` | [`Issue`](#issue) | The issue after mutation. | - -### `CreateIterationPayload` - -Autogenerated return type of CreateIteration. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `iteration` | [`Iteration`](#iteration) | The created iteration. | - -### `CreateNotePayload` - -Autogenerated return type of CreateNote. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `note` | [`Note`](#note) | The note after mutation. | - -### `CreateRequirementPayload` - -Autogenerated return type of CreateRequirement. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `requirement` | [`Requirement`](#requirement) | Requirement after mutation. | - -### `CreateSnippetPayload` - -Autogenerated return type of CreateSnippet. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `captchaSiteKey` **{warning-solid}** | [`String`](#string) | **Deprecated** in 13.11. Use spam protection with HTTP headers instead. | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `needsCaptchaResponse` **{warning-solid}** | [`Boolean`](#boolean) | **Deprecated** in 13.11. Use spam protection with HTTP headers instead. | -| `snippet` | [`Snippet`](#snippet) | The snippet after mutation. | -| `spam` **{warning-solid}** | [`Boolean`](#boolean) | **Deprecated** in 13.11. Use spam protection with HTTP headers instead. | -| `spamLogId` **{warning-solid}** | [`Int`](#int) | **Deprecated** in 13.11. Use spam protection with HTTP headers instead. | - -### `CreateTestCasePayload` - -Autogenerated return type of CreateTestCase. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `testCase` | [`Issue`](#issue) | The test case created. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `canDelete` | [`Boolean!`](#boolean) | Can the current user delete this tag. | +| `createdAt` | [`Time`](#time) | Timestamp when the tag was created. | +| `digest` | [`String`](#string) | Digest of the tag. | +| `location` | [`String!`](#string) | URL of the tag. | +| `name` | [`String!`](#string) | Name of the tag. | +| `path` | [`String!`](#string) | Path of the tag. | +| `revision` | [`String`](#string) | Revision of the tag. | +| `shortRevision` | [`String`](#string) | Short revision of the tag. | +| `totalSize` | [`BigInt`](#bigint) | The size of the tag. | ### `CurrentLicense` Represents the current license. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `activatedAt` | [`Date`](#date) | Date when the license was activated. | -| `billableUsersCount` | [`Int`](#int) | Number of billable users on the system. | -| `company` | [`String`](#string) | Company of the licensee. | -| `email` | [`String`](#string) | Email of the licensee. | -| `expiresAt` | [`Date`](#date) | Date when the license expires. | -| `id` | [`ID!`](#id) | ID of the license. | -| `lastSync` | [`Time`](#time) | Date when the license was last synced. | -| `maximumUserCount` | [`Int`](#int) | Highest number of billable users on the system during the term of the current license. | -| `name` | [`String`](#string) | Name of the licensee. | -| `plan` | [`String!`](#string) | Name of the subscription plan. | -| `startsAt` | [`Date`](#date) | Date when the license started. | -| `type` | [`String!`](#string) | Type of the license. | -| `usersInLicenseCount` | [`Int`](#int) | Number of paid users in the license. | -| `usersOverLicenseCount` | [`Int`](#int) | Number of users over the paid users in the license. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `activatedAt` | [`Date`](#date) | Date when the license was activated. | +| `billableUsersCount` | [`Int`](#int) | Number of billable users on the system. | +| `company` | [`String`](#string) | Company of the licensee. | +| `email` | [`String`](#string) | Email of the licensee. | +| `expiresAt` | [`Date`](#date) | Date when the license expires. | +| `id` | [`ID!`](#id) | ID of the license. | +| `lastSync` | [`Time`](#time) | Date when the license was last synced. | +| `maximumUserCount` | [`Int`](#int) | Highest number of billable users on the system during the term of the current license. | +| `name` | [`String`](#string) | Name of the licensee. | +| `plan` | [`String!`](#string) | Name of the subscription plan. | +| `startsAt` | [`Date`](#date) | Date when the license started. | +| `type` | [`String!`](#string) | Type of the license. | +| `usersInLicenseCount` | [`Int`](#int) | Number of paid users in the license. | +| `usersOverLicenseCount` | [`Int`](#int) | Number of users over the paid users in the license. | ### `CustomEmoji` A custom emoji uploaded by user. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `external` | [`Boolean!`](#boolean) | Whether the emoji is an external link. | -| `id` | [`CustomEmojiID!`](#customemojiid) | The ID of the emoji. | -| `name` | [`String!`](#string) | The name of the emoji. | -| `url` | [`String!`](#string) | The link to file of the emoji. | +#### Fields -### `CustomEmojiConnection` - -The connection type for CustomEmoji. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[CustomEmojiEdge]`](#customemojiedge) | A list of edges. | -| `nodes` | [`[CustomEmoji]`](#customemoji) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `CustomEmojiEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`CustomEmoji`](#customemoji) | The item at the end of the edge. | - -### `DastOnDemandScanCreatePayload` - -Autogenerated return type of DastOnDemandScanCreate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `pipelineUrl` | [`String`](#string) | URL of the pipeline that was created. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `external` | [`Boolean!`](#boolean) | Whether the emoji is an external link. | +| `id` | [`CustomEmojiID!`](#customemojiid) | The ID of the emoji. | +| `name` | [`String!`](#string) | The name of the emoji. | +| `url` | [`String!`](#string) | The link to file of the emoji. | ### `DastProfile` Represents a DAST Profile. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `branch` | [`DastProfileBranch`](#dastprofilebranch) | The associated branch. | -| `dastScannerProfile` | [`DastScannerProfile`](#dastscannerprofile) | The associated scanner profile. | -| `dastSiteProfile` | [`DastSiteProfile`](#dastsiteprofile) | The associated site profile. | -| `description` | [`String`](#string) | The description of the scan. | -| `editPath` | [`String`](#string) | Relative web path to the edit page of a profile. | -| `id` | [`DastProfileID!`](#dastprofileid) | ID of the profile. | -| `name` | [`String`](#string) | The name of the profile. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `branch` | [`DastProfileBranch`](#dastprofilebranch) | The associated branch. | +| `dastScannerProfile` | [`DastScannerProfile`](#dastscannerprofile) | The associated scanner profile. | +| `dastSiteProfile` | [`DastSiteProfile`](#dastsiteprofile) | The associated site profile. | +| `description` | [`String`](#string) | The description of the scan. | +| `editPath` | [`String`](#string) | Relative web path to the edit page of a profile. | +| `id` | [`DastProfileID!`](#dastprofileid) | ID of the profile. | +| `name` | [`String`](#string) | The name of the profile. | ### `DastProfileBranch` Represents a DAST Profile Branch. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `exists` | [`Boolean`](#boolean) | Indicates whether or not the branch exists. | -| `name` | [`String`](#string) | The name of the branch. | +#### Fields -### `DastProfileConnection` - -The connection type for DastProfile. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[DastProfileEdge]`](#dastprofileedge) | A list of edges. | -| `nodes` | [`[DastProfile]`](#dastprofile) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `DastProfileCreatePayload` - -Autogenerated return type of DastProfileCreate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `dastProfile` | [`DastProfile`](#dastprofile) | The created profile. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `pipelineUrl` | [`String`](#string) | The URL of the pipeline that was created. Requires `runAfterCreate` to be set to `true`. | - -### `DastProfileDeletePayload` - -Autogenerated return type of DastProfileDelete. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `DastProfileEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`DastProfile`](#dastprofile) | The item at the end of the edge. | - -### `DastProfileRunPayload` - -Autogenerated return type of DastProfileRun. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `pipelineUrl` | [`String`](#string) | URL of the pipeline that was created. | - -### `DastProfileUpdatePayload` - -Autogenerated return type of DastProfileUpdate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `dastProfile` | [`DastProfile`](#dastprofile) | The updated profile. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `pipelineUrl` | [`String`](#string) | The URL of the pipeline that was created. Requires the input argument `runAfterUpdate` to be set to `true` when calling the mutation, otherwise no pipeline will be created. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `exists` | [`Boolean`](#boolean) | Indicates whether or not the branch exists. | +| `name` | [`String`](#string) | The name of the branch. | ### `DastScannerProfile` Represents a DAST scanner profile. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `editPath` | [`String`](#string) | Relative web path to the edit page of a scanner profile. | -| `globalId` **{warning-solid}** | [`DastScannerProfileID!`](#dastscannerprofileid) | **Deprecated** in 13.6. Use `id`. | -| `id` | [`DastScannerProfileID!`](#dastscannerprofileid) | ID of the DAST scanner profile. | -| `profileName` | [`String`](#string) | Name of the DAST scanner profile. | -| `referencedInSecurityPolicies` | [`[String!]`](#string) | List of security policy names that are referencing given project. | -| `scanType` | [`DastScanTypeEnum`](#dastscantypeenum) | Indicates the type of DAST scan that will run. Either a Passive Scan or an Active Scan. | -| `showDebugMessages` | [`Boolean!`](#boolean) | Indicates if debug messages should be included in DAST console output. True to include the debug messages. | -| `spiderTimeout` | [`Int`](#int) | The maximum number of minutes allowed for the spider to traverse the site. | -| `targetTimeout` | [`Int`](#int) | The maximum number of seconds allowed for the site under test to respond to a request. | -| `useAjaxSpider` | [`Boolean!`](#boolean) | Indicates if the AJAX spider should be used to crawl the target site. True to run the AJAX spider in addition to the traditional spider, and false to run only the traditional spider. | +#### Fields -### `DastScannerProfileConnection` - -The connection type for DastScannerProfile. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[DastScannerProfileEdge]`](#dastscannerprofileedge) | A list of edges. | -| `nodes` | [`[DastScannerProfile]`](#dastscannerprofile) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `DastScannerProfileCreatePayload` - -Autogenerated return type of DastScannerProfileCreate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `globalId` **{warning-solid}** | [`DastScannerProfileID`](#dastscannerprofileid) | **Deprecated** in 13.6. Use `id`. | -| `id` | [`DastScannerProfileID`](#dastscannerprofileid) | ID of the scanner profile. | - -### `DastScannerProfileDeletePayload` - -Autogenerated return type of DastScannerProfileDelete. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `DastScannerProfileEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`DastScannerProfile`](#dastscannerprofile) | The item at the end of the edge. | - -### `DastScannerProfileUpdatePayload` - -Autogenerated return type of DastScannerProfileUpdate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `id` | [`DastScannerProfileID`](#dastscannerprofileid) | ID of the scanner profile. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `editPath` | [`String`](#string) | Relative web path to the edit page of a scanner profile. | +| `globalId` **{warning-solid}** | [`DastScannerProfileID!`](#dastscannerprofileid) | **Deprecated** in 13.6. Use `id`. | +| `id` | [`DastScannerProfileID!`](#dastscannerprofileid) | ID of the DAST scanner profile. | +| `profileName` | [`String`](#string) | Name of the DAST scanner profile. | +| `referencedInSecurityPolicies` | [`[String!]`](#string) | List of security policy names that are referencing given project. | +| `scanType` | [`DastScanTypeEnum`](#dastscantypeenum) | Indicates the type of DAST scan that will run. Either a Passive Scan or an Active Scan. | +| `showDebugMessages` | [`Boolean!`](#boolean) | Indicates if debug messages should be included in DAST console output. True to include the debug messages. | +| `spiderTimeout` | [`Int`](#int) | The maximum number of minutes allowed for the spider to traverse the site. | +| `targetTimeout` | [`Int`](#int) | The maximum number of seconds allowed for the site under test to respond to a request. | +| `useAjaxSpider` | [`Boolean!`](#boolean) | Indicates if the AJAX spider should be used to crawl the target site. True to run the AJAX spider in addition to the traditional spider, and false to run only the traditional spider. | ### `DastSiteProfile` Represents a DAST Site Profile. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `auth` | [`DastSiteProfileAuth`](#dastsiteprofileauth) | Target authentication details. Will always return `null` if `security_dast_site_profiles_additional_fields` feature flag is disabled. | -| `editPath` | [`String`](#string) | Relative web path to the edit page of a site profile. | -| `excludedUrls` | [`[String!]`](#string) | The URLs to skip during an authenticated scan. Will always return `null` if `security_dast_site_profiles_additional_fields` feature flag is disabled. | -| `id` | [`DastSiteProfileID!`](#dastsiteprofileid) | ID of the site profile. | -| `normalizedTargetUrl` | [`String`](#string) | Normalized URL of the target to be scanned. | -| `profileName` | [`String`](#string) | The name of the site profile. | -| `referencedInSecurityPolicies` | [`[String!]`](#string) | List of security policy names that are referencing given project. | -| `requestHeaders` | [`String`](#string) | Comma-separated list of request header names and values to be added to every request made by DAST. Will always return `null` if `security_dast_site_profiles_additional_fields` feature flag is disabled. | -| `targetType` | [`DastTargetTypeEnum`](#dasttargettypeenum) | The type of target to be scanned. Will always return `null` if `security_dast_site_profiles_api_option` feature flag is disabled. | -| `targetUrl` | [`String`](#string) | The URL of the target to be scanned. | -| `userPermissions` | [`DastSiteProfilePermissions!`](#dastsiteprofilepermissions) | Permissions for the current user on the resource. | -| `validationStatus` | [`DastSiteProfileValidationStatusEnum`](#dastsiteprofilevalidationstatusenum) | The current validation status of the site profile. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `auth` | [`DastSiteProfileAuth`](#dastsiteprofileauth) | Target authentication details. Will always return `null` if `security_dast_site_profiles_additional_fields` feature flag is disabled. | +| `editPath` | [`String`](#string) | Relative web path to the edit page of a site profile. | +| `excludedUrls` | [`[String!]`](#string) | The URLs to skip during an authenticated scan. Will always return `null` if `security_dast_site_profiles_additional_fields` feature flag is disabled. | +| `id` | [`DastSiteProfileID!`](#dastsiteprofileid) | ID of the site profile. | +| `normalizedTargetUrl` | [`String`](#string) | Normalized URL of the target to be scanned. | +| `profileName` | [`String`](#string) | The name of the site profile. | +| `referencedInSecurityPolicies` | [`[String!]`](#string) | List of security policy names that are referencing given project. | +| `requestHeaders` | [`String`](#string) | Comma-separated list of request header names and values to be added to every request made by DAST. Will always return `null` if `security_dast_site_profiles_additional_fields` feature flag is disabled. | +| `targetType` | [`DastTargetTypeEnum`](#dasttargettypeenum) | The type of target to be scanned. Will always return `null` if `security_dast_site_profiles_api_option` feature flag is disabled. | +| `targetUrl` | [`String`](#string) | The URL of the target to be scanned. | +| `userPermissions` | [`DastSiteProfilePermissions!`](#dastsiteprofilepermissions) | Permissions for the current user on the resource. | +| `validationStatus` | [`DastSiteProfileValidationStatusEnum`](#dastsiteprofilevalidationstatusenum) | The current validation status of the site profile. | ### `DastSiteProfileAuth` Input type for DastSiteProfile authentication. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `enabled` | [`Boolean`](#boolean) | Indicates whether authentication is enabled. | -| `password` | [`String`](#string) | Redacted password to authenticate with on the target website. | -| `passwordField` | [`String`](#string) | The name of password field at the sign-in HTML form. | -| `url` | [`String`](#string) | The URL of the page containing the sign-in HTML form on the target website. | -| `username` | [`String`](#string) | The username to authenticate with on the target website. | -| `usernameField` | [`String`](#string) | The name of username field at the sign-in HTML form. | +#### Fields -### `DastSiteProfileConnection` - -The connection type for DastSiteProfile. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[DastSiteProfileEdge]`](#dastsiteprofileedge) | A list of edges. | -| `nodes` | [`[DastSiteProfile]`](#dastsiteprofile) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `DastSiteProfileCreatePayload` - -Autogenerated return type of DastSiteProfileCreate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `id` | [`DastSiteProfileID`](#dastsiteprofileid) | ID of the site profile. | - -### `DastSiteProfileDeletePayload` - -Autogenerated return type of DastSiteProfileDelete. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `DastSiteProfileEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`DastSiteProfile`](#dastsiteprofile) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `enabled` | [`Boolean`](#boolean) | Indicates whether authentication is enabled. | +| `password` | [`String`](#string) | Redacted password to authenticate with on the target website. | +| `passwordField` | [`String`](#string) | The name of password field at the sign-in HTML form. | +| `url` | [`String`](#string) | The URL of the page containing the sign-in HTML form on the target website. | +| `username` | [`String`](#string) | The username to authenticate with on the target website. | +| `usernameField` | [`String`](#string) | The name of username field at the sign-in HTML form. | ### `DastSiteProfilePermissions` Check permissions for the current user on site profile. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `createOnDemandDastScan` | [`Boolean!`](#boolean) | Indicates the user can perform `create_on_demand_dast_scan` on this resource. | +#### Fields -### `DastSiteProfileUpdatePayload` - -Autogenerated return type of DastSiteProfileUpdate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `id` | [`DastSiteProfileID`](#dastsiteprofileid) | ID of the site profile. | - -### `DastSiteTokenCreatePayload` - -Autogenerated return type of DastSiteTokenCreate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `id` | [`DastSiteTokenID`](#dastsitetokenid) | ID of the site token. | -| `status` | [`DastSiteProfileValidationStatusEnum`](#dastsiteprofilevalidationstatusenum) | The current validation status of the target. | -| `token` | [`String`](#string) | Token string. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `createOnDemandDastScan` | [`Boolean!`](#boolean) | Indicates the user can perform `create_on_demand_dast_scan` on this resource. | ### `DastSiteValidation` Represents a DAST Site Validation. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `id` | [`DastSiteValidationID!`](#dastsitevalidationid) | Global ID of the site validation. | -| `normalizedTargetUrl` | [`String`](#string) | Normalized URL of the target to be validated. | -| `status` | [`DastSiteProfileValidationStatusEnum!`](#dastsiteprofilevalidationstatusenum) | Status of the site validation. | +#### Fields -### `DastSiteValidationConnection` - -The connection type for DastSiteValidation. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[DastSiteValidationEdge]`](#dastsitevalidationedge) | A list of edges. | -| `nodes` | [`[DastSiteValidation]`](#dastsitevalidation) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `DastSiteValidationCreatePayload` - -Autogenerated return type of DastSiteValidationCreate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `id` | [`DastSiteValidationID`](#dastsitevalidationid) | ID of the site validation. | -| `status` | [`DastSiteProfileValidationStatusEnum`](#dastsiteprofilevalidationstatusenum) | The current validation status. | - -### `DastSiteValidationEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`DastSiteValidation`](#dastsitevalidation) | The item at the end of the edge. | - -### `DastSiteValidationRevokePayload` - -Autogenerated return type of DastSiteValidationRevoke. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `DeleteAnnotationPayload` - -Autogenerated return type of DeleteAnnotation. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `DeleteDevopsAdoptionSegmentPayload` - -Autogenerated return type of DeleteDevopsAdoptionSegment. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `id` | [`DastSiteValidationID!`](#dastsitevalidationid) | Global ID of the site validation. | +| `normalizedTargetUrl` | [`String`](#string) | Normalized URL of the target to be validated. | +| `status` | [`DastSiteProfileValidationStatusEnum!`](#dastsiteprofilevalidationstatusenum) | Status of the site validation. | ### `DeleteJobsResponse` The response from the AdminSidekiqQueuesDeleteJobs mutation. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `completed` | [`Boolean`](#boolean) | Whether or not the entire queue was processed in time; if not, retrying the same request is safe. | -| `deletedJobs` | [`Int`](#int) | The number of matching jobs deleted. | -| `queueSize` | [`Int`](#int) | The queue size after processing. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `completed` | [`Boolean`](#boolean) | Whether or not the entire queue was processed in time; if not, retrying the same request is safe. | +| `deletedJobs` | [`Int`](#int) | The number of matching jobs deleted. | +| `queueSize` | [`Int`](#int) | The queue size after processing. | ### `Design` A single design. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `currentUserTodos` | [`TodoConnection!`](#todoconnection) | To-do items for the current user. | -| `diffRefs` | [`DiffRefs!`](#diffrefs) | The diff refs for this design. | -| `discussions` | [`DiscussionConnection!`](#discussionconnection) | All discussions on this noteable. | -| `event` | [`DesignVersionEvent!`](#designversionevent) | How this design was changed in the current version. | -| `filename` | [`String!`](#string) | The filename of the design. | -| `fullPath` | [`String!`](#string) | The full path to the design file. | -| `id` | [`ID!`](#id) | The ID of this design. | -| `image` | [`String!`](#string) | The URL of the full-sized image. | -| `imageV432x230` | [`String`](#string) | The URL of the design resized to fit within the bounds of 432x230. This will be `null` if the image has not been generated. | -| `issue` | [`Issue!`](#issue) | The issue the design belongs to. | -| `notes` | [`NoteConnection!`](#noteconnection) | All notes on this noteable. | -| `notesCount` | [`Int!`](#int) | The total count of user-created notes for this design. | -| `project` | [`Project!`](#project) | The project the design belongs to. | -| `versions` | [`DesignVersionConnection!`](#designversionconnection) | All versions related to this design ordered newest first. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `diffRefs` | [`DiffRefs!`](#diffrefs) | The diff refs for this design. | +| `discussions` | [`DiscussionConnection!`](#discussionconnection) | All discussions on this noteable. | +| `event` | [`DesignVersionEvent!`](#designversionevent) | How this design was changed in the current version. | +| `filename` | [`String!`](#string) | The filename of the design. | +| `fullPath` | [`String!`](#string) | The full path to the design file. | +| `id` | [`ID!`](#id) | The ID of this design. | +| `image` | [`String!`](#string) | The URL of the full-sized image. | +| `imageV432x230` | [`String`](#string) | The URL of the design resized to fit within the bounds of 432x230. This will be `null` if the image has not been generated. | +| `issue` | [`Issue!`](#issue) | The issue the design belongs to. | +| `notes` | [`NoteConnection!`](#noteconnection) | All notes on this noteable. | +| `notesCount` | [`Int!`](#int) | The total count of user-created notes for this design. | +| `project` | [`Project!`](#project) | The project the design belongs to. | + +#### Fields with arguments + +##### `Design.currentUserTodos` + +To-do items for the current user. + +Returns [`TodoConnection!`](#todoconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `state` | [`TodoStateEnum`](#todostateenum) | State of the to-do items. | + +##### `Design.versions` + +All versions related to this design ordered newest first. + +Returns [`DesignVersionConnection!`](#designversionconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `earlierOrEqualToId` | [`DesignManagementVersionID`](#designmanagementversionid) | The Global ID of the most recent acceptable version. | +| `earlierOrEqualToSha` | [`String`](#string) | The SHA256 of the most recent acceptable version. | ### `DesignAtVersion` A design pinned to a specific version. The image field reflects the design as of the associated version. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `design` | [`Design!`](#design) | The underlying design. | -| `diffRefs` | [`DiffRefs!`](#diffrefs) | The diff refs for this design. | -| `event` | [`DesignVersionEvent!`](#designversionevent) | How this design was changed in the current version. | -| `filename` | [`String!`](#string) | The filename of the design. | -| `fullPath` | [`String!`](#string) | The full path to the design file. | -| `id` | [`ID!`](#id) | The ID of this design. | -| `image` | [`String!`](#string) | The URL of the full-sized image. | -| `imageV432x230` | [`String`](#string) | The URL of the design resized to fit within the bounds of 432x230. This will be `null` if the image has not been generated. | -| `issue` | [`Issue!`](#issue) | The issue the design belongs to. | -| `notesCount` | [`Int!`](#int) | The total count of user-created notes for this design. | -| `project` | [`Project!`](#project) | The project the design belongs to. | -| `version` | [`DesignVersion!`](#designversion) | The version this design-at-versions is pinned to. | +#### Fields -### `DesignAtVersionConnection` - -The connection type for DesignAtVersion. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[DesignAtVersionEdge]`](#designatversionedge) | A list of edges. | -| `nodes` | [`[DesignAtVersion]`](#designatversion) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `DesignAtVersionEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`DesignAtVersion`](#designatversion) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `design` | [`Design!`](#design) | The underlying design. | +| `diffRefs` | [`DiffRefs!`](#diffrefs) | The diff refs for this design. | +| `event` | [`DesignVersionEvent!`](#designversionevent) | How this design was changed in the current version. | +| `filename` | [`String!`](#string) | The filename of the design. | +| `fullPath` | [`String!`](#string) | The full path to the design file. | +| `id` | [`ID!`](#id) | The ID of this design. | +| `image` | [`String!`](#string) | The URL of the full-sized image. | +| `imageV432x230` | [`String`](#string) | The URL of the design resized to fit within the bounds of 432x230. This will be `null` if the image has not been generated. | +| `issue` | [`Issue!`](#issue) | The issue the design belongs to. | +| `notesCount` | [`Int!`](#int) | The total count of user-created notes for this design. | +| `project` | [`Project!`](#project) | The project the design belongs to. | +| `version` | [`DesignVersion!`](#designversion) | The version this design-at-versions is pinned to. | ### `DesignCollection` A collection of designs. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `copyState` | [`DesignCollectionCopyState`](#designcollectioncopystate) | Copy state of the design collection. | -| `design` | [`Design`](#design) | Find a specific design. | -| `designAtVersion` | [`DesignAtVersion`](#designatversion) | Find a design as of a version. | -| `designs` | [`DesignConnection!`](#designconnection) | All designs for the design collection. | -| `issue` | [`Issue!`](#issue) | Issue associated with the design collection. | -| `project` | [`Project!`](#project) | Project associated with the design collection. | -| `version` | [`DesignVersion`](#designversion) | A specific version. | -| `versions` | [`DesignVersionConnection!`](#designversionconnection) | All versions related to all designs, ordered newest first. | +#### Fields -### `DesignConnection` +| Name | Type | Description | +| ---- | ---- | ----------- | +| `copyState` | [`DesignCollectionCopyState`](#designcollectioncopystate) | Copy state of the design collection. | +| `issue` | [`Issue!`](#issue) | Issue associated with the design collection. | +| `project` | [`Project!`](#project) | Project associated with the design collection. | -The connection type for Design. +#### Fields with arguments -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[DesignEdge]`](#designedge) | A list of edges. | -| `nodes` | [`[Design]`](#design) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | +##### `DesignCollection.design` -### `DesignEdge` +Find a specific design. -An edge in a connection. +Returns [`Design`](#design). -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`Design`](#design) | The item at the end of the edge. | +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `filename` | [`String`](#string) | Find a design by its filename. | +| `id` | [`DesignManagementDesignID`](#designmanagementdesignid) | Find a design by its ID. | + +##### `DesignCollection.designAtVersion` + +Find a design as of a version. + +Returns [`DesignAtVersion`](#designatversion). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `id` | [`DesignManagementDesignAtVersionID!`](#designmanagementdesignatversionid) | The Global ID of the design at this version. | + +##### `DesignCollection.designs` + +All designs for the design collection. + +Returns [`DesignConnection!`](#designconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `atVersion` | [`DesignManagementVersionID`](#designmanagementversionid) | Filters designs to only those that existed at the version. If argument is omitted or nil then all designs will reflect the latest version. | +| `filenames` | [`[String!]`](#string) | Filters designs by their filename. | +| `ids` | [`[DesignManagementDesignID!]`](#designmanagementdesignid) | Filters designs by their ID. | + +##### `DesignCollection.version` + +A specific version. + +Returns [`DesignVersion`](#designversion). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `id` | [`DesignManagementVersionID`](#designmanagementversionid) | The Global ID of the version. | +| `sha` | [`String`](#string) | The SHA256 of a specific version. | + +##### `DesignCollection.versions` + +All versions related to all designs, ordered newest first. + +Returns [`DesignVersionConnection!`](#designversionconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `earlierOrEqualToId` | [`DesignManagementVersionID`](#designmanagementversionid) | The Global ID of the most recent acceptable version. | +| `earlierOrEqualToSha` | [`String`](#string) | The SHA256 of the most recent acceptable version. | ### `DesignManagement` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `designAtVersion` | [`DesignAtVersion`](#designatversion) | Find a design as of a version. | -| `version` | [`DesignVersion`](#designversion) | Find a version. | +#### Fields with arguments -### `DesignManagementDeletePayload` +##### `DesignManagement.designAtVersion` -Autogenerated return type of DesignManagementDelete. +Find a design as of a version. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `version` | [`DesignVersion`](#designversion) | The new version in which the designs are deleted. | +Returns [`DesignAtVersion`](#designatversion). -### `DesignManagementMovePayload` +###### Arguments -Autogenerated return type of DesignManagementMove. +| Name | Type | Description | +| ---- | ---- | ----------- | +| `id` | [`DesignManagementDesignAtVersionID!`](#designmanagementdesignatversionid) | The Global ID of the design at this version. | -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `designCollection` | [`DesignCollection`](#designcollection) | The current state of the collection. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +##### `DesignManagement.version` -### `DesignManagementUploadPayload` +Find a version. -Autogenerated return type of DesignManagementUpload. +Returns [`DesignVersion`](#designversion). -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `designs` | [`[Design!]!`](#design) | The designs that were uploaded by the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `skippedDesigns` | [`[Design!]!`](#design) | Any designs that were skipped from the upload due to there being no change to their content since their last version. | +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `id` | [`DesignManagementVersionID!`](#designmanagementversionid) | The Global ID of the version. | ### `DesignVersion` A specific version in which designs were added, modified or deleted. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `designAtVersion` | [`DesignAtVersion!`](#designatversion) | A particular design as of this version, provided it is visible at this version. | -| `designs` | [`DesignConnection!`](#designconnection) | All designs that were changed in the version. | -| `designsAtVersion` | [`DesignAtVersionConnection!`](#designatversionconnection) | All designs that are visible at this version, as of this version. | -| `id` | [`ID!`](#id) | ID of the design version. | -| `sha` | [`ID!`](#id) | SHA of the design version. | +#### Fields -### `DesignVersionConnection` +| Name | Type | Description | +| ---- | ---- | ----------- | +| `designs` | [`DesignConnection!`](#designconnection) | All designs that were changed in the version. | +| `id` | [`ID!`](#id) | ID of the design version. | +| `sha` | [`ID!`](#id) | SHA of the design version. | -The connection type for DesignVersion. +#### Fields with arguments -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[DesignVersionEdge]`](#designversionedge) | A list of edges. | -| `nodes` | [`[DesignVersion]`](#designversion) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | +##### `DesignVersion.designAtVersion` -### `DesignVersionEdge` +A particular design as of this version, provided it is visible at this version. -An edge in a connection. +Returns [`DesignAtVersion!`](#designatversion). -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`DesignVersion`](#designversion) | The item at the end of the edge. | +###### Arguments -### `DestroyBoardListPayload` +| Name | Type | Description | +| ---- | ---- | ----------- | +| `designId` | [`DesignManagementDesignID`](#designmanagementdesignid) | The ID of a specific design. | +| `filename` | [`String`](#string) | The filename of a specific design. | +| `id` | [`DesignManagementDesignAtVersionID`](#designmanagementdesignatversionid) | The ID of the DesignAtVersion. | -Autogenerated return type of DestroyBoardList. +##### `DesignVersion.designsAtVersion` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `list` | [`BoardList`](#boardlist) | The list after mutation. | +All designs that are visible at this version, as of this version. -### `DestroyBoardPayload` +Returns [`DesignAtVersionConnection!`](#designatversionconnection). -Autogenerated return type of DestroyBoard. +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `board` | [`Board`](#board) | The board after mutation. | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +###### Arguments -### `DestroyComplianceFrameworkPayload` - -Autogenerated return type of DestroyComplianceFramework. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `DestroyContainerRepositoryPayload` - -Autogenerated return type of DestroyContainerRepository. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `containerRepository` | [`ContainerRepository!`](#containerrepository) | The container repository policy after scheduling the deletion. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `DestroyContainerRepositoryTagsPayload` - -Autogenerated return type of DestroyContainerRepositoryTags. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `deletedTagNames` | [`[String!]!`](#string) | Deleted container repository tags. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `DestroyEpicBoardPayload` - -Autogenerated return type of DestroyEpicBoard. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `epicBoard` | [`EpicBoard`](#epicboard) | Epic board after mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `DestroyNotePayload` - -Autogenerated return type of DestroyNote. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `note` | [`Note`](#note) | The note after mutation. | - -### `DestroySnippetPayload` - -Autogenerated return type of DestroySnippet. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `snippet` | [`Snippet`](#snippet) | The snippet after mutation. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `filenames` | [`[String!]`](#string) | Filters designs by their filename. | +| `ids` | [`[DesignManagementDesignID!]`](#designmanagementdesignid) | Filters designs by their ID. | ### `DetailedStatus` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `action` | [`StatusAction`](#statusaction) | Action information for the status. This includes method, button title, icon, path, and title. | -| `detailsPath` | [`String`](#string) | Path of the details for the status. | -| `favicon` | [`String`](#string) | Favicon of the status. | -| `group` | [`String`](#string) | Group of the status. | -| `hasDetails` | [`Boolean`](#boolean) | Indicates if the status has further details. | -| `icon` | [`String`](#string) | Icon of the status. | -| `label` | [`String`](#string) | Label of the status. | -| `text` | [`String`](#string) | Text of the status. | -| `tooltip` | [`String`](#string) | Tooltip associated with the status. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `action` | [`StatusAction`](#statusaction) | Action information for the status. This includes method, button title, icon, path, and title. | +| `detailsPath` | [`String`](#string) | Path of the details for the status. | +| `favicon` | [`String`](#string) | Favicon of the status. | +| `group` | [`String`](#string) | Group of the status. | +| `hasDetails` | [`Boolean`](#boolean) | Indicates if the status has further details. | +| `icon` | [`String`](#string) | Icon of the status. | +| `label` | [`String`](#string) | Label of the status. | +| `text` | [`String`](#string) | Text of the status. | +| `tooltip` | [`String`](#string) | Tooltip associated with the status. | ### `DevopsAdoptionSegment` Segment. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `id` | [`ID!`](#id) | ID of the segment. | -| `latestSnapshot` | [`DevopsAdoptionSnapshot`](#devopsadoptionsnapshot) | The latest adoption metrics for the segment. | -| `namespace` | [`Namespace`](#namespace) | Segment namespace. | +#### Fields -### `DevopsAdoptionSegmentConnection` - -The connection type for DevopsAdoptionSegment. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[DevopsAdoptionSegmentEdge]`](#devopsadoptionsegmentedge) | A list of edges. | -| `nodes` | [`[DevopsAdoptionSegment]`](#devopsadoptionsegment) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `DevopsAdoptionSegmentEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`DevopsAdoptionSegment`](#devopsadoptionsegment) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `id` | [`ID!`](#id) | ID of the segment. | +| `latestSnapshot` | [`DevopsAdoptionSnapshot`](#devopsadoptionsnapshot) | The latest adoption metrics for the segment. | +| `namespace` | [`Namespace`](#namespace) | Segment namespace. | ### `DevopsAdoptionSnapshot` Snapshot. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `deploySucceeded` | [`Boolean!`](#boolean) | At least one deployment succeeded. | -| `endTime` | [`Time!`](#time) | The end time for the snapshot where the data points were collected. | -| `issueOpened` | [`Boolean!`](#boolean) | At least one issue was opened. | -| `mergeRequestApproved` | [`Boolean!`](#boolean) | At least one merge request was approved. | -| `mergeRequestOpened` | [`Boolean!`](#boolean) | At least one merge request was opened. | -| `pipelineSucceeded` | [`Boolean!`](#boolean) | At least one pipeline succeeded. | -| `recordedAt` | [`Time!`](#time) | The time the snapshot was recorded. | -| `runnerConfigured` | [`Boolean!`](#boolean) | At least one runner was used. | -| `securityScanSucceeded` | [`Boolean!`](#boolean) | At least one security scan succeeded. | -| `startTime` | [`Time!`](#time) | The start time for the snapshot where the data points were collected. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `deploySucceeded` | [`Boolean!`](#boolean) | At least one deployment succeeded. | +| `endTime` | [`Time!`](#time) | The end time for the snapshot where the data points were collected. | +| `issueOpened` | [`Boolean!`](#boolean) | At least one issue was opened. | +| `mergeRequestApproved` | [`Boolean!`](#boolean) | At least one merge request was approved. | +| `mergeRequestOpened` | [`Boolean!`](#boolean) | At least one merge request was opened. | +| `pipelineSucceeded` | [`Boolean!`](#boolean) | At least one pipeline succeeded. | +| `recordedAt` | [`Time!`](#time) | The time the snapshot was recorded. | +| `runnerConfigured` | [`Boolean!`](#boolean) | At least one runner was used. | +| `securityScanSucceeded` | [`Boolean!`](#boolean) | At least one security scan succeeded. | +| `startTime` | [`Time!`](#time) | The start time for the snapshot where the data points were collected. | ### `DiffPosition` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `diffRefs` | [`DiffRefs!`](#diffrefs) | Information about the branch, HEAD, and base at the time of commenting. | -| `filePath` | [`String!`](#string) | Path of the file that was changed. | -| `height` | [`Int`](#int) | Total height of the image. | -| `newLine` | [`Int`](#int) | Line on HEAD SHA that was changed. | -| `newPath` | [`String`](#string) | Path of the file on the HEAD SHA. | -| `oldLine` | [`Int`](#int) | Line on start SHA that was changed. | -| `oldPath` | [`String`](#string) | Path of the file on the start SHA. | -| `positionType` | [`DiffPositionType!`](#diffpositiontype) | Type of file the position refers to. | -| `width` | [`Int`](#int) | Total width of the image. | -| `x` | [`Int`](#int) | X position of the note. | -| `y` | [`Int`](#int) | Y position of the note. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `diffRefs` | [`DiffRefs!`](#diffrefs) | Information about the branch, HEAD, and base at the time of commenting. | +| `filePath` | [`String!`](#string) | Path of the file that was changed. | +| `height` | [`Int`](#int) | Total height of the image. | +| `newLine` | [`Int`](#int) | Line on HEAD SHA that was changed. | +| `newPath` | [`String`](#string) | Path of the file on the HEAD SHA. | +| `oldLine` | [`Int`](#int) | Line on start SHA that was changed. | +| `oldPath` | [`String`](#string) | Path of the file on the start SHA. | +| `positionType` | [`DiffPositionType!`](#diffpositiontype) | Type of file the position refers to. | +| `width` | [`Int`](#int) | Total width of the image. | +| `x` | [`Int`](#int) | X position of the note. | +| `y` | [`Int`](#int) | Y position of the note. | ### `DiffRefs` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `baseSha` | [`String`](#string) | Merge base of the branch the comment was made on. | -| `headSha` | [`String!`](#string) | SHA of the HEAD at the time the comment was made. | -| `startSha` | [`String!`](#string) | SHA of the branch being compared against. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `baseSha` | [`String`](#string) | Merge base of the branch the comment was made on. | +| `headSha` | [`String!`](#string) | SHA of the HEAD at the time the comment was made. | +| `startSha` | [`String!`](#string) | SHA of the branch being compared against. | ### `DiffStats` Changes to a single file. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `additions` | [`Int!`](#int) | Number of lines added to this file. | -| `deletions` | [`Int!`](#int) | Number of lines deleted from this file. | -| `path` | [`String!`](#string) | File path, relative to repository root. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `additions` | [`Int!`](#int) | Number of lines added to this file. | +| `deletions` | [`Int!`](#int) | Number of lines deleted from this file. | +| `path` | [`String!`](#string) | File path, relative to repository root. | ### `DiffStatsSummary` Aggregated summary of changes. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `additions` | [`Int!`](#int) | Number of lines added. | -| `changes` | [`Int!`](#int) | Number of lines changed. | -| `deletions` | [`Int!`](#int) | Number of lines deleted. | -| `fileCount` | [`Int!`](#int) | Number of files changed. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `additions` | [`Int!`](#int) | Number of lines added. | +| `changes` | [`Int!`](#int) | Number of lines changed. | +| `deletions` | [`Int!`](#int) | Number of lines deleted. | +| `fileCount` | [`Int!`](#int) | Number of files changed. | ### `Discussion` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `createdAt` | [`Time!`](#time) | Timestamp of the discussion's creation. | -| `id` | [`DiscussionID!`](#discussionid) | ID of this discussion. | -| `notes` | [`NoteConnection!`](#noteconnection) | All notes in the discussion. | -| `replyId` | [`DiscussionID!`](#discussionid) | ID used to reply to this discussion. | -| `resolvable` | [`Boolean!`](#boolean) | Indicates if the object can be resolved. | -| `resolved` | [`Boolean!`](#boolean) | Indicates if the object is resolved. | -| `resolvedAt` | [`Time`](#time) | Timestamp of when the object was resolved. | -| `resolvedBy` | [`User`](#user) | User who resolved the object. | +#### Fields -### `DiscussionConnection` - -The connection type for Discussion. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[DiscussionEdge]`](#discussionedge) | A list of edges. | -| `nodes` | [`[Discussion]`](#discussion) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `DiscussionEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`Discussion`](#discussion) | The item at the end of the edge. | - -### `DiscussionToggleResolvePayload` - -Autogenerated return type of DiscussionToggleResolve. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `discussion` | [`Discussion`](#discussion) | The discussion after mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `DismissVulnerabilityPayload` - -Autogenerated return type of DismissVulnerability. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `vulnerability` | [`Vulnerability`](#vulnerability) | The vulnerability after dismissal. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `createdAt` | [`Time!`](#time) | Timestamp of the discussion's creation. | +| `id` | [`DiscussionID!`](#discussionid) | ID of this discussion. | +| `notes` | [`NoteConnection!`](#noteconnection) | All notes in the discussion. | +| `replyId` | [`DiscussionID!`](#discussionid) | ID used to reply to this discussion. | +| `resolvable` | [`Boolean!`](#boolean) | Indicates if the object can be resolved. | +| `resolved` | [`Boolean!`](#boolean) | Indicates if the object is resolved. | +| `resolvedAt` | [`Time`](#time) | Timestamp of when the object was resolved. | +| `resolvedBy` | [`User`](#user) | User who resolved the object. | ### `Environment` Describes where code is deployed for a project. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `id` | [`ID!`](#id) | ID of the environment. | -| `latestOpenedMostSevereAlert` | [`AlertManagementAlert`](#alertmanagementalert) | The most severe open alert for the environment. If multiple alerts have equal severity, the most recent is returned. | -| `metricsDashboard` | [`MetricsDashboard`](#metricsdashboard) | Metrics dashboard schema for the environment. | -| `name` | [`String!`](#string) | Human-readable name of the environment. | -| `path` | [`String!`](#string) | The path to the environment. | -| `state` | [`String!`](#string) | State of the environment, for example: available/stopped. | +#### Fields -### `EnvironmentConnection` +| Name | Type | Description | +| ---- | ---- | ----------- | +| `id` | [`ID!`](#id) | ID of the environment. | +| `latestOpenedMostSevereAlert` | [`AlertManagementAlert`](#alertmanagementalert) | The most severe open alert for the environment. If multiple alerts have equal severity, the most recent is returned. | +| `name` | [`String!`](#string) | Human-readable name of the environment. | +| `path` | [`String!`](#string) | The path to the environment. | +| `state` | [`String!`](#string) | State of the environment, for example: available/stopped. | -The connection type for Environment. +#### Fields with arguments -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[EnvironmentEdge]`](#environmentedge) | A list of edges. | -| `nodes` | [`[Environment]`](#environment) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | +##### `Environment.metricsDashboard` -### `EnvironmentEdge` +Metrics dashboard schema for the environment. -An edge in a connection. +Returns [`MetricsDashboard`](#metricsdashboard). -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`Environment`](#environment) | The item at the end of the edge. | +###### Arguments -### `EnvironmentsCanaryIngressUpdatePayload` - -Autogenerated return type of EnvironmentsCanaryIngressUpdate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `path` | [`String!`](#string) | Path to a file which defines a metrics dashboard eg: `"config/prometheus/common_metrics.yml"`. | ### `Epic` Represents an epic. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `author` | [`User!`](#user) | Author of the epic. | -| `awardEmoji` | [`AwardEmojiConnection`](#awardemojiconnection) | A list of award emojis associated with the epic. | -| `children` | [`EpicConnection`](#epicconnection) | Children (sub-epics) of the epic. | -| `closedAt` | [`Time`](#time) | Timestamp of when the epic was closed. | -| `confidential` | [`Boolean`](#boolean) | Indicates if the epic is confidential. | -| `createdAt` | [`Time`](#time) | Timestamp of when the epic was created. | -| `currentUserTodos` | [`TodoConnection!`](#todoconnection) | To-do items for the current user. | -| `descendantCounts` | [`EpicDescendantCount`](#epicdescendantcount) | Number of open and closed descendant epics and issues. | -| `descendantWeightSum` | [`EpicDescendantWeights`](#epicdescendantweights) | Total weight of open and closed issues in the epic and its descendants. | -| `description` | [`String`](#string) | Description of the epic. | -| `descriptionHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `description`. | -| `discussions` | [`DiscussionConnection!`](#discussionconnection) | All discussions on this noteable. | -| `downvotes` | [`Int!`](#int) | Number of downvotes the epic has received. | -| `dueDate` | [`Time`](#time) | Due date of the epic. | -| `dueDateFixed` | [`Time`](#time) | Fixed due date of the epic. | -| `dueDateFromMilestones` | [`Time`](#time) | Inherited due date of the epic from milestones. | -| `dueDateIsFixed` | [`Boolean`](#boolean) | Indicates if the due date has been manually set. | -| `events` | [`EventConnection`](#eventconnection) | A list of events associated with the object. | -| `group` | [`Group!`](#group) | Group to which the epic belongs. | -| `hasChildren` | [`Boolean!`](#boolean) | Indicates if the epic has children. | -| `hasIssues` | [`Boolean!`](#boolean) | Indicates if the epic has direct issues. | -| `hasParent` | [`Boolean!`](#boolean) | Indicates if the epic has a parent epic. | -| `healthStatus` | [`EpicHealthStatus`](#epichealthstatus) | Current health status of the epic. | -| `id` | [`ID!`](#id) | ID of the epic. | -| `iid` | [`ID!`](#id) | Internal ID of the epic. | -| `issues` | [`EpicIssueConnection`](#epicissueconnection) | A list of issues associated with the epic. | -| `labels` | [`LabelConnection`](#labelconnection) | Labels assigned to the epic. | -| `notes` | [`NoteConnection!`](#noteconnection) | All notes on this noteable. | -| `parent` | [`Epic`](#epic) | Parent epic of the epic. | -| `participants` | [`UserConnection`](#userconnection) | List of participants for the epic. | -| `reference` | [`String!`](#string) | Internal reference of the epic. Returned in shortened format by default. | -| `relationPath` | [`String`](#string) | URI path of the epic-issue relationship. | -| `relativePosition` | [`Int`](#int) | The relative position of the epic in the epic tree. | -| `startDate` | [`Time`](#time) | Start date of the epic. | -| `startDateFixed` | [`Time`](#time) | Fixed start date of the epic. | -| `startDateFromMilestones` | [`Time`](#time) | Inherited start date of the epic from milestones. | -| `startDateIsFixed` | [`Boolean`](#boolean) | Indicates if the start date has been manually set. | -| `state` | [`EpicState!`](#epicstate) | State of the epic. | -| `subscribed` | [`Boolean!`](#boolean) | Indicates the currently logged in user is subscribed to the epic. | -| `title` | [`String`](#string) | Title of the epic. | -| `titleHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `title`. | -| `updatedAt` | [`Time`](#time) | Timestamp of when the epic was updated. | -| `upvotes` | [`Int!`](#int) | Number of upvotes the epic has received. | -| `userDiscussionsCount` | [`Int!`](#int) | Number of user discussions in the epic. | -| `userNotesCount` | [`Int!`](#int) | Number of user notes of the epic. | -| `userPermissions` | [`EpicPermissions!`](#epicpermissions) | Permissions for the current user on the resource. | -| `webPath` | [`String!`](#string) | Web path of the epic. | -| `webUrl` | [`String!`](#string) | Web URL of the epic. | +#### Fields -### `EpicAddIssuePayload` +| Name | Type | Description | +| ---- | ---- | ----------- | +| `author` | [`User!`](#user) | Author of the epic. | +| `awardEmoji` | [`AwardEmojiConnection`](#awardemojiconnection) | A list of award emojis associated with the epic. | +| `closedAt` | [`Time`](#time) | Timestamp of when the epic was closed. | +| `confidential` | [`Boolean`](#boolean) | Indicates if the epic is confidential. | +| `createdAt` | [`Time`](#time) | Timestamp of when the epic was created. | +| `descendantCounts` | [`EpicDescendantCount`](#epicdescendantcount) | Number of open and closed descendant epics and issues. | +| `descendantWeightSum` | [`EpicDescendantWeights`](#epicdescendantweights) | Total weight of open and closed issues in the epic and its descendants. | +| `description` | [`String`](#string) | Description of the epic. | +| `descriptionHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `description`. | +| `discussions` | [`DiscussionConnection!`](#discussionconnection) | All discussions on this noteable. | +| `downvotes` | [`Int!`](#int) | Number of downvotes the epic has received. | +| `dueDate` | [`Time`](#time) | Due date of the epic. | +| `dueDateFixed` | [`Time`](#time) | Fixed due date of the epic. | +| `dueDateFromMilestones` | [`Time`](#time) | Inherited due date of the epic from milestones. | +| `dueDateIsFixed` | [`Boolean`](#boolean) | Indicates if the due date has been manually set. | +| `events` | [`EventConnection`](#eventconnection) | A list of events associated with the object. | +| `group` | [`Group!`](#group) | Group to which the epic belongs. | +| `hasChildren` | [`Boolean!`](#boolean) | Indicates if the epic has children. | +| `hasIssues` | [`Boolean!`](#boolean) | Indicates if the epic has direct issues. | +| `hasParent` | [`Boolean!`](#boolean) | Indicates if the epic has a parent epic. | +| `healthStatus` | [`EpicHealthStatus`](#epichealthstatus) | Current health status of the epic. | +| `id` | [`ID!`](#id) | ID of the epic. | +| `iid` | [`ID!`](#id) | Internal ID of the epic. | +| `issues` | [`EpicIssueConnection`](#epicissueconnection) | A list of issues associated with the epic. | +| `labels` | [`LabelConnection`](#labelconnection) | Labels assigned to the epic. | +| `notes` | [`NoteConnection!`](#noteconnection) | All notes on this noteable. | +| `parent` | [`Epic`](#epic) | Parent epic of the epic. | +| `participants` | [`UserConnection`](#userconnection) | List of participants for the epic. | +| `relationPath` | [`String`](#string) | URI path of the epic-issue relationship. | +| `relativePosition` | [`Int`](#int) | The relative position of the epic in the epic tree. | +| `startDate` | [`Time`](#time) | Start date of the epic. | +| `startDateFixed` | [`Time`](#time) | Fixed start date of the epic. | +| `startDateFromMilestones` | [`Time`](#time) | Inherited start date of the epic from milestones. | +| `startDateIsFixed` | [`Boolean`](#boolean) | Indicates if the start date has been manually set. | +| `state` | [`EpicState!`](#epicstate) | State of the epic. | +| `subscribed` | [`Boolean!`](#boolean) | Indicates the currently logged in user is subscribed to the epic. | +| `title` | [`String`](#string) | Title of the epic. | +| `titleHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `title`. | +| `updatedAt` | [`Time`](#time) | Timestamp of when the epic was updated. | +| `upvotes` | [`Int!`](#int) | Number of upvotes the epic has received. | +| `userDiscussionsCount` | [`Int!`](#int) | Number of user discussions in the epic. | +| `userNotesCount` | [`Int!`](#int) | Number of user notes of the epic. | +| `userPermissions` | [`EpicPermissions!`](#epicpermissions) | Permissions for the current user on the resource. | +| `webPath` | [`String!`](#string) | Web path of the epic. | +| `webUrl` | [`String!`](#string) | Web URL of the epic. | -Autogenerated return type of EpicAddIssue. +#### Fields with arguments -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `epic` | [`Epic`](#epic) | The epic after mutation. | -| `epicIssue` | [`EpicIssue`](#epicissue) | The epic-issue relation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +##### `Epic.children` + +Children (sub-epics) of the epic. + +Returns [`EpicConnection`](#epicconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `authorUsername` | [`String`](#string) | Filter epics by author. | +| `confidential` | [`Boolean`](#boolean) | Filter epics by given confidentiality. | +| `endDate` **{warning-solid}** | [`Time`](#time) | **Deprecated** in 13.5. Use timeframe.end. | +| `iid` | [`ID`](#id) | IID of the epic, e.g., "1". | +| `iidStartsWith` | [`String`](#string) | Filter epics by IID for autocomplete. | +| `iids` | [`[ID!]`](#id) | List of IIDs of epics, e.g., [1, 2]. | +| `includeDescendantGroups` | [`Boolean`](#boolean) | Include epics from descendant groups. | +| `labelName` | [`[String!]`](#string) | Filter epics by labels. | +| `milestoneTitle` | [`String`](#string) | Filter epics by milestone title, computed from epic's issues. | +| `myReactionEmoji` | [`String`](#string) | Filter by reaction emoji applied by the current user. | +| `search` | [`String`](#string) | Search query for epic title or description. | +| `sort` | [`EpicSort`](#epicsort) | List epics by sort order. | +| `startDate` **{warning-solid}** | [`Time`](#time) | **Deprecated** in 13.5. Use timeframe.start. | +| `state` | [`EpicState`](#epicstate) | Filter epics by state. | +| `timeframe` | [`Timeframe`](#timeframe) | List items overlapping the given timeframe. | + +##### `Epic.currentUserTodos` + +To-do items for the current user. + +Returns [`TodoConnection!`](#todoconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `state` | [`TodoStateEnum`](#todostateenum) | State of the to-do items. | + +##### `Epic.reference` + +Internal reference of the epic. Returned in shortened format by default. + +Returns [`String!`](#string). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `full` | [`Boolean`](#boolean) | Indicates if the reference should be returned in full. | ### `EpicBoard` Represents an epic board. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `hideBacklogList` | [`Boolean`](#boolean) | Whether or not backlog list is hidden. | -| `hideClosedList` | [`Boolean`](#boolean) | Whether or not closed list is hidden. | -| `id` | [`BoardsEpicBoardID!`](#boardsepicboardid) | Global ID of the epic board. | -| `labels` | [`LabelConnection`](#labelconnection) | Labels of the board. | -| `lists` | [`EpicListConnection`](#epiclistconnection) | Epic board lists. | -| `name` | [`String`](#string) | Name of the epic board. | -| `webPath` | [`String!`](#string) | Web path of the epic board. | -| `webUrl` | [`String!`](#string) | Web URL of the epic board. | +#### Fields -### `EpicBoardConnection` +| Name | Type | Description | +| ---- | ---- | ----------- | +| `hideBacklogList` | [`Boolean`](#boolean) | Whether or not backlog list is hidden. | +| `hideClosedList` | [`Boolean`](#boolean) | Whether or not closed list is hidden. | +| `id` | [`BoardsEpicBoardID!`](#boardsepicboardid) | Global ID of the epic board. | +| `labels` | [`LabelConnection`](#labelconnection) | Labels of the board. | +| `name` | [`String`](#string) | Name of the epic board. | +| `webPath` | [`String!`](#string) | Web path of the epic board. | +| `webUrl` | [`String!`](#string) | Web URL of the epic board. | -The connection type for EpicBoard. +#### Fields with arguments -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[EpicBoardEdge]`](#epicboardedge) | A list of edges. | -| `nodes` | [`[EpicBoard]`](#epicboard) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | +##### `EpicBoard.lists` -### `EpicBoardCreatePayload` +Epic board lists. -Autogenerated return type of EpicBoardCreate. +Returns [`EpicListConnection`](#epiclistconnection). -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `epicBoard` | [`EpicBoard`](#epicboard) | The created epic board. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. -### `EpicBoardEdge` +###### Arguments -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`EpicBoard`](#epicboard) | The item at the end of the edge. | - -### `EpicBoardListCreatePayload` - -Autogenerated return type of EpicBoardListCreate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `list` | [`EpicList`](#epiclist) | Epic list in the epic board. | - -### `EpicBoardUpdatePayload` - -Autogenerated return type of EpicBoardUpdate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `epicBoard` | [`EpicBoard`](#epicboard) | The updated epic board. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `EpicConnection` - -The connection type for Epic. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[EpicEdge]`](#epicedge) | A list of edges. | -| `nodes` | [`[Epic]`](#epic) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `id` | [`BoardsEpicListID`](#boardsepiclistid) | Find an epic board list by ID. | ### `EpicDescendantCount` Counts of descendent epics. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `closedEpics` | [`Int`](#int) | Number of closed child epics. | -| `closedIssues` | [`Int`](#int) | Number of closed epic issues. | -| `openedEpics` | [`Int`](#int) | Number of opened child epics. | -| `openedIssues` | [`Int`](#int) | Number of opened epic issues. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `closedEpics` | [`Int`](#int) | Number of closed child epics. | +| `closedIssues` | [`Int`](#int) | Number of closed epic issues. | +| `openedEpics` | [`Int`](#int) | Number of opened child epics. | +| `openedIssues` | [`Int`](#int) | Number of opened epic issues. | ### `EpicDescendantWeights` Total weight of open and closed descendant issues. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `closedIssues` | [`Int`](#int) | Total weight of completed (closed) issues in this epic, including epic descendants. | -| `openedIssues` | [`Int`](#int) | Total weight of opened issues in this epic, including epic descendants. | +#### Fields -### `EpicEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`Epic`](#epic) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `closedIssues` | [`Int`](#int) | Total weight of completed (closed) issues in this epic, including epic descendants. | +| `openedIssues` | [`Int`](#int) | Total weight of opened issues in this epic, including epic descendants. | ### `EpicHealthStatus` Health status of child issues. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `issuesAtRisk` | [`Int`](#int) | Number of issues at risk. | -| `issuesNeedingAttention` | [`Int`](#int) | Number of issues that need attention. | -| `issuesOnTrack` | [`Int`](#int) | Number of issues on track. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `issuesAtRisk` | [`Int`](#int) | Number of issues at risk. | +| `issuesNeedingAttention` | [`Int`](#int) | Number of issues that need attention. | +| `issuesOnTrack` | [`Int`](#int) | Number of issues on track. | ### `EpicIssue` Relationship between an epic and an issue. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `alertManagementAlert` | [`AlertManagementAlert`](#alertmanagementalert) | Alert associated to this issue. | -| `assignees` | [`UserConnection`](#userconnection) | Assignees of the issue. | -| `author` | [`User!`](#user) | User that created the issue. | -| `blocked` | [`Boolean!`](#boolean) | Indicates the issue is blocked. | -| `blockedByCount` | [`Int`](#int) | Count of issues blocking this issue. | -| `blockedByIssues` | [`IssueConnection`](#issueconnection) | Issues blocking this issue. | -| `closedAt` | [`Time`](#time) | Timestamp of when the issue was closed. | -| `confidential` | [`Boolean!`](#boolean) | Indicates the issue is confidential. | -| `createNoteEmail` | [`String`](#string) | User specific email address for the issue. | -| `createdAt` | [`Time!`](#time) | Timestamp of when the issue was created. | -| `currentUserTodos` | [`TodoConnection!`](#todoconnection) | To-do items for the current user. | -| `description` | [`String`](#string) | Description of the issue. | -| `descriptionHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `description`. | -| `designCollection` | [`DesignCollection`](#designcollection) | Collection of design images associated with this issue. | -| `discussionLocked` | [`Boolean!`](#boolean) | Indicates discussion is locked on the issue. | -| `discussions` | [`DiscussionConnection!`](#discussionconnection) | All discussions on this noteable. | -| `downvotes` | [`Int!`](#int) | Number of downvotes the issue has received. | -| `dueDate` | [`Time`](#time) | Due date of the issue. | -| `emailsDisabled` | [`Boolean!`](#boolean) | Indicates if a project has email notifications disabled: `true` if email notifications are disabled. | -| `epic` | [`Epic`](#epic) | Epic to which this issue belongs. | -| `epicIssueId` | [`ID!`](#id) | ID of the epic-issue relation. | -| `healthStatus` | [`HealthStatus`](#healthstatus) | Current health status. | -| `humanTimeEstimate` | [`String`](#string) | Human-readable time estimate of the issue. | -| `humanTotalTimeSpent` | [`String`](#string) | Human-readable total time reported as spent on the issue. | -| `id` | [`ID`](#id) | Global ID of the epic-issue relation. | -| `iid` | [`ID!`](#id) | Internal ID of the issue. | -| `iteration` | [`Iteration`](#iteration) | Iteration of the issue. | -| `labels` | [`LabelConnection`](#labelconnection) | Labels of the issue. | -| `metricImages` | [`[MetricImage!]`](#metricimage) | Metric images associated to the issue. | -| `milestone` | [`Milestone`](#milestone) | Milestone of the issue. | -| `moved` | [`Boolean`](#boolean) | Indicates if issue got moved from other project. | -| `movedTo` | [`Issue`](#issue) | Updated Issue after it got moved to another project. | -| `notes` | [`NoteConnection!`](#noteconnection) | All notes on this noteable. | -| `participants` | [`UserConnection`](#userconnection) | List of participants in the issue. | -| `reference` | [`String!`](#string) | Internal reference of the issue. Returned in shortened format by default. | -| `relationPath` | [`String`](#string) | URI path of the epic-issue relation. | -| `relativePosition` | [`Int`](#int) | Relative position of the issue (used for positioning in epic tree and issue boards). | -| `severity` | [`IssuableSeverity`](#issuableseverity) | Severity level of the incident. | -| `slaDueAt` | [`Time`](#time) | Timestamp of when the issue SLA expires. | -| `state` | [`IssueState!`](#issuestate) | State of the issue. | -| `statusPagePublishedIncident` | [`Boolean`](#boolean) | Indicates whether an issue is published to the status page. | -| `subscribed` | [`Boolean!`](#boolean) | Indicates the currently logged in user is subscribed to the issue. | -| `taskCompletionStatus` | [`TaskCompletionStatus!`](#taskcompletionstatus) | Task completion status of the issue. | -| `timeEstimate` | [`Int!`](#int) | Time estimate of the issue. | -| `timelogs` | [`TimelogConnection!`](#timelogconnection) | Timelogs on the issue. | -| `title` | [`String!`](#string) | Title of the issue. | -| `titleHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `title`. | -| `totalTimeSpent` | [`Int!`](#int) | Total time reported as spent on the issue. | -| `type` | [`IssueType`](#issuetype) | Type of the issue. | -| `updatedAt` | [`Time!`](#time) | Timestamp of when the issue was last updated. | -| `updatedBy` | [`User`](#user) | User that last updated the issue. | -| `upvotes` | [`Int!`](#int) | Number of upvotes the issue has received. | -| `userDiscussionsCount` | [`Int!`](#int) | Number of user discussions in the issue. | -| `userNotesCount` | [`Int!`](#int) | Number of user notes of the issue. | -| `userPermissions` | [`IssuePermissions!`](#issuepermissions) | Permissions for the current user on the resource. | -| `webPath` | [`String!`](#string) | Web path of the issue. | -| `webUrl` | [`String!`](#string) | Web URL of the issue. | -| `weight` | [`Int`](#int) | Weight of the issue. | +#### Fields -### `EpicIssueConnection` +| Name | Type | Description | +| ---- | ---- | ----------- | +| `alertManagementAlert` | [`AlertManagementAlert`](#alertmanagementalert) | Alert associated to this issue. | +| `assignees` | [`UserConnection`](#userconnection) | Assignees of the issue. | +| `author` | [`User!`](#user) | User that created the issue. | +| `blocked` | [`Boolean!`](#boolean) | Indicates the issue is blocked. | +| `blockedByCount` | [`Int`](#int) | Count of issues blocking this issue. | +| `blockedByIssues` | [`IssueConnection`](#issueconnection) | Issues blocking this issue. | +| `closedAt` | [`Time`](#time) | Timestamp of when the issue was closed. | +| `confidential` | [`Boolean!`](#boolean) | Indicates the issue is confidential. | +| `createNoteEmail` | [`String`](#string) | User specific email address for the issue. | +| `createdAt` | [`Time!`](#time) | Timestamp of when the issue was created. | +| `description` | [`String`](#string) | Description of the issue. | +| `descriptionHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `description`. | +| `designCollection` | [`DesignCollection`](#designcollection) | Collection of design images associated with this issue. | +| `discussionLocked` | [`Boolean!`](#boolean) | Indicates discussion is locked on the issue. | +| `discussions` | [`DiscussionConnection!`](#discussionconnection) | All discussions on this noteable. | +| `downvotes` | [`Int!`](#int) | Number of downvotes the issue has received. | +| `dueDate` | [`Time`](#time) | Due date of the issue. | +| `emailsDisabled` | [`Boolean!`](#boolean) | Indicates if a project has email notifications disabled: `true` if email notifications are disabled. | +| `epic` | [`Epic`](#epic) | Epic to which this issue belongs. | +| `epicIssueId` | [`ID!`](#id) | ID of the epic-issue relation. | +| `healthStatus` | [`HealthStatus`](#healthstatus) | Current health status. | +| `humanTimeEstimate` | [`String`](#string) | Human-readable time estimate of the issue. | +| `humanTotalTimeSpent` | [`String`](#string) | Human-readable total time reported as spent on the issue. | +| `id` | [`ID`](#id) | Global ID of the epic-issue relation. | +| `iid` | [`ID!`](#id) | Internal ID of the issue. | +| `iteration` | [`Iteration`](#iteration) | Iteration of the issue. | +| `labels` | [`LabelConnection`](#labelconnection) | Labels of the issue. | +| `metricImages` | [`[MetricImage!]`](#metricimage) | Metric images associated to the issue. | +| `milestone` | [`Milestone`](#milestone) | Milestone of the issue. | +| `moved` | [`Boolean`](#boolean) | Indicates if issue got moved from other project. | +| `movedTo` | [`Issue`](#issue) | Updated Issue after it got moved to another project. | +| `notes` | [`NoteConnection!`](#noteconnection) | All notes on this noteable. | +| `participants` | [`UserConnection`](#userconnection) | List of participants in the issue. | +| `relationPath` | [`String`](#string) | URI path of the epic-issue relation. | +| `relativePosition` | [`Int`](#int) | Relative position of the issue (used for positioning in epic tree and issue boards). | +| `severity` | [`IssuableSeverity`](#issuableseverity) | Severity level of the incident. | +| `slaDueAt` | [`Time`](#time) | Timestamp of when the issue SLA expires. | +| `state` | [`IssueState!`](#issuestate) | State of the issue. | +| `statusPagePublishedIncident` | [`Boolean`](#boolean) | Indicates whether an issue is published to the status page. | +| `subscribed` | [`Boolean!`](#boolean) | Indicates the currently logged in user is subscribed to the issue. | +| `taskCompletionStatus` | [`TaskCompletionStatus!`](#taskcompletionstatus) | Task completion status of the issue. | +| `timeEstimate` | [`Int!`](#int) | Time estimate of the issue. | +| `timelogs` | [`TimelogConnection!`](#timelogconnection) | Timelogs on the issue. | +| `title` | [`String!`](#string) | Title of the issue. | +| `titleHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `title`. | +| `totalTimeSpent` | [`Int!`](#int) | Total time reported as spent on the issue. | +| `type` | [`IssueType`](#issuetype) | Type of the issue. | +| `updatedAt` | [`Time!`](#time) | Timestamp of when the issue was last updated. | +| `updatedBy` | [`User`](#user) | User that last updated the issue. | +| `upvotes` | [`Int!`](#int) | Number of upvotes the issue has received. | +| `userDiscussionsCount` | [`Int!`](#int) | Number of user discussions in the issue. | +| `userNotesCount` | [`Int!`](#int) | Number of user notes of the issue. | +| `userPermissions` | [`IssuePermissions!`](#issuepermissions) | Permissions for the current user on the resource. | +| `webPath` | [`String!`](#string) | Web path of the issue. | +| `webUrl` | [`String!`](#string) | Web URL of the issue. | +| `weight` | [`Int`](#int) | Weight of the issue. | -The connection type for EpicIssue. +#### Fields with arguments -| Field | Type | Description | -| ----- | ---- | ----------- | -| `count` | [`Int!`](#int) | Total count of collection. | -| `edges` | [`[EpicIssueEdge]`](#epicissueedge) | A list of edges. | -| `nodes` | [`[EpicIssue]`](#epicissue) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | -| `weight` | [`Int!`](#int) | Total weight of issues collection. | +##### `EpicIssue.currentUserTodos` -### `EpicIssueEdge` +To-do items for the current user. -An edge in a connection. +Returns [`TodoConnection!`](#todoconnection). -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`EpicIssue`](#epicissue) | The item at the end of the edge. | +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `state` | [`TodoStateEnum`](#todostateenum) | State of the to-do items. | + +##### `EpicIssue.reference` + +Internal reference of the issue. Returned in shortened format by default. + +Returns [`String!`](#string). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `full` | [`Boolean`](#boolean) | Boolean option specifying whether the reference should be returned in full. | ### `EpicList` Represents an epic board list. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `collapsed` | [`Boolean`](#boolean) | Indicates if this list is collapsed for this user. | -| `epics` | [`EpicConnection`](#epicconnection) | List epics. | -| `epicsCount` | [`Int`](#int) | Count of epics in the list. | -| `id` | [`BoardsEpicListID!`](#boardsepiclistid) | Global ID of the board list. | -| `label` | [`Label`](#label) | Label of the list. | -| `listType` | [`String!`](#string) | Type of the list. | -| `position` | [`Int`](#int) | Position of the list within the board. | -| `title` | [`String!`](#string) | Title of the list. | +#### Fields -### `EpicListConnection` +| Name | Type | Description | +| ---- | ---- | ----------- | +| `collapsed` | [`Boolean`](#boolean) | Indicates if this list is collapsed for this user. | +| `epicsCount` | [`Int`](#int) | Count of epics in the list. | +| `id` | [`BoardsEpicListID!`](#boardsepiclistid) | Global ID of the board list. | +| `label` | [`Label`](#label) | Label of the list. | +| `listType` | [`String!`](#string) | Type of the list. | +| `position` | [`Int`](#int) | Position of the list within the board. | +| `title` | [`String!`](#string) | Title of the list. | -The connection type for EpicList. +#### Fields with arguments -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[EpicListEdge]`](#epiclistedge) | A list of edges. | -| `nodes` | [`[EpicList]`](#epiclist) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | +##### `EpicList.epics` -### `EpicListEdge` +List epics. -An edge in a connection. +Returns [`EpicConnection`](#epicconnection). -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`EpicList`](#epiclist) | The item at the end of the edge. | +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. -### `EpicMoveListPayload` +###### Arguments -Autogenerated return type of EpicMoveList. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `filters` | [`EpicFilters`](#epicfilters) | Filters applied when selecting epics in the board list. | ### `EpicPermissions` Check permissions for the current user on an epic. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `adminEpic` | [`Boolean!`](#boolean) | Indicates the user can perform `admin_epic` on this resource. | -| `awardEmoji` | [`Boolean!`](#boolean) | Indicates the user can perform `award_emoji` on this resource. | -| `createEpic` | [`Boolean!`](#boolean) | Indicates the user can perform `create_epic` on this resource. | -| `createNote` | [`Boolean!`](#boolean) | Indicates the user can perform `create_note` on this resource. | -| `destroyEpic` | [`Boolean!`](#boolean) | Indicates the user can perform `destroy_epic` on this resource. | -| `readEpic` | [`Boolean!`](#boolean) | Indicates the user can perform `read_epic` on this resource. | -| `readEpicIid` | [`Boolean!`](#boolean) | Indicates the user can perform `read_epic_iid` on this resource. | -| `updateEpic` | [`Boolean!`](#boolean) | Indicates the user can perform `update_epic` on this resource. | +#### Fields -### `EpicSetSubscriptionPayload` - -Autogenerated return type of EpicSetSubscription. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `epic` | [`Epic`](#epic) | The epic after mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `EpicTreeReorderPayload` - -Autogenerated return type of EpicTreeReorder. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `adminEpic` | [`Boolean!`](#boolean) | Indicates the user can perform `admin_epic` on this resource. | +| `awardEmoji` | [`Boolean!`](#boolean) | Indicates the user can perform `award_emoji` on this resource. | +| `createEpic` | [`Boolean!`](#boolean) | Indicates the user can perform `create_epic` on this resource. | +| `createNote` | [`Boolean!`](#boolean) | Indicates the user can perform `create_note` on this resource. | +| `destroyEpic` | [`Boolean!`](#boolean) | Indicates the user can perform `destroy_epic` on this resource. | +| `readEpic` | [`Boolean!`](#boolean) | Indicates the user can perform `read_epic` on this resource. | +| `readEpicIid` | [`Boolean!`](#boolean) | Indicates the user can perform `read_epic_iid` on this resource. | +| `updateEpic` | [`Boolean!`](#boolean) | Indicates the user can perform `update_epic` on this resource. | ### `Event` Representing an event. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `action` | [`EventAction!`](#eventaction) | Action of the event. | -| `author` | [`User!`](#user) | Author of this event. | -| `createdAt` | [`Time!`](#time) | When this event was created. | -| `id` | [`ID!`](#id) | ID of the event. | -| `updatedAt` | [`Time!`](#time) | When this event was updated. | +#### Fields -### `EventConnection` - -The connection type for Event. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[EventEdge]`](#eventedge) | A list of edges. | -| `nodes` | [`[Event]`](#event) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `EventEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`Event`](#event) | The item at the end of the edge. | - -### `ExportRequirementsPayload` - -Autogenerated return type of ExportRequirements. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `action` | [`EventAction!`](#eventaction) | Action of the event. | +| `author` | [`User!`](#user) | Author of this event. | +| `createdAt` | [`Time!`](#time) | When this event was created. | +| `id` | [`ID!`](#id) | ID of the event. | +| `updatedAt` | [`Time!`](#time) | When this event was updated. | ### `ExternalIssue` Represents an external issue. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `createdAt` | [`Time`](#time) | Timestamp of when the issue was created. | -| `externalTracker` | [`String`](#string) | Type of external tracker. | -| `relativeReference` | [`String`](#string) | Relative reference of the issue in the external tracker. | -| `status` | [`String`](#string) | Status of the issue in the external tracker. | -| `title` | [`String`](#string) | Title of the issue in the external tracker. | -| `updatedAt` | [`Time`](#time) | Timestamp of when the issue was updated. | -| `webUrl` | [`String`](#string) | URL to the issue in the external tracker. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `createdAt` | [`Time`](#time) | Timestamp of when the issue was created. | +| `externalTracker` | [`String`](#string) | Type of external tracker. | +| `relativeReference` | [`String`](#string) | Relative reference of the issue in the external tracker. | +| `status` | [`String`](#string) | Status of the issue in the external tracker. | +| `title` | [`String`](#string) | Title of the issue in the external tracker. | +| `updatedAt` | [`Time`](#time) | Timestamp of when the issue was updated. | +| `webUrl` | [`String`](#string) | URL to the issue in the external tracker. | ### `GeoNode` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `containerRepositoriesMaxCapacity` | [`Int`](#int) | The maximum concurrency of container repository sync for this secondary node. | -| `enabled` | [`Boolean`](#boolean) | Indicates whether this Geo node is enabled. | -| `filesMaxCapacity` | [`Int`](#int) | The maximum concurrency of LFS/attachment backfill for this secondary node. | -| `groupWikiRepositoryRegistries` | [`GroupWikiRepositoryRegistryConnection`](#groupwikirepositoryregistryconnection) | Find group wiki repository registries on this Geo node. | -| `id` | [`ID!`](#id) | ID of this GeoNode. | -| `internalUrl` | [`String`](#string) | The URL defined on the primary node that secondary nodes should use to contact it. | -| `mergeRequestDiffRegistries` | [`MergeRequestDiffRegistryConnection`](#mergerequestdiffregistryconnection) | Find merge request diff registries on this Geo node. | -| `minimumReverificationInterval` | [`Int`](#int) | The interval (in days) in which the repository verification is valid. Once expired, it will be reverified. | -| `name` | [`String`](#string) | The unique identifier for this Geo node. | -| `packageFileRegistries` | [`PackageFileRegistryConnection`](#packagefileregistryconnection) | Package file registries of the GeoNode. | -| `pipelineArtifactRegistries` | [`PipelineArtifactRegistryConnection`](#pipelineartifactregistryconnection) | Find pipeline artifact registries on this Geo node. | -| `primary` | [`Boolean`](#boolean) | Indicates whether this Geo node is the primary. | -| `reposMaxCapacity` | [`Int`](#int) | The maximum concurrency of repository backfill for this secondary node. | -| `selectiveSyncNamespaces` | [`NamespaceConnection`](#namespaceconnection) | The namespaces that should be synced, if `selective_sync_type` == `namespaces`. | -| `selectiveSyncShards` | [`[String!]`](#string) | The repository storages whose projects should be synced, if `selective_sync_type` == `shards`. | -| `selectiveSyncType` | [`String`](#string) | Indicates if syncing is limited to only specific groups, or shards. | -| `snippetRepositoryRegistries` | [`SnippetRepositoryRegistryConnection`](#snippetrepositoryregistryconnection) | Find snippet repository registries on this Geo node. | -| `syncObjectStorage` | [`Boolean`](#boolean) | Indicates if this secondary node will replicate blobs in Object Storage. | -| `terraformStateVersionRegistries` | [`TerraformStateVersionRegistryConnection`](#terraformstateversionregistryconnection) | Find terraform state version registries on this Geo node. | -| `url` | [`String`](#string) | The user-facing URL for this Geo node. | -| `verificationMaxCapacity` | [`Int`](#int) | The maximum concurrency of repository verification for this secondary node. | +#### Fields -### `GitlabSubscriptionActivatePayload` +| Name | Type | Description | +| ---- | ---- | ----------- | +| `containerRepositoriesMaxCapacity` | [`Int`](#int) | The maximum concurrency of container repository sync for this secondary node. | +| `enabled` | [`Boolean`](#boolean) | Indicates whether this Geo node is enabled. | +| `filesMaxCapacity` | [`Int`](#int) | The maximum concurrency of LFS/attachment backfill for this secondary node. | +| `id` | [`ID!`](#id) | ID of this GeoNode. | +| `internalUrl` | [`String`](#string) | The URL defined on the primary node that secondary nodes should use to contact it. | +| `minimumReverificationInterval` | [`Int`](#int) | The interval (in days) in which the repository verification is valid. Once expired, it will be reverified. | +| `name` | [`String`](#string) | The unique identifier for this Geo node. | +| `primary` | [`Boolean`](#boolean) | Indicates whether this Geo node is the primary. | +| `reposMaxCapacity` | [`Int`](#int) | The maximum concurrency of repository backfill for this secondary node. | +| `selectiveSyncNamespaces` | [`NamespaceConnection`](#namespaceconnection) | The namespaces that should be synced, if `selective_sync_type` == `namespaces`. | +| `selectiveSyncShards` | [`[String!]`](#string) | The repository storages whose projects should be synced, if `selective_sync_type` == `shards`. | +| `selectiveSyncType` | [`String`](#string) | Indicates if syncing is limited to only specific groups, or shards. | +| `syncObjectStorage` | [`Boolean`](#boolean) | Indicates if this secondary node will replicate blobs in Object Storage. | +| `url` | [`String`](#string) | The user-facing URL for this Geo node. | +| `verificationMaxCapacity` | [`Int`](#int) | The maximum concurrency of repository verification for this secondary node. | -Autogenerated return type of GitlabSubscriptionActivate. +#### Fields with arguments -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `license` | [`CurrentLicense`](#currentlicense) | The current license. | +##### `GeoNode.groupWikiRepositoryRegistries` + +Find group wiki repository registries on this Geo node. + +Returns [`GroupWikiRepositoryRegistryConnection`](#groupwikirepositoryregistryconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `ids` | [`[ID!]`](#id) | Filters registries by their ID. | + +##### `GeoNode.mergeRequestDiffRegistries` + +Find merge request diff registries on this Geo node. + +Returns [`MergeRequestDiffRegistryConnection`](#mergerequestdiffregistryconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `ids` | [`[ID!]`](#id) | Filters registries by their ID. | + +##### `GeoNode.packageFileRegistries` + +Package file registries of the GeoNode. + +Returns [`PackageFileRegistryConnection`](#packagefileregistryconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `ids` | [`[ID!]`](#id) | Filters registries by their ID. | + +##### `GeoNode.pipelineArtifactRegistries` + +Find pipeline artifact registries on this Geo node. + +Returns [`PipelineArtifactRegistryConnection`](#pipelineartifactregistryconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `ids` | [`[ID!]`](#id) | Filters registries by their ID. | + +##### `GeoNode.snippetRepositoryRegistries` + +Find snippet repository registries on this Geo node. + +Returns [`SnippetRepositoryRegistryConnection`](#snippetrepositoryregistryconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `ids` | [`[ID!]`](#id) | Filters registries by their ID. | + +##### `GeoNode.terraformStateVersionRegistries` + +Find terraform state version registries on this Geo node. + +Returns [`TerraformStateVersionRegistryConnection`](#terraformstateversionregistryconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `ids` | [`[ID!]`](#id) | Filters registries by their ID. | ### `GrafanaIntegration` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `createdAt` | [`Time!`](#time) | Timestamp of the issue's creation. | -| `enabled` | [`Boolean!`](#boolean) | Indicates whether Grafana integration is enabled. | -| `grafanaUrl` | [`String!`](#string) | URL for the Grafana host for the Grafana integration. | -| `id` | [`ID!`](#id) | Internal ID of the Grafana integration. | -| `updatedAt` | [`Time!`](#time) | Timestamp of the issue's last activity. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `createdAt` | [`Time!`](#time) | Timestamp of the issue's creation. | +| `enabled` | [`Boolean!`](#boolean) | Indicates whether Grafana integration is enabled. | +| `grafanaUrl` | [`String!`](#string) | URL for the Grafana host for the Grafana integration. | +| `id` | [`ID!`](#id) | Internal ID of the Grafana integration. | +| `updatedAt` | [`Time!`](#time) | Timestamp of the issue's last activity. | ### `Group` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `actualRepositorySizeLimit` | [`Float`](#float) | Size limit for repositories in the namespace in bytes. | -| `additionalPurchasedStorageSize` | [`Float`](#float) | Additional storage purchased for the root namespace in bytes. | -| `autoDevopsEnabled` | [`Boolean`](#boolean) | Indicates whether Auto DevOps is enabled for all projects within this group. | -| `avatarUrl` | [`String`](#string) | Avatar URL of the group. | -| `billableMembersCount` | [`Int`](#int) | The number of billable users in the group. | -| `board` | [`Board`](#board) | A single board of the group. | -| `boards` | [`BoardConnection`](#boardconnection) | Boards of the group. | -| `codeCoverageActivities` | [`CodeCoverageActivityConnection`](#codecoverageactivityconnection) | Represents the code coverage activity for this group. | -| `complianceFrameworks` | [`ComplianceFrameworkConnection`](#complianceframeworkconnection) | Compliance frameworks available to projects in this namespace. Available only when feature flag `ff_custom_compliance_frameworks` is enabled. | -| `containerRepositories` | [`ContainerRepositoryConnection`](#containerrepositoryconnection) | Container repositories of the group. | -| `containerRepositoriesCount` | [`Int!`](#int) | Number of container repositories in the group. | -| `containsLockedProjects` | [`Boolean!`](#boolean) | Includes at least one project where the repository size exceeds the limit. | -| `customEmoji` | [`CustomEmojiConnection`](#customemojiconnection) | Custom emoji within this namespace. Available only when feature flag `custom_emoji` is enabled. | -| `description` | [`String`](#string) | Description of the namespace. | -| `descriptionHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `description`. | -| `emailsDisabled` | [`Boolean`](#boolean) | Indicates if a group has email notifications disabled. | -| `epic` | [`Epic`](#epic) | Find a single epic. | -| `epicBoard` | [`EpicBoard`](#epicboard) | Find a single epic board. | -| `epicBoards` | [`EpicBoardConnection`](#epicboardconnection) | Find epic boards. | -| `epics` | [`EpicConnection`](#epicconnection) | Find epics. | -| `epicsEnabled` | [`Boolean`](#boolean) | Indicates if Epics are enabled for namespace. | -| `fullName` | [`String!`](#string) | Full name of the namespace. | -| `fullPath` | [`ID!`](#id) | Full path of the namespace. | -| `groupMembers` | [`GroupMemberConnection`](#groupmemberconnection) | A membership of a user within this group. | -| `id` | [`ID!`](#id) | ID of the namespace. | -| `isTemporaryStorageIncreaseEnabled` | [`Boolean!`](#boolean) | Status of the temporary storage increase. | -| `issues` | [`IssueConnection`](#issueconnection) | Issues for projects in this group. | -| `iterationCadences` | [`IterationCadenceConnection`](#iterationcadenceconnection) | Find iteration cadences. | -| `iterations` | [`IterationConnection`](#iterationconnection) | Find iterations. | -| `label` | [`Label`](#label) | A label available on this group. | -| `labels` | [`LabelConnection`](#labelconnection) | Labels available on this group. | -| `lfsEnabled` | [`Boolean`](#boolean) | Indicates if Large File Storage (LFS) is enabled for namespace. | -| `mentionsDisabled` | [`Boolean`](#boolean) | Indicates if a group is disabled from getting mentioned. | -| `mergeRequests` | [`MergeRequestConnection`](#mergerequestconnection) | Merge requests for projects in this group. | -| `milestones` | [`MilestoneConnection`](#milestoneconnection) | Milestones of the group. | -| `name` | [`String!`](#string) | Name of the namespace. | -| `packageSettings` | [`PackageSettings`](#packagesettings) | The package settings for the namespace. | -| `packages` | [`PackageConnection`](#packageconnection) | Packages of the group. | -| `parent` | [`Group`](#group) | Parent group. | -| `path` | [`String!`](#string) | Path of the namespace. | -| `projectCreationLevel` | [`String`](#string) | The permission level required to create projects in the group. | -| `projects` | [`ProjectConnection!`](#projectconnection) | Projects within this namespace. | -| `repositorySizeExcessProjectCount` | [`Int!`](#int) | Number of projects in the root namespace where the repository size exceeds the limit. | -| `requestAccessEnabled` | [`Boolean`](#boolean) | Indicates if users can request access to namespace. | -| `requireTwoFactorAuthentication` | [`Boolean`](#boolean) | Indicates if all users in this group are required to set up two-factor authentication. | -| `rootStorageStatistics` | [`RootStorageStatistics`](#rootstoragestatistics) | Aggregated storage statistics of the namespace. Only available for root namespaces. | -| `shareWithGroupLock` | [`Boolean`](#boolean) | Indicates if sharing a project with another group within this group is prevented. | -| `stats` | [`GroupStats`](#groupstats) | Group statistics. | -| `storageSizeLimit` | [`Float`](#float) | Total storage limit of the root namespace in bytes. | -| `subgroupCreationLevel` | [`String`](#string) | The permission level required to create subgroups within the group. | -| `temporaryStorageIncreaseEndsOn` | [`Time`](#time) | Date until the temporary storage increase is active. | -| `timelogs` | [`TimelogConnection!`](#timelogconnection) | Time logged on issues in the group and its subgroups. | -| `totalRepositorySize` | [`Float`](#float) | Total repository size of all projects in the root namespace in bytes. | -| `totalRepositorySizeExcess` | [`Float`](#float) | Total excess repository size of all projects in the root namespace in bytes. | -| `twoFactorGracePeriod` | [`Int`](#int) | Time before two-factor authentication is enforced. | -| `userPermissions` | [`GroupPermissions!`](#grouppermissions) | Permissions for the current user on the resource. | -| `visibility` | [`String`](#string) | Visibility of the namespace. | -| `vulnerabilities` | [`VulnerabilityConnection`](#vulnerabilityconnection) | Vulnerabilities reported on the projects in the group and its subgroups. | -| `vulnerabilitiesCountByDay` | [`VulnerabilitiesCountByDayConnection`](#vulnerabilitiescountbydayconnection) | Number of vulnerabilities per day for the projects in the group and its subgroups. | -| `vulnerabilitiesCountByDayAndSeverity` **{warning-solid}** | [`VulnerabilitiesCountByDayAndSeverityConnection`](#vulnerabilitiescountbydayandseverityconnection) | **Deprecated** in 13.3. Use `vulnerabilitiesCountByDay`. | -| `vulnerabilityGrades` | [`[VulnerableProjectsByGrade!]!`](#vulnerableprojectsbygrade) | Represents vulnerable project counts for each grade. | -| `vulnerabilityScanners` | [`VulnerabilityScannerConnection`](#vulnerabilityscannerconnection) | Vulnerability scanners reported on the project vulnerabilities of the group and its subgroups. | -| `vulnerabilitySeveritiesCount` | [`VulnerabilitySeveritiesCount`](#vulnerabilityseveritiescount) | Counts for each vulnerability severity in the group and its subgroups. | -| `webUrl` | [`String!`](#string) | Web URL of the group. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `actualRepositorySizeLimit` | [`Float`](#float) | Size limit for repositories in the namespace in bytes. | +| `additionalPurchasedStorageSize` | [`Float`](#float) | Additional storage purchased for the root namespace in bytes. | +| `autoDevopsEnabled` | [`Boolean`](#boolean) | Indicates whether Auto DevOps is enabled for all projects within this group. | +| `avatarUrl` | [`String`](#string) | Avatar URL of the group. | +| `billableMembersCount` | [`Int`](#int) | The number of billable users in the group. | +| `containerRepositoriesCount` | [`Int!`](#int) | Number of container repositories in the group. | +| `containsLockedProjects` | [`Boolean!`](#boolean) | Includes at least one project where the repository size exceeds the limit. | +| `customEmoji` | [`CustomEmojiConnection`](#customemojiconnection) | Custom emoji within this namespace. Available only when feature flag `custom_emoji` is enabled. | +| `description` | [`String`](#string) | Description of the namespace. | +| `descriptionHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `description`. | +| `emailsDisabled` | [`Boolean`](#boolean) | Indicates if a group has email notifications disabled. | +| `epicBoards` | [`EpicBoardConnection`](#epicboardconnection) | Find epic boards. | +| `epicsEnabled` | [`Boolean`](#boolean) | Indicates if Epics are enabled for namespace. | +| `fullName` | [`String!`](#string) | Full name of the namespace. | +| `fullPath` | [`ID!`](#id) | Full path of the namespace. | +| `id` | [`ID!`](#id) | ID of the namespace. | +| `isTemporaryStorageIncreaseEnabled` | [`Boolean!`](#boolean) | Status of the temporary storage increase. | +| `lfsEnabled` | [`Boolean`](#boolean) | Indicates if Large File Storage (LFS) is enabled for namespace. | +| `mentionsDisabled` | [`Boolean`](#boolean) | Indicates if a group is disabled from getting mentioned. | +| `name` | [`String!`](#string) | Name of the namespace. | +| `packageSettings` | [`PackageSettings`](#packagesettings) | The package settings for the namespace. | +| `packages` | [`PackageConnection`](#packageconnection) | Packages of the group. | +| `parent` | [`Group`](#group) | Parent group. | +| `path` | [`String!`](#string) | Path of the namespace. | +| `projectCreationLevel` | [`String`](#string) | The permission level required to create projects in the group. | +| `repositorySizeExcessProjectCount` | [`Int!`](#int) | Number of projects in the root namespace where the repository size exceeds the limit. | +| `requestAccessEnabled` | [`Boolean`](#boolean) | Indicates if users can request access to namespace. | +| `requireTwoFactorAuthentication` | [`Boolean`](#boolean) | Indicates if all users in this group are required to set up two-factor authentication. | +| `rootStorageStatistics` | [`RootStorageStatistics`](#rootstoragestatistics) | Aggregated storage statistics of the namespace. Only available for root namespaces. | +| `shareWithGroupLock` | [`Boolean`](#boolean) | Indicates if sharing a project with another group within this group is prevented. | +| `stats` | [`GroupStats`](#groupstats) | Group statistics. | +| `storageSizeLimit` | [`Float`](#float) | Total storage limit of the root namespace in bytes. | +| `subgroupCreationLevel` | [`String`](#string) | The permission level required to create subgroups within the group. | +| `temporaryStorageIncreaseEndsOn` | [`Time`](#time) | Date until the temporary storage increase is active. | +| `totalRepositorySize` | [`Float`](#float) | Total repository size of all projects in the root namespace in bytes. | +| `totalRepositorySizeExcess` | [`Float`](#float) | Total excess repository size of all projects in the root namespace in bytes. | +| `twoFactorGracePeriod` | [`Int`](#int) | Time before two-factor authentication is enforced. | +| `userPermissions` | [`GroupPermissions!`](#grouppermissions) | Permissions for the current user on the resource. | +| `visibility` | [`String`](#string) | Visibility of the namespace. | +| `vulnerabilityScanners` | [`VulnerabilityScannerConnection`](#vulnerabilityscannerconnection) | Vulnerability scanners reported on the project vulnerabilities of the group and its subgroups. | +| `webUrl` | [`String!`](#string) | Web URL of the group. | + +#### Fields with arguments + +##### `Group.board` + +A single board of the group. + +Returns [`Board`](#board). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `id` | [`BoardID!`](#boardid) | The board's ID. | + +##### `Group.boards` + +Boards of the group. + +Returns [`BoardConnection`](#boardconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `id` | [`BoardID`](#boardid) | Find a board by its ID. | + +##### `Group.codeCoverageActivities` + +Represents the code coverage activity for this group. + +Returns [`CodeCoverageActivityConnection`](#codecoverageactivityconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `startDate` | [`Date!`](#date) | First day for which to fetch code coverage activity (maximum time window is set to 90 days). | + +##### `Group.complianceFrameworks` + +Compliance frameworks available to projects in this namespace. Available only when feature flag `ff_custom_compliance_frameworks` is enabled. + +Returns [`ComplianceFrameworkConnection`](#complianceframeworkconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `id` | [`ComplianceManagementFrameworkID`](#compliancemanagementframeworkid) | Global ID of a specific compliance framework to return. | + +##### `Group.containerRepositories` + +Container repositories of the group. + +Returns [`ContainerRepositoryConnection`](#containerrepositoryconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `name` | [`String`](#string) | Filter the container repositories by their name. | +| `sort` | [`ContainerRepositorySort`](#containerrepositorysort) | Sort container repositories by this criteria. | + +##### `Group.epic` + +Find a single epic. + +Returns [`Epic`](#epic). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `authorUsername` | [`String`](#string) | Filter epics by author. | +| `confidential` | [`Boolean`](#boolean) | Filter epics by given confidentiality. | +| `endDate` **{warning-solid}** | [`Time`](#time) | **Deprecated** in 13.5. Use timeframe.end. | +| `iid` | [`ID`](#id) | IID of the epic, e.g., "1". | +| `iidStartsWith` | [`String`](#string) | Filter epics by IID for autocomplete. | +| `iids` | [`[ID!]`](#id) | List of IIDs of epics, e.g., [1, 2]. | +| `includeDescendantGroups` | [`Boolean`](#boolean) | Include epics from descendant groups. | +| `labelName` | [`[String!]`](#string) | Filter epics by labels. | +| `milestoneTitle` | [`String`](#string) | Filter epics by milestone title, computed from epic's issues. | +| `myReactionEmoji` | [`String`](#string) | Filter by reaction emoji applied by the current user. | +| `search` | [`String`](#string) | Search query for epic title or description. | +| `sort` | [`EpicSort`](#epicsort) | List epics by sort order. | +| `startDate` **{warning-solid}** | [`Time`](#time) | **Deprecated** in 13.5. Use timeframe.start. | +| `state` | [`EpicState`](#epicstate) | Filter epics by state. | +| `timeframe` | [`Timeframe`](#timeframe) | List items overlapping the given timeframe. | + +##### `Group.epicBoard` + +Find a single epic board. + +Returns [`EpicBoard`](#epicboard). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `id` | [`BoardsEpicBoardID!`](#boardsepicboardid) | Find an epic board by ID. | + +##### `Group.epics` + +Find epics. + +Returns [`EpicConnection`](#epicconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `authorUsername` | [`String`](#string) | Filter epics by author. | +| `confidential` | [`Boolean`](#boolean) | Filter epics by given confidentiality. | +| `endDate` **{warning-solid}** | [`Time`](#time) | **Deprecated** in 13.5. Use timeframe.end. | +| `iid` | [`ID`](#id) | IID of the epic, e.g., "1". | +| `iidStartsWith` | [`String`](#string) | Filter epics by IID for autocomplete. | +| `iids` | [`[ID!]`](#id) | List of IIDs of epics, e.g., [1, 2]. | +| `includeDescendantGroups` | [`Boolean`](#boolean) | Include epics from descendant groups. | +| `labelName` | [`[String!]`](#string) | Filter epics by labels. | +| `milestoneTitle` | [`String`](#string) | Filter epics by milestone title, computed from epic's issues. | +| `myReactionEmoji` | [`String`](#string) | Filter by reaction emoji applied by the current user. | +| `search` | [`String`](#string) | Search query for epic title or description. | +| `sort` | [`EpicSort`](#epicsort) | List epics by sort order. | +| `startDate` **{warning-solid}** | [`Time`](#time) | **Deprecated** in 13.5. Use timeframe.start. | +| `state` | [`EpicState`](#epicstate) | Filter epics by state. | +| `timeframe` | [`Timeframe`](#timeframe) | List items overlapping the given timeframe. | + +##### `Group.groupMembers` + +A membership of a user within this group. + +Returns [`GroupMemberConnection`](#groupmemberconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `relations` | [`[GroupMemberRelation!]`](#groupmemberrelation) | Filter members by the given member relations. | +| `search` | [`String`](#string) | Search query. | + +##### `Group.issues` + +Issues for projects in this group. + +Returns [`IssueConnection`](#issueconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `assigneeId` | [`String`](#string) | ID of a user assigned to the issues, "none" and "any" values are supported. | +| `assigneeUsername` **{warning-solid}** | [`String`](#string) | **Deprecated** in 13.11. Use `assigneeUsernames`. | +| `assigneeUsernames` | [`[String!]`](#string) | Usernames of users assigned to the issue. | +| `authorUsername` | [`String`](#string) | Username of the author of the issue. | +| `closedAfter` | [`Time`](#time) | Issues closed after this date. | +| `closedBefore` | [`Time`](#time) | Issues closed before this date. | +| `createdAfter` | [`Time`](#time) | Issues created after this date. | +| `createdBefore` | [`Time`](#time) | Issues created before this date. | +| `epicId` | [`String`](#string) | ID of an epic associated with the issues, "none" and "any" values are supported. | +| `iid` | [`String`](#string) | IID of the issue. For example, "1". | +| `iids` | [`[String!]`](#string) | List of IIDs of issues. For example, ["1", "2"]. | +| `includeSubgroups` | [`Boolean`](#boolean) | Include issues belonging to subgroups. | +| `iterationId` | [`[ID]`](#id) | List of iteration Global IDs applied to the issue. | +| `iterationWildcardId` | [`IterationWildcardId`](#iterationwildcardid) | Filter by iteration ID wildcard. | +| `labelName` | [`[String]`](#string) | Labels applied to this issue. | +| `milestoneTitle` | [`[String]`](#string) | Milestone applied to this issue. | +| `not` | [`NegatedIssueFilterInput`](#negatedissuefilterinput) | Negated arguments. | +| `search` | [`String`](#string) | Search query for issue title or description. | +| `sort` | [`IssueSort`](#issuesort) | Sort issues by this criteria. | +| `state` | [`IssuableState`](#issuablestate) | Current state of this issue. | +| `types` | [`[IssueType!]`](#issuetype) | Filter issues by the given issue types. | +| `updatedAfter` | [`Time`](#time) | Issues updated after this date. | +| `updatedBefore` | [`Time`](#time) | Issues updated before this date. | +| `weight` | [`String`](#string) | Weight applied to the issue, "none" and "any" values are supported. | + +##### `Group.iterationCadences` + +Find iteration cadences. + +Returns [`IterationCadenceConnection`](#iterationcadenceconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `active` | [`Boolean`](#boolean) | Whether the iteration cadence is active. | +| `automatic` | [`Boolean`](#boolean) | Whether the iteration cadence should automatically generate future iterations. | +| `durationInWeeks` | [`Int`](#int) | Duration in weeks of the iterations within this cadence. | +| `id` | [`IterationsCadenceID`](#iterationscadenceid) | Global ID of the iteration cadence to look up. | +| `includeAncestorGroups` | [`Boolean`](#boolean) | Whether to include ancestor groups to search iterations cadences in. | +| `title` | [`String`](#string) | Fuzzy search by title. | + +##### `Group.iterations` + +Find iterations. + +Returns [`IterationConnection`](#iterationconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `endDate` **{warning-solid}** | [`Time`](#time) | **Deprecated** in 13.5. Use timeframe.end. | +| `id` | [`ID`](#id) | Global ID of the Iteration to look up. | +| `iid` | [`ID`](#id) | Internal ID of the Iteration to look up. | +| `includeAncestors` | [`Boolean`](#boolean) | Whether to include ancestor iterations. Defaults to true. | +| `iterationCadenceIds` | [`[IterationsCadenceID!]`](#iterationscadenceid) | Global iteration cadence IDs by which to look up the iterations. | +| `startDate` **{warning-solid}** | [`Time`](#time) | **Deprecated** in 13.5. Use timeframe.start. | +| `state` | [`IterationState`](#iterationstate) | Filter iterations by state. | +| `timeframe` | [`Timeframe`](#timeframe) | List items overlapping the given timeframe. | +| `title` | [`String`](#string) | Fuzzy search by title. | + +##### `Group.label` + +A label available on this group. + +Returns [`Label`](#label). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `title` | [`String!`](#string) | Title of the label. | + +##### `Group.labels` + +Labels available on this group. + +Returns [`LabelConnection`](#labelconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `includeAncestorGroups` | [`Boolean`](#boolean) | Include labels from ancestor groups. | +| `includeDescendantGroups` | [`Boolean`](#boolean) | Include labels from descendant groups. | +| `onlyGroupLabels` | [`Boolean`](#boolean) | Include only group level labels. | +| `searchTerm` | [`String`](#string) | A search term to find labels with. | + +##### `Group.mergeRequests` + +Merge requests for projects in this group. + +Returns [`MergeRequestConnection`](#mergerequestconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `assigneeUsername` | [`String`](#string) | Username of the assignee. | +| `authorUsername` | [`String`](#string) | Username of the author. | +| `iids` | [`[String!]`](#string) | Array of IIDs of merge requests, for example `[1, 2]`. | +| `includeSubgroups` | [`Boolean`](#boolean) | Include merge requests belonging to subgroups. | +| `labels` | [`[String!]`](#string) | Array of label names. All resolved merge requests will have all of these labels. | +| `mergedAfter` | [`Time`](#time) | Merge requests merged after this date. | +| `mergedBefore` | [`Time`](#time) | Merge requests merged before this date. | +| `milestoneTitle` | [`String`](#string) | Title of the milestone. | +| `not` | [`MergeRequestsResolverNegatedParams`](#mergerequestsresolvernegatedparams) | List of negated arguments. Warning: this argument is experimental and a subject to change in future. | +| `sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. | +| `sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. | +| `state` | [`MergeRequestState`](#mergerequeststate) | A merge request state. If provided, all resolved merge requests will have this state. | +| `targetBranches` | [`[String!]`](#string) | Array of target branch names. All resolved merge requests will have one of these branches as their target. | + +##### `Group.milestones` + +Milestones of the group. + +Returns [`MilestoneConnection`](#milestoneconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `containingDate` | [`Time`](#time) | A date that the milestone contains. | +| `endDate` **{warning-solid}** | [`Time`](#time) | **Deprecated** in 13.5. Use timeframe.end. | +| `ids` | [`[ID!]`](#id) | Array of global milestone IDs, e.g., `"gid://gitlab/Milestone/1"`. | +| `includeAncestors` | [`Boolean`](#boolean) | Include milestones from all parent groups. | +| `includeDescendants` | [`Boolean`](#boolean) | Include milestones from all subgroups and subprojects. | +| `searchTitle` | [`String`](#string) | A search string for the title. | +| `startDate` **{warning-solid}** | [`Time`](#time) | **Deprecated** in 13.5. Use timeframe.start. | +| `state` | [`MilestoneStateEnum`](#milestonestateenum) | Filter milestones by state. | +| `timeframe` | [`Timeframe`](#timeframe) | List items overlapping the given timeframe. | +| `title` | [`String`](#string) | The title of the milestone. | + +##### `Group.projects` + +Projects within this namespace. + +Returns [`ProjectConnection!`](#projectconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `hasCodeCoverage` | [`Boolean`](#boolean) | Returns only the projects which have code coverage. | +| `hasVulnerabilities` | [`Boolean`](#boolean) | Returns only the projects which have vulnerabilities. | +| `ids` | [`[ID!]`](#id) | Filter projects by IDs. | +| `includeSubgroups` | [`Boolean`](#boolean) | Include also subgroup projects. | +| `search` | [`String`](#string) | Search project with most similar names or paths. | +| `sort` | [`NamespaceProjectSort`](#namespaceprojectsort) | Sort projects by this criteria. | + +##### `Group.timelogs` + +Time logged on issues in the group and its subgroups. + +Returns [`TimelogConnection!`](#timelogconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `endDate` | [`Time`](#time) | List time logs within a date range where the logged date is equal to or before endDate. | +| `endTime` | [`Time`](#time) | List time-logs within a time range where the logged time is equal to or before endTime. | +| `startDate` | [`Time`](#time) | List time logs within a date range where the logged date is equal to or after startDate. | +| `startTime` | [`Time`](#time) | List time-logs within a time range where the logged time is equal to or after startTime. | + +##### `Group.vulnerabilities` + +Vulnerabilities reported on the projects in the group and its subgroups. + +Returns [`VulnerabilityConnection`](#vulnerabilityconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `hasIssues` | [`Boolean`](#boolean) | Returns only the vulnerabilities which have linked issues. | +| `hasResolution` | [`Boolean`](#boolean) | Returns only the vulnerabilities which have been resolved on default branch. | +| `projectId` | [`[ID!]`](#id) | Filter vulnerabilities by project. | +| `reportType` | [`[VulnerabilityReportType!]`](#vulnerabilityreporttype) | Filter vulnerabilities by report type. | +| `scanner` | [`[String!]`](#string) | Filter vulnerabilities by VulnerabilityScanner.externalId. | +| `scannerId` | [`[VulnerabilitiesScannerID!]`](#vulnerabilitiesscannerid) | Filter vulnerabilities by scanner ID. | +| `severity` | [`[VulnerabilitySeverity!]`](#vulnerabilityseverity) | Filter vulnerabilities by severity. | +| `sort` | [`VulnerabilitySort`](#vulnerabilitysort) | List vulnerabilities by sort order. | +| `state` | [`[VulnerabilityState!]`](#vulnerabilitystate) | Filter vulnerabilities by state. | + +##### `Group.vulnerabilitiesCountByDay` + +Number of vulnerabilities per day for the projects in the group and its subgroups. + +Returns [`VulnerabilitiesCountByDayConnection`](#vulnerabilitiescountbydayconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `endDate` | [`ISO8601Date!`](#iso8601date) | Last day for which to fetch vulnerability history. | +| `startDate` | [`ISO8601Date!`](#iso8601date) | First day for which to fetch vulnerability history. | + +##### `Group.vulnerabilitiesCountByDayAndSeverity` + +Number of vulnerabilities per severity level, per day, for the projects in the group and its subgroups. + +WARNING: +**Deprecated** in 13.3. +Use `vulnerabilitiesCountByDay`. + +Returns [`VulnerabilitiesCountByDayAndSeverityConnection`](#vulnerabilitiescountbydayandseverityconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `endDate` | [`ISO8601Date!`](#iso8601date) | Last day for which to fetch vulnerability history. | +| `startDate` | [`ISO8601Date!`](#iso8601date) | First day for which to fetch vulnerability history. | + +##### `Group.vulnerabilityGrades` + +Represents vulnerable project counts for each grade. + +Returns [`[VulnerableProjectsByGrade!]!`](#vulnerableprojectsbygrade). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `includeSubgroups` | [`Boolean`](#boolean) | Include grades belonging to subgroups. | + +##### `Group.vulnerabilitySeveritiesCount` + +Counts for each vulnerability severity in the group and its subgroups. + +Returns [`VulnerabilitySeveritiesCount`](#vulnerabilityseveritiescount). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `projectId` | [`[ID!]`](#id) | Filter vulnerabilities by project. | +| `reportType` | [`[VulnerabilityReportType!]`](#vulnerabilityreporttype) | Filter vulnerabilities by report type. | +| `scanner` | [`[String!]`](#string) | Filter vulnerabilities by scanner. | +| `severity` | [`[VulnerabilitySeverity!]`](#vulnerabilityseverity) | Filter vulnerabilities by severity. | +| `state` | [`[VulnerabilityState!]`](#vulnerabilitystate) | Filter vulnerabilities by state. | ### `GroupMember` Represents a Group Membership. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `accessLevel` | [`AccessLevel`](#accesslevel) | GitLab::Access level. | -| `createdAt` | [`Time`](#time) | Date and time the membership was created. | -| `createdBy` | [`User`](#user) | User that authorized membership. | -| `expiresAt` | [`Time`](#time) | Date and time the membership expires. | -| `group` | [`Group`](#group) | Group that a User is a member of. | -| `id` | [`ID!`](#id) | ID of the member. | -| `updatedAt` | [`Time`](#time) | Date and time the membership was last updated. | -| `user` | [`User!`](#user) | User that is associated with the member object. | -| `userPermissions` | [`GroupPermissions!`](#grouppermissions) | Permissions for the current user on the resource. | +#### Fields -### `GroupMemberConnection` - -The connection type for GroupMember. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[GroupMemberEdge]`](#groupmemberedge) | A list of edges. | -| `nodes` | [`[GroupMember]`](#groupmember) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `GroupMemberEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`GroupMember`](#groupmember) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `accessLevel` | [`AccessLevel`](#accesslevel) | GitLab::Access level. | +| `createdAt` | [`Time`](#time) | Date and time the membership was created. | +| `createdBy` | [`User`](#user) | User that authorized membership. | +| `expiresAt` | [`Time`](#time) | Date and time the membership expires. | +| `group` | [`Group`](#group) | Group that a User is a member of. | +| `id` | [`ID!`](#id) | ID of the member. | +| `updatedAt` | [`Time`](#time) | Date and time the membership was last updated. | +| `user` | [`User!`](#user) | User that is associated with the member object. | +| `userPermissions` | [`GroupPermissions!`](#grouppermissions) | Permissions for the current user on the resource. | ### `GroupPermissions` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `readGroup` | [`Boolean!`](#boolean) | Indicates the user can perform `read_group` on this resource. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `readGroup` | [`Boolean!`](#boolean) | Indicates the user can perform `read_group` on this resource. | ### `GroupReleaseStats` Contains release-related statistics about a group. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `releasesCount` | [`Int`](#int) | Total number of releases in all descendant projects of the group. Will always return `null` if `group_level_release_statistics` feature flag is disabled. | -| `releasesPercentage` | [`Int`](#int) | Percentage of the group's descendant projects that have at least one release. Will always return `null` if `group_level_release_statistics` feature flag is disabled. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `releasesCount` | [`Int`](#int) | Total number of releases in all descendant projects of the group. Will always return `null` if `group_level_release_statistics` feature flag is disabled. | +| `releasesPercentage` | [`Int`](#int) | Percentage of the group's descendant projects that have at least one release. Will always return `null` if `group_level_release_statistics` feature flag is disabled. | ### `GroupStats` Contains statistics about a group. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `releaseStats` | [`GroupReleaseStats`](#groupreleasestats) | Statistics related to releases within the group. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `releaseStats` | [`GroupReleaseStats`](#groupreleasestats) | Statistics related to releases within the group. | ### `GroupWikiRepositoryRegistry` Represents the Geo sync and verification state of a group wiki repository. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `createdAt` | [`Time`](#time) | Timestamp when the GroupWikiRepositoryRegistry was created. | -| `groupWikiRepositoryId` | [`ID!`](#id) | ID of the Group Wiki Repository. | -| `id` | [`ID!`](#id) | ID of the GroupWikiRepositoryRegistry. | -| `lastSyncFailure` | [`String`](#string) | Error message during sync of the GroupWikiRepositoryRegistry. | -| `lastSyncedAt` | [`Time`](#time) | Timestamp of the most recent successful sync of the GroupWikiRepositoryRegistry. | -| `retryAt` | [`Time`](#time) | Timestamp after which the GroupWikiRepositoryRegistry should be resynced. | -| `retryCount` | [`Int`](#int) | Number of consecutive failed sync attempts of the GroupWikiRepositoryRegistry. | -| `state` | [`RegistryState`](#registrystate) | Sync state of the GroupWikiRepositoryRegistry. | +#### Fields -### `GroupWikiRepositoryRegistryConnection` - -The connection type for GroupWikiRepositoryRegistry. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[GroupWikiRepositoryRegistryEdge]`](#groupwikirepositoryregistryedge) | A list of edges. | -| `nodes` | [`[GroupWikiRepositoryRegistry]`](#groupwikirepositoryregistry) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `GroupWikiRepositoryRegistryEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`GroupWikiRepositoryRegistry`](#groupwikirepositoryregistry) | The item at the end of the edge. | - -### `HttpIntegrationCreatePayload` - -Autogenerated return type of HttpIntegrationCreate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `integration` | [`AlertManagementHttpIntegration`](#alertmanagementhttpintegration) | The HTTP integration. | - -### `HttpIntegrationDestroyPayload` - -Autogenerated return type of HttpIntegrationDestroy. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `integration` | [`AlertManagementHttpIntegration`](#alertmanagementhttpintegration) | The HTTP integration. | - -### `HttpIntegrationResetTokenPayload` - -Autogenerated return type of HttpIntegrationResetToken. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `integration` | [`AlertManagementHttpIntegration`](#alertmanagementhttpintegration) | The HTTP integration. | - -### `HttpIntegrationUpdatePayload` - -Autogenerated return type of HttpIntegrationUpdate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `integration` | [`AlertManagementHttpIntegration`](#alertmanagementhttpintegration) | The HTTP integration. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `createdAt` | [`Time`](#time) | Timestamp when the GroupWikiRepositoryRegistry was created. | +| `groupWikiRepositoryId` | [`ID!`](#id) | ID of the Group Wiki Repository. | +| `id` | [`ID!`](#id) | ID of the GroupWikiRepositoryRegistry. | +| `lastSyncFailure` | [`String`](#string) | Error message during sync of the GroupWikiRepositoryRegistry. | +| `lastSyncedAt` | [`Time`](#time) | Timestamp of the most recent successful sync of the GroupWikiRepositoryRegistry. | +| `retryAt` | [`Time`](#time) | Timestamp after which the GroupWikiRepositoryRegistry should be resynced. | +| `retryCount` | [`Int`](#int) | Number of consecutive failed sync attempts of the GroupWikiRepositoryRegistry. | +| `state` | [`RegistryState`](#registrystate) | Sync state of the GroupWikiRepositoryRegistry. | ### `IncidentManagementOncallRotation` Describes an incident management on-call rotation. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `activePeriod` | [`OncallRotationActivePeriodType`](#oncallrotationactiveperiodtype) | Active period for the on-call rotation. | -| `endsAt` | [`Time`](#time) | End date and time of the on-call rotation. | -| `id` | [`IncidentManagementOncallRotationID!`](#incidentmanagementoncallrotationid) | ID of the on-call rotation. | -| `length` | [`Int`](#int) | Length of the on-call schedule, in the units specified by lengthUnit. | -| `lengthUnit` | [`OncallRotationUnitEnum`](#oncallrotationunitenum) | Unit of the on-call rotation length. | -| `name` | [`String!`](#string) | Name of the on-call rotation. | -| `participants` | [`OncallParticipantTypeConnection`](#oncallparticipanttypeconnection) | Participants of the on-call rotation. | -| `shifts` | [`IncidentManagementOncallShiftConnection`](#incidentmanagementoncallshiftconnection) | Blocks of time for which a participant is on-call within a given time frame. Time frame cannot exceed one month. | -| `startsAt` | [`Time`](#time) | Start date of the on-call rotation. | +#### Fields -### `IncidentManagementOncallRotationConnection` +| Name | Type | Description | +| ---- | ---- | ----------- | +| `activePeriod` | [`OncallRotationActivePeriodType`](#oncallrotationactiveperiodtype) | Active period for the on-call rotation. | +| `endsAt` | [`Time`](#time) | End date and time of the on-call rotation. | +| `id` | [`IncidentManagementOncallRotationID!`](#incidentmanagementoncallrotationid) | ID of the on-call rotation. | +| `length` | [`Int`](#int) | Length of the on-call schedule, in the units specified by lengthUnit. | +| `lengthUnit` | [`OncallRotationUnitEnum`](#oncallrotationunitenum) | Unit of the on-call rotation length. | +| `name` | [`String!`](#string) | Name of the on-call rotation. | +| `participants` | [`OncallParticipantTypeConnection`](#oncallparticipanttypeconnection) | Participants of the on-call rotation. | +| `startsAt` | [`Time`](#time) | Start date of the on-call rotation. | -The connection type for IncidentManagementOncallRotation. +#### Fields with arguments -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[IncidentManagementOncallRotationEdge]`](#incidentmanagementoncallrotationedge) | A list of edges. | -| `nodes` | [`[IncidentManagementOncallRotation]`](#incidentmanagementoncallrotation) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | +##### `IncidentManagementOncallRotation.shifts` -### `IncidentManagementOncallRotationEdge` +Blocks of time for which a participant is on-call within a given time frame. Time frame cannot exceed one month. -An edge in a connection. +Returns [`IncidentManagementOncallShiftConnection`](#incidentmanagementoncallshiftconnection). -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`IncidentManagementOncallRotation`](#incidentmanagementoncallrotation) | The item at the end of the edge. | +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `endTime` | [`Time!`](#time) | End of timeframe to include shifts for. Cannot exceed one month after start. | +| `startTime` | [`Time!`](#time) | Start of timeframe to include shifts for. | ### `IncidentManagementOncallSchedule` Describes an incident management on-call schedule. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `description` | [`String`](#string) | Description of the on-call schedule. | -| `iid` | [`ID!`](#id) | Internal ID of the on-call schedule. | -| `name` | [`String!`](#string) | Name of the on-call schedule. | -| `rotation` | [`IncidentManagementOncallRotation`](#incidentmanagementoncallrotation) | On-call rotation for the on-call schedule. | -| `rotations` | [`IncidentManagementOncallRotationConnection!`](#incidentmanagementoncallrotationconnection) | On-call rotations for the on-call schedule. | -| `timezone` | [`String!`](#string) | Time zone of the on-call schedule. | +#### Fields -### `IncidentManagementOncallScheduleConnection` +| Name | Type | Description | +| ---- | ---- | ----------- | +| `description` | [`String`](#string) | Description of the on-call schedule. | +| `iid` | [`ID!`](#id) | Internal ID of the on-call schedule. | +| `name` | [`String!`](#string) | Name of the on-call schedule. | +| `rotations` | [`IncidentManagementOncallRotationConnection!`](#incidentmanagementoncallrotationconnection) | On-call rotations for the on-call schedule. | +| `timezone` | [`String!`](#string) | Time zone of the on-call schedule. | -The connection type for IncidentManagementOncallSchedule. +#### Fields with arguments -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[IncidentManagementOncallScheduleEdge]`](#incidentmanagementoncallscheduleedge) | A list of edges. | -| `nodes` | [`[IncidentManagementOncallSchedule]`](#incidentmanagementoncallschedule) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | +##### `IncidentManagementOncallSchedule.rotation` -### `IncidentManagementOncallScheduleEdge` +On-call rotation for the on-call schedule. -An edge in a connection. +Returns [`IncidentManagementOncallRotation`](#incidentmanagementoncallrotation). -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`IncidentManagementOncallSchedule`](#incidentmanagementoncallschedule) | The item at the end of the edge. | +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `id` | [`IncidentManagementOncallRotationID!`](#incidentmanagementoncallrotationid) | ID of the on-call rotation. | ### `IncidentManagementOncallShift` A block of time for which a participant is on-call. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `endsAt` | [`Time`](#time) | End time of the on-call shift. | -| `participant` | [`OncallParticipantType`](#oncallparticipanttype) | Participant assigned to the on-call shift. | -| `startsAt` | [`Time`](#time) | Start time of the on-call shift. | +#### Fields -### `IncidentManagementOncallShiftConnection` - -The connection type for IncidentManagementOncallShift. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[IncidentManagementOncallShiftEdge]`](#incidentmanagementoncallshiftedge) | A list of edges. | -| `nodes` | [`[IncidentManagementOncallShift]`](#incidentmanagementoncallshift) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `IncidentManagementOncallShiftEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`IncidentManagementOncallShift`](#incidentmanagementoncallshift) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `endsAt` | [`Time`](#time) | End time of the on-call shift. | +| `participant` | [`OncallParticipantType`](#oncallparticipanttype) | Participant assigned to the on-call shift. | +| `startsAt` | [`Time`](#time) | Start time of the on-call shift. | ### `InstanceSecurityDashboard` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `projects` | [`ProjectConnection!`](#projectconnection) | Projects selected in Instance Security Dashboard. | -| `vulnerabilityGrades` | [`[VulnerableProjectsByGrade!]!`](#vulnerableprojectsbygrade) | Represents vulnerable project counts for each grade. | -| `vulnerabilityScanners` | [`VulnerabilityScannerConnection`](#vulnerabilityscannerconnection) | Vulnerability scanners reported on the vulnerabilities from projects selected in Instance Security Dashboard. | -| `vulnerabilitySeveritiesCount` | [`VulnerabilitySeveritiesCount`](#vulnerabilityseveritiescount) | Counts for each vulnerability severity from projects selected in Instance Security Dashboard. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `projects` | [`ProjectConnection!`](#projectconnection) | Projects selected in Instance Security Dashboard. | +| `vulnerabilityGrades` | [`[VulnerableProjectsByGrade!]!`](#vulnerableprojectsbygrade) | Represents vulnerable project counts for each grade. | +| `vulnerabilityScanners` | [`VulnerabilityScannerConnection`](#vulnerabilityscannerconnection) | Vulnerability scanners reported on the vulnerabilities from projects selected in Instance Security Dashboard. | + +#### Fields with arguments + +##### `InstanceSecurityDashboard.vulnerabilitySeveritiesCount` + +Counts for each vulnerability severity from projects selected in Instance Security Dashboard. + +Returns [`VulnerabilitySeveritiesCount`](#vulnerabilityseveritiescount). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `projectId` | [`[ID!]`](#id) | Filter vulnerabilities by project. | +| `reportType` | [`[VulnerabilityReportType!]`](#vulnerabilityreporttype) | Filter vulnerabilities by report type. | +| `scanner` | [`[String!]`](#string) | Filter vulnerabilities by scanner. | +| `severity` | [`[VulnerabilitySeverity!]`](#vulnerabilityseverity) | Filter vulnerabilities by severity. | +| `state` | [`[VulnerabilityState!]`](#vulnerabilitystate) | Filter vulnerabilities by state. | ### `Issue` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `alertManagementAlert` | [`AlertManagementAlert`](#alertmanagementalert) | Alert associated to this issue. | -| `assignees` | [`UserConnection`](#userconnection) | Assignees of the issue. | -| `author` | [`User!`](#user) | User that created the issue. | -| `blocked` | [`Boolean!`](#boolean) | Indicates the issue is blocked. | -| `blockedByCount` | [`Int`](#int) | Count of issues blocking this issue. | -| `blockedByIssues` | [`IssueConnection`](#issueconnection) | Issues blocking this issue. | -| `closedAt` | [`Time`](#time) | Timestamp of when the issue was closed. | -| `confidential` | [`Boolean!`](#boolean) | Indicates the issue is confidential. | -| `createNoteEmail` | [`String`](#string) | User specific email address for the issue. | -| `createdAt` | [`Time!`](#time) | Timestamp of when the issue was created. | -| `currentUserTodos` | [`TodoConnection!`](#todoconnection) | To-do items for the current user. | -| `description` | [`String`](#string) | Description of the issue. | -| `descriptionHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `description`. | -| `designCollection` | [`DesignCollection`](#designcollection) | Collection of design images associated with this issue. | -| `discussionLocked` | [`Boolean!`](#boolean) | Indicates discussion is locked on the issue. | -| `discussions` | [`DiscussionConnection!`](#discussionconnection) | All discussions on this noteable. | -| `downvotes` | [`Int!`](#int) | Number of downvotes the issue has received. | -| `dueDate` | [`Time`](#time) | Due date of the issue. | -| `emailsDisabled` | [`Boolean!`](#boolean) | Indicates if a project has email notifications disabled: `true` if email notifications are disabled. | -| `epic` | [`Epic`](#epic) | Epic to which this issue belongs. | -| `healthStatus` | [`HealthStatus`](#healthstatus) | Current health status. | -| `humanTimeEstimate` | [`String`](#string) | Human-readable time estimate of the issue. | -| `humanTotalTimeSpent` | [`String`](#string) | Human-readable total time reported as spent on the issue. | -| `id` | [`ID!`](#id) | ID of the issue. | -| `iid` | [`ID!`](#id) | Internal ID of the issue. | -| `iteration` | [`Iteration`](#iteration) | Iteration of the issue. | -| `labels` | [`LabelConnection`](#labelconnection) | Labels of the issue. | -| `metricImages` | [`[MetricImage!]`](#metricimage) | Metric images associated to the issue. | -| `milestone` | [`Milestone`](#milestone) | Milestone of the issue. | -| `moved` | [`Boolean`](#boolean) | Indicates if issue got moved from other project. | -| `movedTo` | [`Issue`](#issue) | Updated Issue after it got moved to another project. | -| `notes` | [`NoteConnection!`](#noteconnection) | All notes on this noteable. | -| `participants` | [`UserConnection`](#userconnection) | List of participants in the issue. | -| `reference` | [`String!`](#string) | Internal reference of the issue. Returned in shortened format by default. | -| `relativePosition` | [`Int`](#int) | Relative position of the issue (used for positioning in epic tree and issue boards). | -| `severity` | [`IssuableSeverity`](#issuableseverity) | Severity level of the incident. | -| `slaDueAt` | [`Time`](#time) | Timestamp of when the issue SLA expires. | -| `state` | [`IssueState!`](#issuestate) | State of the issue. | -| `statusPagePublishedIncident` | [`Boolean`](#boolean) | Indicates whether an issue is published to the status page. | -| `subscribed` | [`Boolean!`](#boolean) | Indicates the currently logged in user is subscribed to the issue. | -| `taskCompletionStatus` | [`TaskCompletionStatus!`](#taskcompletionstatus) | Task completion status of the issue. | -| `timeEstimate` | [`Int!`](#int) | Time estimate of the issue. | -| `timelogs` | [`TimelogConnection!`](#timelogconnection) | Timelogs on the issue. | -| `title` | [`String!`](#string) | Title of the issue. | -| `titleHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `title`. | -| `totalTimeSpent` | [`Int!`](#int) | Total time reported as spent on the issue. | -| `type` | [`IssueType`](#issuetype) | Type of the issue. | -| `updatedAt` | [`Time!`](#time) | Timestamp of when the issue was last updated. | -| `updatedBy` | [`User`](#user) | User that last updated the issue. | -| `upvotes` | [`Int!`](#int) | Number of upvotes the issue has received. | -| `userDiscussionsCount` | [`Int!`](#int) | Number of user discussions in the issue. | -| `userNotesCount` | [`Int!`](#int) | Number of user notes of the issue. | -| `userPermissions` | [`IssuePermissions!`](#issuepermissions) | Permissions for the current user on the resource. | -| `webPath` | [`String!`](#string) | Web path of the issue. | -| `webUrl` | [`String!`](#string) | Web URL of the issue. | -| `weight` | [`Int`](#int) | Weight of the issue. | +#### Fields -### `IssueConnection` +| Name | Type | Description | +| ---- | ---- | ----------- | +| `alertManagementAlert` | [`AlertManagementAlert`](#alertmanagementalert) | Alert associated to this issue. | +| `assignees` | [`UserConnection`](#userconnection) | Assignees of the issue. | +| `author` | [`User!`](#user) | User that created the issue. | +| `blocked` | [`Boolean!`](#boolean) | Indicates the issue is blocked. | +| `blockedByCount` | [`Int`](#int) | Count of issues blocking this issue. | +| `blockedByIssues` | [`IssueConnection`](#issueconnection) | Issues blocking this issue. | +| `closedAt` | [`Time`](#time) | Timestamp of when the issue was closed. | +| `confidential` | [`Boolean!`](#boolean) | Indicates the issue is confidential. | +| `createNoteEmail` | [`String`](#string) | User specific email address for the issue. | +| `createdAt` | [`Time!`](#time) | Timestamp of when the issue was created. | +| `description` | [`String`](#string) | Description of the issue. | +| `descriptionHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `description`. | +| `designCollection` | [`DesignCollection`](#designcollection) | Collection of design images associated with this issue. | +| `discussionLocked` | [`Boolean!`](#boolean) | Indicates discussion is locked on the issue. | +| `discussions` | [`DiscussionConnection!`](#discussionconnection) | All discussions on this noteable. | +| `downvotes` | [`Int!`](#int) | Number of downvotes the issue has received. | +| `dueDate` | [`Time`](#time) | Due date of the issue. | +| `emailsDisabled` | [`Boolean!`](#boolean) | Indicates if a project has email notifications disabled: `true` if email notifications are disabled. | +| `epic` | [`Epic`](#epic) | Epic to which this issue belongs. | +| `healthStatus` | [`HealthStatus`](#healthstatus) | Current health status. | +| `humanTimeEstimate` | [`String`](#string) | Human-readable time estimate of the issue. | +| `humanTotalTimeSpent` | [`String`](#string) | Human-readable total time reported as spent on the issue. | +| `id` | [`ID!`](#id) | ID of the issue. | +| `iid` | [`ID!`](#id) | Internal ID of the issue. | +| `iteration` | [`Iteration`](#iteration) | Iteration of the issue. | +| `labels` | [`LabelConnection`](#labelconnection) | Labels of the issue. | +| `metricImages` | [`[MetricImage!]`](#metricimage) | Metric images associated to the issue. | +| `milestone` | [`Milestone`](#milestone) | Milestone of the issue. | +| `moved` | [`Boolean`](#boolean) | Indicates if issue got moved from other project. | +| `movedTo` | [`Issue`](#issue) | Updated Issue after it got moved to another project. | +| `notes` | [`NoteConnection!`](#noteconnection) | All notes on this noteable. | +| `participants` | [`UserConnection`](#userconnection) | List of participants in the issue. | +| `relativePosition` | [`Int`](#int) | Relative position of the issue (used for positioning in epic tree and issue boards). | +| `severity` | [`IssuableSeverity`](#issuableseverity) | Severity level of the incident. | +| `slaDueAt` | [`Time`](#time) | Timestamp of when the issue SLA expires. | +| `state` | [`IssueState!`](#issuestate) | State of the issue. | +| `statusPagePublishedIncident` | [`Boolean`](#boolean) | Indicates whether an issue is published to the status page. | +| `subscribed` | [`Boolean!`](#boolean) | Indicates the currently logged in user is subscribed to the issue. | +| `taskCompletionStatus` | [`TaskCompletionStatus!`](#taskcompletionstatus) | Task completion status of the issue. | +| `timeEstimate` | [`Int!`](#int) | Time estimate of the issue. | +| `timelogs` | [`TimelogConnection!`](#timelogconnection) | Timelogs on the issue. | +| `title` | [`String!`](#string) | Title of the issue. | +| `titleHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `title`. | +| `totalTimeSpent` | [`Int!`](#int) | Total time reported as spent on the issue. | +| `type` | [`IssueType`](#issuetype) | Type of the issue. | +| `updatedAt` | [`Time!`](#time) | Timestamp of when the issue was last updated. | +| `updatedBy` | [`User`](#user) | User that last updated the issue. | +| `upvotes` | [`Int!`](#int) | Number of upvotes the issue has received. | +| `userDiscussionsCount` | [`Int!`](#int) | Number of user discussions in the issue. | +| `userNotesCount` | [`Int!`](#int) | Number of user notes of the issue. | +| `userPermissions` | [`IssuePermissions!`](#issuepermissions) | Permissions for the current user on the resource. | +| `webPath` | [`String!`](#string) | Web path of the issue. | +| `webUrl` | [`String!`](#string) | Web URL of the issue. | +| `weight` | [`Int`](#int) | Weight of the issue. | -The connection type for Issue. +#### Fields with arguments -| Field | Type | Description | -| ----- | ---- | ----------- | -| `count` | [`Int!`](#int) | Total count of collection. | -| `edges` | [`[IssueEdge]`](#issueedge) | A list of edges. | -| `nodes` | [`[Issue]`](#issue) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | -| `weight` | [`Int!`](#int) | Total weight of issues collection. | +##### `Issue.currentUserTodos` -### `IssueEdge` +To-do items for the current user. -An edge in a connection. +Returns [`TodoConnection!`](#todoconnection). -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`Issue`](#issue) | The item at the end of the edge. | +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. -### `IssueMoveListPayload` +###### Arguments -Autogenerated return type of IssueMoveList. +| Name | Type | Description | +| ---- | ---- | ----------- | +| `state` | [`TodoStateEnum`](#todostateenum) | State of the to-do items. | -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `issue` | [`Issue`](#issue) | The issue after mutation. | +##### `Issue.reference` -### `IssueMovePayload` +Internal reference of the issue. Returned in shortened format by default. -Autogenerated return type of IssueMove. +Returns [`String!`](#string). -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `issue` | [`Issue`](#issue) | The issue after mutation. | +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `full` | [`Boolean`](#boolean) | Boolean option specifying whether the reference should be returned in full. | ### `IssuePermissions` Check permissions for the current user on a issue. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `adminIssue` | [`Boolean!`](#boolean) | Indicates the user can perform `admin_issue` on this resource. | -| `createDesign` | [`Boolean!`](#boolean) | Indicates the user can perform `create_design` on this resource. | -| `createNote` | [`Boolean!`](#boolean) | Indicates the user can perform `create_note` on this resource. | -| `destroyDesign` | [`Boolean!`](#boolean) | Indicates the user can perform `destroy_design` on this resource. | -| `readDesign` | [`Boolean!`](#boolean) | Indicates the user can perform `read_design` on this resource. | -| `readIssue` | [`Boolean!`](#boolean) | Indicates the user can perform `read_issue` on this resource. | -| `reopenIssue` | [`Boolean!`](#boolean) | Indicates the user can perform `reopen_issue` on this resource. | -| `updateIssue` | [`Boolean!`](#boolean) | Indicates the user can perform `update_issue` on this resource. | +#### Fields -### `IssueSetAssigneesPayload` - -Autogenerated return type of IssueSetAssignees. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `issue` | [`Issue`](#issue) | The issue after mutation. | - -### `IssueSetConfidentialPayload` - -Autogenerated return type of IssueSetConfidential. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `issue` | [`Issue`](#issue) | The issue after mutation. | - -### `IssueSetDueDatePayload` - -Autogenerated return type of IssueSetDueDate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `issue` | [`Issue`](#issue) | The issue after mutation. | - -### `IssueSetEpicPayload` - -Autogenerated return type of IssueSetEpic. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `issue` | [`Issue`](#issue) | The issue after mutation. | - -### `IssueSetIterationPayload` - -Autogenerated return type of IssueSetIteration. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `issue` | [`Issue`](#issue) | The issue after mutation. | - -### `IssueSetLockedPayload` - -Autogenerated return type of IssueSetLocked. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `issue` | [`Issue`](#issue) | The issue after mutation. | - -### `IssueSetSeverityPayload` - -Autogenerated return type of IssueSetSeverity. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `issue` | [`Issue`](#issue) | The issue after mutation. | - -### `IssueSetSubscriptionPayload` - -Autogenerated return type of IssueSetSubscription. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `issue` | [`Issue`](#issue) | The issue after mutation. | - -### `IssueSetWeightPayload` - -Autogenerated return type of IssueSetWeight. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `issue` | [`Issue`](#issue) | The issue after mutation. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `adminIssue` | [`Boolean!`](#boolean) | Indicates the user can perform `admin_issue` on this resource. | +| `createDesign` | [`Boolean!`](#boolean) | Indicates the user can perform `create_design` on this resource. | +| `createNote` | [`Boolean!`](#boolean) | Indicates the user can perform `create_note` on this resource. | +| `destroyDesign` | [`Boolean!`](#boolean) | Indicates the user can perform `destroy_design` on this resource. | +| `readDesign` | [`Boolean!`](#boolean) | Indicates the user can perform `read_design` on this resource. | +| `readIssue` | [`Boolean!`](#boolean) | Indicates the user can perform `read_issue` on this resource. | +| `reopenIssue` | [`Boolean!`](#boolean) | Indicates the user can perform `reopen_issue` on this resource. | +| `updateIssue` | [`Boolean!`](#boolean) | Indicates the user can perform `update_issue` on this resource. | ### `IssueStatusCountsType` Represents total number of issues for the represented statuses. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `all` | [`Int`](#int) | Number of issues with status ALL for the project. | -| `closed` | [`Int`](#int) | Number of issues with status CLOSED for the project. | -| `opened` | [`Int`](#int) | Number of issues with status OPENED for the project. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `all` | [`Int`](#int) | Number of issues with status ALL for the project. | +| `closed` | [`Int`](#int) | Number of issues with status CLOSED for the project. | +| `opened` | [`Int`](#int) | Number of issues with status OPENED for the project. | ### `Iteration` Represents an iteration object. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `createdAt` | [`Time!`](#time) | Timestamp of iteration creation. | -| `description` | [`String`](#string) | Description of the iteration. | -| `descriptionHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `description`. | -| `dueDate` | [`Time`](#time) | Timestamp of the iteration due date. | -| `id` | [`ID!`](#id) | ID of the iteration. | -| `iid` | [`ID!`](#id) | Internal ID of the iteration. | -| `iterationCadence` | [`IterationCadence!`](#iterationcadence) | Cadence of the iteration. | -| `report` | [`TimeboxReport`](#timeboxreport) | Historically accurate report about the timebox. | -| `scopedPath` | [`String`](#string) | Web path of the iteration, scoped to the query parent. Only valid for Project parents. Returns null in other contexts. | -| `scopedUrl` | [`String`](#string) | Web URL of the iteration, scoped to the query parent. Only valid for Project parents. Returns null in other contexts. | -| `startDate` | [`Time`](#time) | Timestamp of the iteration start date. | -| `state` | [`IterationState!`](#iterationstate) | State of the iteration. | -| `title` | [`String!`](#string) | Title of the iteration. | -| `updatedAt` | [`Time!`](#time) | Timestamp of last iteration update. | -| `webPath` | [`String!`](#string) | Web path of the iteration. | -| `webUrl` | [`String!`](#string) | Web URL of the iteration. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `createdAt` | [`Time!`](#time) | Timestamp of iteration creation. | +| `description` | [`String`](#string) | Description of the iteration. | +| `descriptionHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `description`. | +| `dueDate` | [`Time`](#time) | Timestamp of the iteration due date. | +| `id` | [`ID!`](#id) | ID of the iteration. | +| `iid` | [`ID!`](#id) | Internal ID of the iteration. | +| `iterationCadence` | [`IterationCadence!`](#iterationcadence) | Cadence of the iteration. | +| `report` | [`TimeboxReport`](#timeboxreport) | Historically accurate report about the timebox. | +| `scopedPath` | [`String`](#string) | Web path of the iteration, scoped to the query parent. Only valid for Project parents. Returns null in other contexts. | +| `scopedUrl` | [`String`](#string) | Web URL of the iteration, scoped to the query parent. Only valid for Project parents. Returns null in other contexts. | +| `startDate` | [`Time`](#time) | Timestamp of the iteration start date. | +| `state` | [`IterationState!`](#iterationstate) | State of the iteration. | +| `title` | [`String!`](#string) | Title of the iteration. | +| `updatedAt` | [`Time!`](#time) | Timestamp of last iteration update. | +| `webPath` | [`String!`](#string) | Web path of the iteration. | +| `webUrl` | [`String!`](#string) | Web URL of the iteration. | ### `IterationCadence` Represents an iteration cadence. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `active` | [`Boolean`](#boolean) | Whether the iteration cadence is active. | -| `automatic` | [`Boolean`](#boolean) | Whether the iteration cadence should automatically generate future iterations. | -| `durationInWeeks` | [`Int`](#int) | Duration in weeks of the iterations within this cadence. | -| `id` | [`IterationsCadenceID!`](#iterationscadenceid) | Global ID of the iteration cadence. | -| `iterationsInAdvance` | [`Int`](#int) | Future iterations to be created when iteration cadence is set to automatic. | -| `startDate` | [`Time`](#time) | Timestamp of the iteration cadence start date. | -| `title` | [`String!`](#string) | Title of the iteration cadence. | +#### Fields -### `IterationCadenceConnection` - -The connection type for IterationCadence. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[IterationCadenceEdge]`](#iterationcadenceedge) | A list of edges. | -| `nodes` | [`[IterationCadence]`](#iterationcadence) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `IterationCadenceCreatePayload` - -Autogenerated return type of IterationCadenceCreate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `iterationCadence` | [`IterationCadence`](#iterationcadence) | The created iteration cadence. | - -### `IterationCadenceEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`IterationCadence`](#iterationcadence) | The item at the end of the edge. | - -### `IterationCadenceUpdatePayload` - -Autogenerated return type of IterationCadenceUpdate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `iterationCadence` | [`IterationCadence`](#iterationcadence) | The updated iteration cadence. | - -### `IterationConnection` - -The connection type for Iteration. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[IterationEdge]`](#iterationedge) | A list of edges. | -| `nodes` | [`[Iteration]`](#iteration) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `IterationEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`Iteration`](#iteration) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `active` | [`Boolean`](#boolean) | Whether the iteration cadence is active. | +| `automatic` | [`Boolean`](#boolean) | Whether the iteration cadence should automatically generate future iterations. | +| `durationInWeeks` | [`Int`](#int) | Duration in weeks of the iterations within this cadence. | +| `id` | [`IterationsCadenceID!`](#iterationscadenceid) | Global ID of the iteration cadence. | +| `iterationsInAdvance` | [`Int`](#int) | Future iterations to be created when iteration cadence is set to automatic. | +| `startDate` | [`Time`](#time) | Timestamp of the iteration cadence start date. | +| `title` | [`String!`](#string) | Title of the iteration cadence. | ### `JiraImport` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `createdAt` | [`Time`](#time) | Timestamp of when the Jira import was created. | -| `failedToImportCount` | [`Int!`](#int) | Count of issues that failed to import. | -| `importedIssuesCount` | [`Int!`](#int) | Count of issues that were successfully imported. | -| `jiraProjectKey` | [`String!`](#string) | Project key for the imported Jira project. | -| `scheduledAt` | [`Time`](#time) | Timestamp of when the Jira import was scheduled. | -| `scheduledBy` | [`User`](#user) | User that started the Jira import. | -| `totalIssueCount` | [`Int!`](#int) | Total count of issues that were attempted to import. | +#### Fields -### `JiraImportConnection` - -The connection type for JiraImport. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[JiraImportEdge]`](#jiraimportedge) | A list of edges. | -| `nodes` | [`[JiraImport]`](#jiraimport) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `JiraImportEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`JiraImport`](#jiraimport) | The item at the end of the edge. | - -### `JiraImportStartPayload` - -Autogenerated return type of JiraImportStart. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `jiraImport` | [`JiraImport`](#jiraimport) | The Jira import data after mutation. | - -### `JiraImportUsersPayload` - -Autogenerated return type of JiraImportUsers. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `jiraUsers` | [`[JiraUser!]`](#jirauser) | Users returned from Jira, matched by email and name if possible. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `createdAt` | [`Time`](#time) | Timestamp of when the Jira import was created. | +| `failedToImportCount` | [`Int!`](#int) | Count of issues that failed to import. | +| `importedIssuesCount` | [`Int!`](#int) | Count of issues that were successfully imported. | +| `jiraProjectKey` | [`String!`](#string) | Project key for the imported Jira project. | +| `scheduledAt` | [`Time`](#time) | Timestamp of when the Jira import was scheduled. | +| `scheduledBy` | [`User`](#user) | User that started the Jira import. | +| `totalIssueCount` | [`Int!`](#int) | Total count of issues that were attempted to import. | ### `JiraProject` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `key` | [`String!`](#string) | Key of the Jira project. | -| `name` | [`String`](#string) | Name of the Jira project. | -| `projectId` | [`Int!`](#int) | ID of the Jira project. | +#### Fields -### `JiraProjectConnection` - -The connection type for JiraProject. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[JiraProjectEdge]`](#jiraprojectedge) | A list of edges. | -| `nodes` | [`[JiraProject]`](#jiraproject) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `JiraProjectEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`JiraProject`](#jiraproject) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `key` | [`String!`](#string) | Key of the Jira project. | +| `name` | [`String`](#string) | Name of the Jira project. | +| `projectId` | [`Int!`](#int) | ID of the Jira project. | ### `JiraService` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `active` | [`Boolean`](#boolean) | Indicates if the service is active. | -| `projects` | [`JiraProjectConnection`](#jiraprojectconnection) | List of all Jira projects fetched through Jira REST API. | -| `type` | [`String`](#string) | Class name of the service. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `active` | [`Boolean`](#boolean) | Indicates if the service is active. | +| `type` | [`String`](#string) | Class name of the service. | + +#### Fields with arguments + +##### `JiraService.projects` + +List of all Jira projects fetched through Jira REST API. + +Returns [`JiraProjectConnection`](#jiraprojectconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `name` | [`String`](#string) | Project name or key. | ### `JiraUser` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `gitlabId` | [`Int`](#int) | ID of the matched GitLab user. | -| `gitlabName` | [`String`](#string) | Name of the matched GitLab user. | -| `gitlabUsername` | [`String`](#string) | Username of the matched GitLab user. | -| `jiraAccountId` | [`String!`](#string) | Account ID of the Jira user. | -| `jiraDisplayName` | [`String!`](#string) | Display name of the Jira user. | -| `jiraEmail` | [`String`](#string) | Email of the Jira user, returned only for users with public emails. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `gitlabId` | [`Int`](#int) | ID of the matched GitLab user. | +| `gitlabName` | [`String`](#string) | Name of the matched GitLab user. | +| `gitlabUsername` | [`String`](#string) | Username of the matched GitLab user. | +| `jiraAccountId` | [`String!`](#string) | Account ID of the Jira user. | +| `jiraDisplayName` | [`String!`](#string) | Display name of the Jira user. | +| `jiraEmail` | [`String`](#string) | Email of the Jira user, returned only for users with public emails. | ### `Label` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `color` | [`String!`](#string) | Background color of the label. | -| `createdAt` | [`Time!`](#time) | When this label was created. | -| `description` | [`String`](#string) | Description of the label (Markdown rendered as HTML for caching). | -| `descriptionHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `description`. | -| `id` | [`ID!`](#id) | Label ID. | -| `textColor` | [`String!`](#string) | Text color of the label. | -| `title` | [`String!`](#string) | Content of the label. | -| `updatedAt` | [`Time!`](#time) | When this label was last updated. | +#### Fields -### `LabelConnection` - -The connection type for Label. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `count` | [`Int!`](#int) | Total count of collection. | -| `edges` | [`[LabelEdge]`](#labeledge) | A list of edges. | -| `nodes` | [`[Label]`](#label) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `LabelCreatePayload` - -Autogenerated return type of LabelCreate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `label` | [`Label`](#label) | The label after mutation. | - -### `LabelEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`Label`](#label) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `color` | [`String!`](#string) | Background color of the label. | +| `createdAt` | [`Time!`](#time) | When this label was created. | +| `description` | [`String`](#string) | Description of the label (Markdown rendered as HTML for caching). | +| `descriptionHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `description`. | +| `id` | [`ID!`](#id) | Label ID. | +| `textColor` | [`String!`](#string) | Text color of the label. | +| `title` | [`String!`](#string) | Content of the label. | +| `updatedAt` | [`Time!`](#time) | When this label was last updated. | ### `LicenseHistoryEntry` Represents an entry from the Cloud License history. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `activatedAt` | [`Date`](#date) | Date when the license was activated. | -| `company` | [`String`](#string) | Company of the licensee. | -| `email` | [`String`](#string) | Email of the licensee. | -| `expiresAt` | [`Date`](#date) | Date when the license expires. | -| `id` | [`ID!`](#id) | ID of the license. | -| `name` | [`String`](#string) | Name of the licensee. | -| `plan` | [`String!`](#string) | Name of the subscription plan. | -| `startsAt` | [`Date`](#date) | Date when the license started. | -| `type` | [`String!`](#string) | Type of the license. | -| `usersInLicenseCount` | [`Int`](#int) | Number of paid users in the license. | +#### Fields -### `LicenseHistoryEntryConnection` - -The connection type for LicenseHistoryEntry. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[LicenseHistoryEntryEdge]`](#licensehistoryentryedge) | A list of edges. | -| `nodes` | [`[LicenseHistoryEntry]`](#licensehistoryentry) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `LicenseHistoryEntryEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`LicenseHistoryEntry`](#licensehistoryentry) | The item at the end of the edge. | - -### `MarkAsSpamSnippetPayload` - -Autogenerated return type of MarkAsSpamSnippet. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `snippet` | [`Snippet`](#snippet) | The snippet after mutation. | - -### `MemberInterfaceConnection` - -The connection type for MemberInterface. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[MemberInterfaceEdge]`](#memberinterfaceedge) | A list of edges. | -| `nodes` | [`[MemberInterface]`](#memberinterface) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `MemberInterfaceEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`MemberInterface`](#memberinterface) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `activatedAt` | [`Date`](#date) | Date when the license was activated. | +| `company` | [`String`](#string) | Company of the licensee. | +| `email` | [`String`](#string) | Email of the licensee. | +| `expiresAt` | [`Date`](#date) | Date when the license expires. | +| `id` | [`ID!`](#id) | ID of the license. | +| `name` | [`String`](#string) | Name of the licensee. | +| `plan` | [`String!`](#string) | Name of the subscription plan. | +| `startsAt` | [`Date`](#date) | Date when the license started. | +| `type` | [`String!`](#string) | Type of the license. | +| `usersInLicenseCount` | [`Int`](#int) | Number of paid users in the license. | ### `MergeRequest` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `allowCollaboration` | [`Boolean`](#boolean) | Indicates if members of the target project can push to the fork. | -| `approvalsLeft` | [`Int`](#int) | Number of approvals left. | -| `approvalsRequired` | [`Int`](#int) | Number of approvals required. | -| `approved` | [`Boolean!`](#boolean) | Indicates if the merge request has all the required approvals. Returns true if no required approvals are configured. | -| `approvedBy` | [`UserConnection`](#userconnection) | Users who approved the merge request. | -| `assignees` | [`UserConnection`](#userconnection) | Assignees of the merge request. | -| `author` | [`User`](#user) | User who created this merge request. | -| `autoMergeEnabled` | [`Boolean!`](#boolean) | Indicates if auto merge is enabled for the merge request. | -| `autoMergeStrategy` | [`String`](#string) | Selected auto merge strategy. | -| `availableAutoMergeStrategies` | [`[String!]`](#string) | Array of available auto merge strategies. | -| `commitCount` | [`Int`](#int) | Number of commits in the merge request. | -| `commitsWithoutMergeCommits` | [`CommitConnection`](#commitconnection) | Merge request commits excluding merge commits. | -| `conflicts` | [`Boolean!`](#boolean) | Indicates if the merge request has conflicts. | -| `createdAt` | [`Time!`](#time) | Timestamp of when the merge request was created. | -| `currentUserTodos` | [`TodoConnection!`](#todoconnection) | To-do items for the current user. | -| `defaultMergeCommitMessage` | [`String`](#string) | Default merge commit message of the merge request. | -| `defaultMergeCommitMessageWithDescription` | [`String`](#string) | Default merge commit message of the merge request with description. | -| `defaultSquashCommitMessage` | [`String`](#string) | Default squash commit message of the merge request. | -| `description` | [`String`](#string) | Description of the merge request (Markdown rendered as HTML for caching). | -| `descriptionHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `description`. | -| `diffHeadSha` | [`String`](#string) | Diff head SHA of the merge request. | -| `diffRefs` | [`DiffRefs`](#diffrefs) | References of the base SHA, the head SHA, and the start SHA for this merge request. | -| `diffStats` | [`[DiffStats!]`](#diffstats) | Details about which files were changed in this merge request. | -| `diffStatsSummary` | [`DiffStatsSummary`](#diffstatssummary) | Summary of which files were changed in this merge request. | -| `discussionLocked` | [`Boolean!`](#boolean) | Indicates if comments on the merge request are locked to members only. | -| `discussions` | [`DiscussionConnection!`](#discussionconnection) | All discussions on this noteable. | -| `divergedFromTargetBranch` | [`Boolean!`](#boolean) | Indicates if the source branch is behind the target branch. | -| `downvotes` | [`Int!`](#int) | Number of downvotes for the merge request. | -| `forceRemoveSourceBranch` | [`Boolean`](#boolean) | Indicates if the project settings will lead to source branch deletion after merge. | -| `hasCi` | [`Boolean!`](#boolean) | Indicates if the merge request has CI. | -| `hasSecurityReports` | [`Boolean!`](#boolean) | Indicates if the source branch has any security reports. | -| `headPipeline` | [`Pipeline`](#pipeline) | The pipeline running on the branch HEAD of the merge request. | -| `id` | [`ID!`](#id) | ID of the merge request. | -| `iid` | [`String!`](#string) | Internal ID of the merge request. | -| `inProgressMergeCommitSha` | [`String`](#string) | Commit SHA of the merge request if merge is in progress. | -| `labels` | [`LabelConnection`](#labelconnection) | Labels of the merge request. | -| `mergeCommitSha` | [`String`](#string) | SHA of the merge request commit (set once merged). | -| `mergeError` | [`String`](#string) | Error message due to a merge error. | -| `mergeOngoing` | [`Boolean!`](#boolean) | Indicates if a merge is currently occurring. | -| `mergeStatus` | [`String`](#string) | Status of the merge request. | -| `mergeTrainsCount` | [`Int`](#int) | Number of merge requests in the merge train. | -| `mergeUser` | [`User`](#user) | User who merged this merge request. | -| `mergeWhenPipelineSucceeds` | [`Boolean`](#boolean) | Indicates if the merge has been set to be merged when its pipeline succeeds (MWPS). | -| `mergeable` | [`Boolean!`](#boolean) | Indicates if the merge request is mergeable. | -| `mergeableDiscussionsState` | [`Boolean`](#boolean) | Indicates if all discussions in the merge request have been resolved, allowing the merge request to be merged. | -| `mergedAt` | [`Time`](#time) | Timestamp of when the merge request was merged, null if not merged. | -| `milestone` | [`Milestone`](#milestone) | The milestone of the merge request. | -| `notes` | [`NoteConnection!`](#noteconnection) | All notes on this noteable. | -| `participants` | [`UserConnection`](#userconnection) | Participants in the merge request. This includes the author, assignees, reviewers, and users mentioned in notes. | -| `pipelines` | [`PipelineConnection`](#pipelineconnection) | Pipelines for the merge request. Note: for performance reasons, no more than the most recent 500 pipelines will be returned. | -| `project` | [`Project!`](#project) | Alias for target_project. | -| `projectId` | [`Int!`](#int) | ID of the merge request project. | -| `rebaseCommitSha` | [`String`](#string) | Rebase commit SHA of the merge request. | -| `rebaseInProgress` | [`Boolean!`](#boolean) | Indicates if there is a rebase currently in progress for the merge request. | -| `reference` | [`String!`](#string) | Internal reference of the merge request. Returned in shortened format by default. | -| `reviewers` | [`MergeRequestReviewerConnection`](#mergerequestreviewerconnection) | Users from whom a review has been requested. | -| `securityAutoFix` | [`Boolean`](#boolean) | Indicates if the merge request is created by @GitLab-Security-Bot. | -| `securityReportsUpToDateOnTargetBranch` | [`Boolean!`](#boolean) | Indicates if the target branch security reports are out of date. | -| `shouldBeRebased` | [`Boolean!`](#boolean) | Indicates if the merge request will be rebased. | -| `shouldRemoveSourceBranch` | [`Boolean`](#boolean) | Indicates if the source branch of the merge request will be deleted after merge. | -| `sourceBranch` | [`String!`](#string) | Source branch of the merge request. | -| `sourceBranchExists` | [`Boolean!`](#boolean) | Indicates if the source branch of the merge request exists. | -| `sourceBranchProtected` | [`Boolean!`](#boolean) | Indicates if the source branch is protected. | -| `sourceProject` | [`Project`](#project) | Source project of the merge request. | -| `sourceProjectId` | [`Int`](#int) | ID of the merge request source project. | -| `squash` | [`Boolean!`](#boolean) | Indicates if squash on merge is enabled. | -| `squashOnMerge` | [`Boolean!`](#boolean) | Indicates if squash on merge is enabled. | -| `state` | [`MergeRequestState!`](#mergerequeststate) | State of the merge request. | -| `subscribed` | [`Boolean!`](#boolean) | Indicates if the currently logged in user is subscribed to this merge request. | -| `targetBranch` | [`String!`](#string) | Target branch of the merge request. | -| `targetBranchExists` | [`Boolean!`](#boolean) | Indicates if the target branch of the merge request exists. | -| `targetProject` | [`Project!`](#project) | Target project of the merge request. | -| `targetProjectId` | [`Int!`](#int) | ID of the merge request target project. | -| `taskCompletionStatus` | [`TaskCompletionStatus!`](#taskcompletionstatus) | Completion status of tasks. | -| `timeEstimate` | [`Int!`](#int) | Time estimate of the merge request. | -| `timelogs` | [`TimelogConnection!`](#timelogconnection) | Timelogs on the merge request. | -| `title` | [`String!`](#string) | Title of the merge request. | -| `titleHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `title`. | -| `totalTimeSpent` | [`Int!`](#int) | Total time reported as spent on the merge request. | -| `updatedAt` | [`Time!`](#time) | Timestamp of when the merge request was last updated. | -| `upvotes` | [`Int!`](#int) | Number of upvotes for the merge request. | -| `userDiscussionsCount` | [`Int`](#int) | Number of user discussions in the merge request. | -| `userNotesCount` | [`Int`](#int) | User notes count of the merge request. | -| `userPermissions` | [`MergeRequestPermissions!`](#mergerequestpermissions) | Permissions for the current user on the resource. | -| `webUrl` | [`String`](#string) | Web URL of the merge request. | -| `workInProgress` | [`Boolean!`](#boolean) | Indicates if the merge request is a draft. | +#### Fields -### `MergeRequestAcceptPayload` +| Name | Type | Description | +| ---- | ---- | ----------- | +| `allowCollaboration` | [`Boolean`](#boolean) | Indicates if members of the target project can push to the fork. | +| `approvalsLeft` | [`Int`](#int) | Number of approvals left. | +| `approvalsRequired` | [`Int`](#int) | Number of approvals required. | +| `approved` | [`Boolean!`](#boolean) | Indicates if the merge request has all the required approvals. Returns true if no required approvals are configured. | +| `approvedBy` | [`UserConnection`](#userconnection) | Users who approved the merge request. | +| `assignees` | [`UserConnection`](#userconnection) | Assignees of the merge request. | +| `author` | [`User`](#user) | User who created this merge request. | +| `autoMergeEnabled` | [`Boolean!`](#boolean) | Indicates if auto merge is enabled for the merge request. | +| `autoMergeStrategy` | [`String`](#string) | Selected auto merge strategy. | +| `availableAutoMergeStrategies` | [`[String!]`](#string) | Array of available auto merge strategies. | +| `commitCount` | [`Int`](#int) | Number of commits in the merge request. | +| `commitsWithoutMergeCommits` | [`CommitConnection`](#commitconnection) | Merge request commits excluding merge commits. | +| `conflicts` | [`Boolean!`](#boolean) | Indicates if the merge request has conflicts. | +| `createdAt` | [`Time!`](#time) | Timestamp of when the merge request was created. | +| `defaultMergeCommitMessage` | [`String`](#string) | Default merge commit message of the merge request. | +| `defaultMergeCommitMessageWithDescription` | [`String`](#string) | Default merge commit message of the merge request with description. | +| `defaultSquashCommitMessage` | [`String`](#string) | Default squash commit message of the merge request. | +| `description` | [`String`](#string) | Description of the merge request (Markdown rendered as HTML for caching). | +| `descriptionHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `description`. | +| `diffHeadSha` | [`String`](#string) | Diff head SHA of the merge request. | +| `diffRefs` | [`DiffRefs`](#diffrefs) | References of the base SHA, the head SHA, and the start SHA for this merge request. | +| `diffStatsSummary` | [`DiffStatsSummary`](#diffstatssummary) | Summary of which files were changed in this merge request. | +| `discussionLocked` | [`Boolean!`](#boolean) | Indicates if comments on the merge request are locked to members only. | +| `discussions` | [`DiscussionConnection!`](#discussionconnection) | All discussions on this noteable. | +| `divergedFromTargetBranch` | [`Boolean!`](#boolean) | Indicates if the source branch is behind the target branch. | +| `downvotes` | [`Int!`](#int) | Number of downvotes for the merge request. | +| `forceRemoveSourceBranch` | [`Boolean`](#boolean) | Indicates if the project settings will lead to source branch deletion after merge. | +| `hasCi` | [`Boolean!`](#boolean) | Indicates if the merge request has CI. | +| `hasSecurityReports` | [`Boolean!`](#boolean) | Indicates if the source branch has any security reports. | +| `headPipeline` | [`Pipeline`](#pipeline) | The pipeline running on the branch HEAD of the merge request. | +| `id` | [`ID!`](#id) | ID of the merge request. | +| `iid` | [`String!`](#string) | Internal ID of the merge request. | +| `inProgressMergeCommitSha` | [`String`](#string) | Commit SHA of the merge request if merge is in progress. | +| `labels` | [`LabelConnection`](#labelconnection) | Labels of the merge request. | +| `mergeCommitSha` | [`String`](#string) | SHA of the merge request commit (set once merged). | +| `mergeError` | [`String`](#string) | Error message due to a merge error. | +| `mergeOngoing` | [`Boolean!`](#boolean) | Indicates if a merge is currently occurring. | +| `mergeStatus` | [`String`](#string) | Status of the merge request. | +| `mergeTrainsCount` | [`Int`](#int) | Number of merge requests in the merge train. | +| `mergeUser` | [`User`](#user) | User who merged this merge request. | +| `mergeWhenPipelineSucceeds` | [`Boolean`](#boolean) | Indicates if the merge has been set to be merged when its pipeline succeeds (MWPS). | +| `mergeable` | [`Boolean!`](#boolean) | Indicates if the merge request is mergeable. | +| `mergeableDiscussionsState` | [`Boolean`](#boolean) | Indicates if all discussions in the merge request have been resolved, allowing the merge request to be merged. | +| `mergedAt` | [`Time`](#time) | Timestamp of when the merge request was merged, null if not merged. | +| `milestone` | [`Milestone`](#milestone) | The milestone of the merge request. | +| `notes` | [`NoteConnection!`](#noteconnection) | All notes on this noteable. | +| `participants` | [`UserConnection`](#userconnection) | Participants in the merge request. This includes the author, assignees, reviewers, and users mentioned in notes. | +| `project` | [`Project!`](#project) | Alias for target_project. | +| `projectId` | [`Int!`](#int) | ID of the merge request project. | +| `rebaseCommitSha` | [`String`](#string) | Rebase commit SHA of the merge request. | +| `rebaseInProgress` | [`Boolean!`](#boolean) | Indicates if there is a rebase currently in progress for the merge request. | +| `reviewers` | [`MergeRequestReviewerConnection`](#mergerequestreviewerconnection) | Users from whom a review has been requested. | +| `securityAutoFix` | [`Boolean`](#boolean) | Indicates if the merge request is created by @GitLab-Security-Bot. | +| `securityReportsUpToDateOnTargetBranch` | [`Boolean!`](#boolean) | Indicates if the target branch security reports are out of date. | +| `shouldBeRebased` | [`Boolean!`](#boolean) | Indicates if the merge request will be rebased. | +| `shouldRemoveSourceBranch` | [`Boolean`](#boolean) | Indicates if the source branch of the merge request will be deleted after merge. | +| `sourceBranch` | [`String!`](#string) | Source branch of the merge request. | +| `sourceBranchExists` | [`Boolean!`](#boolean) | Indicates if the source branch of the merge request exists. | +| `sourceBranchProtected` | [`Boolean!`](#boolean) | Indicates if the source branch is protected. | +| `sourceProject` | [`Project`](#project) | Source project of the merge request. | +| `sourceProjectId` | [`Int`](#int) | ID of the merge request source project. | +| `squash` | [`Boolean!`](#boolean) | Indicates if squash on merge is enabled. | +| `squashOnMerge` | [`Boolean!`](#boolean) | Indicates if squash on merge is enabled. | +| `state` | [`MergeRequestState!`](#mergerequeststate) | State of the merge request. | +| `subscribed` | [`Boolean!`](#boolean) | Indicates if the currently logged in user is subscribed to this merge request. | +| `targetBranch` | [`String!`](#string) | Target branch of the merge request. | +| `targetBranchExists` | [`Boolean!`](#boolean) | Indicates if the target branch of the merge request exists. | +| `targetProject` | [`Project!`](#project) | Target project of the merge request. | +| `targetProjectId` | [`Int!`](#int) | ID of the merge request target project. | +| `taskCompletionStatus` | [`TaskCompletionStatus!`](#taskcompletionstatus) | Completion status of tasks. | +| `timeEstimate` | [`Int!`](#int) | Time estimate of the merge request. | +| `timelogs` | [`TimelogConnection!`](#timelogconnection) | Timelogs on the merge request. | +| `title` | [`String!`](#string) | Title of the merge request. | +| `titleHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `title`. | +| `totalTimeSpent` | [`Int!`](#int) | Total time reported as spent on the merge request. | +| `updatedAt` | [`Time!`](#time) | Timestamp of when the merge request was last updated. | +| `upvotes` | [`Int!`](#int) | Number of upvotes for the merge request. | +| `userDiscussionsCount` | [`Int`](#int) | Number of user discussions in the merge request. | +| `userNotesCount` | [`Int`](#int) | User notes count of the merge request. | +| `userPermissions` | [`MergeRequestPermissions!`](#mergerequestpermissions) | Permissions for the current user on the resource. | +| `webUrl` | [`String`](#string) | Web URL of the merge request. | +| `workInProgress` | [`Boolean!`](#boolean) | Indicates if the merge request is a draft. | -Autogenerated return type of MergeRequestAccept. +#### Fields with arguments -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `mergeRequest` | [`MergeRequest`](#mergerequest) | The merge request after mutation. | +##### `MergeRequest.currentUserTodos` -### `MergeRequestConnection` +To-do items for the current user. -The connection type for MergeRequest. +Returns [`TodoConnection!`](#todoconnection). -| Field | Type | Description | -| ----- | ---- | ----------- | -| `count` | [`Int!`](#int) | Total count of collection. | -| `edges` | [`[MergeRequestEdge]`](#mergerequestedge) | A list of edges. | -| `nodes` | [`[MergeRequest]`](#mergerequest) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | -| `totalTimeToMerge` | [`Float`](#float) | Total sum of time to merge, in seconds, for the collection of merge requests. | +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. -### `MergeRequestCreatePayload` +###### Arguments -Autogenerated return type of MergeRequestCreate. +| Name | Type | Description | +| ---- | ---- | ----------- | +| `state` | [`TodoStateEnum`](#todostateenum) | State of the to-do items. | -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `mergeRequest` | [`MergeRequest`](#mergerequest) | The merge request after mutation. | +##### `MergeRequest.diffStats` + +Details about which files were changed in this merge request. + +Returns [`[DiffStats!]`](#diffstats). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `path` | [`String`](#string) | A specific file-path. | + +##### `MergeRequest.pipelines` + +Pipelines for the merge request. Note: for performance reasons, no more than the most recent 500 pipelines will be returned. + +Returns [`PipelineConnection`](#pipelineconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `ref` | [`String`](#string) | Filter pipelines by the ref they are run for. | +| `sha` | [`String`](#string) | Filter pipelines by the sha of the commit they are run for. | +| `status` | [`PipelineStatusEnum`](#pipelinestatusenum) | Filter pipelines by their status. | + +##### `MergeRequest.reference` + +Internal reference of the merge request. Returned in shortened format by default. + +Returns [`String!`](#string). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `full` | [`Boolean`](#boolean) | Boolean option specifying whether the reference should be returned in full. | ### `MergeRequestDiffRegistry` Represents the Geo sync and verification state of a Merge Request diff. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `createdAt` | [`Time`](#time) | Timestamp when the MergeRequestDiffRegistry was created. | -| `id` | [`ID!`](#id) | ID of the MergeRequestDiffRegistry. | -| `lastSyncFailure` | [`String`](#string) | Error message during sync of the MergeRequestDiffRegistry. | -| `lastSyncedAt` | [`Time`](#time) | Timestamp of the most recent successful sync of the MergeRequestDiffRegistry. | -| `mergeRequestDiffId` | [`ID!`](#id) | ID of the Merge Request diff. | -| `retryAt` | [`Time`](#time) | Timestamp after which the MergeRequestDiffRegistry should be resynced. | -| `retryCount` | [`Int`](#int) | Number of consecutive failed sync attempts of the MergeRequestDiffRegistry. | -| `state` | [`RegistryState`](#registrystate) | Sync state of the MergeRequestDiffRegistry. | +#### Fields -### `MergeRequestDiffRegistryConnection` - -The connection type for MergeRequestDiffRegistry. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[MergeRequestDiffRegistryEdge]`](#mergerequestdiffregistryedge) | A list of edges. | -| `nodes` | [`[MergeRequestDiffRegistry]`](#mergerequestdiffregistry) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `MergeRequestDiffRegistryEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`MergeRequestDiffRegistry`](#mergerequestdiffregistry) | The item at the end of the edge. | - -### `MergeRequestEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`MergeRequest`](#mergerequest) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `createdAt` | [`Time`](#time) | Timestamp when the MergeRequestDiffRegistry was created. | +| `id` | [`ID!`](#id) | ID of the MergeRequestDiffRegistry. | +| `lastSyncFailure` | [`String`](#string) | Error message during sync of the MergeRequestDiffRegistry. | +| `lastSyncedAt` | [`Time`](#time) | Timestamp of the most recent successful sync of the MergeRequestDiffRegistry. | +| `mergeRequestDiffId` | [`ID!`](#id) | ID of the Merge Request diff. | +| `retryAt` | [`Time`](#time) | Timestamp after which the MergeRequestDiffRegistry should be resynced. | +| `retryCount` | [`Int`](#int) | Number of consecutive failed sync attempts of the MergeRequestDiffRegistry. | +| `state` | [`RegistryState`](#registrystate) | Sync state of the MergeRequestDiffRegistry. | ### `MergeRequestPermissions` Check permissions for the current user on a merge request. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `adminMergeRequest` | [`Boolean!`](#boolean) | Indicates the user can perform `admin_merge_request` on this resource. | -| `canMerge` | [`Boolean!`](#boolean) | Indicates the user can perform `can_merge` on this resource. | -| `cherryPickOnCurrentMergeRequest` | [`Boolean!`](#boolean) | Indicates the user can perform `cherry_pick_on_current_merge_request` on this resource. | -| `createNote` | [`Boolean!`](#boolean) | Indicates the user can perform `create_note` on this resource. | -| `pushToSourceBranch` | [`Boolean!`](#boolean) | Indicates the user can perform `push_to_source_branch` on this resource. | -| `readMergeRequest` | [`Boolean!`](#boolean) | Indicates the user can perform `read_merge_request` on this resource. | -| `removeSourceBranch` | [`Boolean!`](#boolean) | Indicates the user can perform `remove_source_branch` on this resource. | -| `revertOnCurrentMergeRequest` | [`Boolean!`](#boolean) | Indicates the user can perform `revert_on_current_merge_request` on this resource. | -| `updateMergeRequest` | [`Boolean!`](#boolean) | Indicates the user can perform `update_merge_request` on this resource. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `adminMergeRequest` | [`Boolean!`](#boolean) | Indicates the user can perform `admin_merge_request` on this resource. | +| `canMerge` | [`Boolean!`](#boolean) | Indicates the user can perform `can_merge` on this resource. | +| `cherryPickOnCurrentMergeRequest` | [`Boolean!`](#boolean) | Indicates the user can perform `cherry_pick_on_current_merge_request` on this resource. | +| `createNote` | [`Boolean!`](#boolean) | Indicates the user can perform `create_note` on this resource. | +| `pushToSourceBranch` | [`Boolean!`](#boolean) | Indicates the user can perform `push_to_source_branch` on this resource. | +| `readMergeRequest` | [`Boolean!`](#boolean) | Indicates the user can perform `read_merge_request` on this resource. | +| `removeSourceBranch` | [`Boolean!`](#boolean) | Indicates the user can perform `remove_source_branch` on this resource. | +| `revertOnCurrentMergeRequest` | [`Boolean!`](#boolean) | Indicates the user can perform `revert_on_current_merge_request` on this resource. | +| `updateMergeRequest` | [`Boolean!`](#boolean) | Indicates the user can perform `update_merge_request` on this resource. | ### `MergeRequestReviewer` A user from whom a merge request review has been requested. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `assignedMergeRequests` | [`MergeRequestConnection`](#mergerequestconnection) | Merge requests assigned to the user. | -| `authoredMergeRequests` | [`MergeRequestConnection`](#mergerequestconnection) | Merge requests authored by the user. | -| `avatarUrl` | [`String`](#string) | URL of the user's avatar. | -| `bot` | [`Boolean!`](#boolean) | Indicates if the user is a bot. | -| `callouts` | [`UserCalloutConnection`](#usercalloutconnection) | User callouts that belong to the user. | -| `email` **{warning-solid}** | [`String`](#string) | **Deprecated** in 13.7. This was renamed. Use: `User.publicEmail`. | -| `groupCount` | [`Int`](#int) | Group count for the user. Available only when feature flag `user_group_counts` is enabled. | -| `groupMemberships` | [`GroupMemberConnection`](#groupmemberconnection) | Group memberships of the user. | -| `id` | [`ID!`](#id) | ID of the user. | -| `location` | [`String`](#string) | The location of the user. | -| `mergeRequestInteraction` | [`UserMergeRequestInteraction`](#usermergerequestinteraction) | Details of this user's interactions with the merge request. | -| `name` | [`String!`](#string) | Human-readable name of the user. | -| `projectMemberships` | [`ProjectMemberConnection`](#projectmemberconnection) | Project memberships of the user. | -| `publicEmail` | [`String`](#string) | User's public email. | -| `reviewRequestedMergeRequests` | [`MergeRequestConnection`](#mergerequestconnection) | Merge requests assigned to the user for review. | -| `snippets` | [`SnippetConnection`](#snippetconnection) | Snippets authored by the user. | -| `starredProjects` | [`ProjectConnection`](#projectconnection) | Projects starred by the user. | -| `state` | [`UserState!`](#userstate) | State of the user. | -| `status` | [`UserStatus`](#userstatus) | User status. | -| `todos` | [`TodoConnection`](#todoconnection) | To-do items of the user. | -| `userPermissions` | [`UserPermissions!`](#userpermissions) | Permissions for the current user on the resource. | -| `username` | [`String!`](#string) | Username of the user. Unique within this instance of GitLab. | -| `webPath` | [`String!`](#string) | Web path of the user. | -| `webUrl` | [`String!`](#string) | Web URL of the user. | +#### Fields -### `MergeRequestReviewerConnection` +| Name | Type | Description | +| ---- | ---- | ----------- | +| `avatarUrl` | [`String`](#string) | URL of the user's avatar. | +| `bot` | [`Boolean!`](#boolean) | Indicates if the user is a bot. | +| `callouts` | [`UserCalloutConnection`](#usercalloutconnection) | User callouts that belong to the user. | +| `email` **{warning-solid}** | [`String`](#string) | **Deprecated** in 13.7. This was renamed. Use: [`User.publicEmail`](#userpublicemail). | +| `groupCount` | [`Int`](#int) | Group count for the user. Available only when feature flag `user_group_counts` is enabled. | +| `groupMemberships` | [`GroupMemberConnection`](#groupmemberconnection) | Group memberships of the user. | +| `id` | [`ID!`](#id) | ID of the user. | +| `location` | [`String`](#string) | The location of the user. | +| `mergeRequestInteraction` | [`UserMergeRequestInteraction`](#usermergerequestinteraction) | Details of this user's interactions with the merge request. | +| `name` | [`String!`](#string) | Human-readable name of the user. | +| `projectMemberships` | [`ProjectMemberConnection`](#projectmemberconnection) | Project memberships of the user. | +| `publicEmail` | [`String`](#string) | User's public email. | +| `state` | [`UserState!`](#userstate) | State of the user. | +| `status` | [`UserStatus`](#userstatus) | User status. | +| `userPermissions` | [`UserPermissions!`](#userpermissions) | Permissions for the current user on the resource. | +| `username` | [`String!`](#string) | Username of the user. Unique within this instance of GitLab. | +| `webPath` | [`String!`](#string) | Web path of the user. | +| `webUrl` | [`String!`](#string) | Web URL of the user. | -The connection type for MergeRequestReviewer. +#### Fields with arguments -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[MergeRequestReviewerEdge]`](#mergerequestrevieweredge) | A list of edges. | -| `nodes` | [`[MergeRequestReviewer]`](#mergerequestreviewer) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | +##### `MergeRequestReviewer.assignedMergeRequests` -### `MergeRequestReviewerEdge` +Merge requests assigned to the user. -An edge in a connection. +Returns [`MergeRequestConnection`](#mergerequestconnection). -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`MergeRequestReviewer`](#mergerequestreviewer) | The item at the end of the edge. | +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. -### `MergeRequestReviewerRereviewPayload` +###### Arguments -Autogenerated return type of MergeRequestReviewerRereview. +| Name | Type | Description | +| ---- | ---- | ----------- | +| `authorUsername` | [`String`](#string) | Username of the author. | +| `iids` | [`[String!]`](#string) | Array of IIDs of merge requests, for example `[1, 2]`. | +| `labels` | [`[String!]`](#string) | Array of label names. All resolved merge requests will have all of these labels. | +| `mergedAfter` | [`Time`](#time) | Merge requests merged after this date. | +| `mergedBefore` | [`Time`](#time) | Merge requests merged before this date. | +| `milestoneTitle` | [`String`](#string) | Title of the milestone. | +| `not` | [`MergeRequestsResolverNegatedParams`](#mergerequestsresolvernegatedparams) | List of negated arguments. Warning: this argument is experimental and a subject to change in future. | +| `projectId` | [`ProjectID`](#projectid) | The global ID of the project the authored merge requests should be in. Incompatible with projectPath. | +| `projectPath` | [`String`](#string) | The full-path of the project the authored merge requests should be in. Incompatible with projectId. | +| `reviewerUsername` | [`String`](#string) | Username of the reviewer. | +| `sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. | +| `sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. | +| `state` | [`MergeRequestState`](#mergerequeststate) | A merge request state. If provided, all resolved merge requests will have this state. | +| `targetBranches` | [`[String!]`](#string) | Array of target branch names. All resolved merge requests will have one of these branches as their target. | -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `mergeRequest` | [`MergeRequest`](#mergerequest) | The merge request after mutation. | +##### `MergeRequestReviewer.authoredMergeRequests` -### `MergeRequestSetAssigneesPayload` +Merge requests authored by the user. -Autogenerated return type of MergeRequestSetAssignees. +Returns [`MergeRequestConnection`](#mergerequestconnection). -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `mergeRequest` | [`MergeRequest`](#mergerequest) | The merge request after mutation. | +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. -### `MergeRequestSetLabelsPayload` +###### Arguments -Autogenerated return type of MergeRequestSetLabels. +| Name | Type | Description | +| ---- | ---- | ----------- | +| `assigneeUsername` | [`String`](#string) | Username of the assignee. | +| `iids` | [`[String!]`](#string) | Array of IIDs of merge requests, for example `[1, 2]`. | +| `labels` | [`[String!]`](#string) | Array of label names. All resolved merge requests will have all of these labels. | +| `mergedAfter` | [`Time`](#time) | Merge requests merged after this date. | +| `mergedBefore` | [`Time`](#time) | Merge requests merged before this date. | +| `milestoneTitle` | [`String`](#string) | Title of the milestone. | +| `not` | [`MergeRequestsResolverNegatedParams`](#mergerequestsresolvernegatedparams) | List of negated arguments. Warning: this argument is experimental and a subject to change in future. | +| `projectId` | [`ProjectID`](#projectid) | The global ID of the project the authored merge requests should be in. Incompatible with projectPath. | +| `projectPath` | [`String`](#string) | The full-path of the project the authored merge requests should be in. Incompatible with projectId. | +| `reviewerUsername` | [`String`](#string) | Username of the reviewer. | +| `sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. | +| `sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. | +| `state` | [`MergeRequestState`](#mergerequeststate) | A merge request state. If provided, all resolved merge requests will have this state. | +| `targetBranches` | [`[String!]`](#string) | Array of target branch names. All resolved merge requests will have one of these branches as their target. | -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `mergeRequest` | [`MergeRequest`](#mergerequest) | The merge request after mutation. | +##### `MergeRequestReviewer.reviewRequestedMergeRequests` -### `MergeRequestSetLockedPayload` +Merge requests assigned to the user for review. -Autogenerated return type of MergeRequestSetLocked. +Returns [`MergeRequestConnection`](#mergerequestconnection). -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `mergeRequest` | [`MergeRequest`](#mergerequest) | The merge request after mutation. | +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. -### `MergeRequestSetMilestonePayload` +###### Arguments -Autogenerated return type of MergeRequestSetMilestone. +| Name | Type | Description | +| ---- | ---- | ----------- | +| `assigneeUsername` | [`String`](#string) | Username of the assignee. | +| `authorUsername` | [`String`](#string) | Username of the author. | +| `iids` | [`[String!]`](#string) | Array of IIDs of merge requests, for example `[1, 2]`. | +| `labels` | [`[String!]`](#string) | Array of label names. All resolved merge requests will have all of these labels. | +| `mergedAfter` | [`Time`](#time) | Merge requests merged after this date. | +| `mergedBefore` | [`Time`](#time) | Merge requests merged before this date. | +| `milestoneTitle` | [`String`](#string) | Title of the milestone. | +| `not` | [`MergeRequestsResolverNegatedParams`](#mergerequestsresolvernegatedparams) | List of negated arguments. Warning: this argument is experimental and a subject to change in future. | +| `projectId` | [`ProjectID`](#projectid) | The global ID of the project the authored merge requests should be in. Incompatible with projectPath. | +| `projectPath` | [`String`](#string) | The full-path of the project the authored merge requests should be in. Incompatible with projectId. | +| `sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. | +| `sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. | +| `state` | [`MergeRequestState`](#mergerequeststate) | A merge request state. If provided, all resolved merge requests will have this state. | +| `targetBranches` | [`[String!]`](#string) | Array of target branch names. All resolved merge requests will have one of these branches as their target. | -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `mergeRequest` | [`MergeRequest`](#mergerequest) | The merge request after mutation. | +##### `MergeRequestReviewer.snippets` -### `MergeRequestSetSubscriptionPayload` +Snippets authored by the user. -Autogenerated return type of MergeRequestSetSubscription. +Returns [`SnippetConnection`](#snippetconnection). -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `mergeRequest` | [`MergeRequest`](#mergerequest) | The merge request after mutation. | +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. -### `MergeRequestSetWipPayload` +###### Arguments -Autogenerated return type of MergeRequestSetWip. +| Name | Type | Description | +| ---- | ---- | ----------- | +| `ids` | [`[SnippetID!]`](#snippetid) | Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`. | +| `type` | [`TypeEnum`](#typeenum) | The type of snippet. | +| `visibility` | [`VisibilityScopesEnum`](#visibilityscopesenum) | The visibility of the snippet. | -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `mergeRequest` | [`MergeRequest`](#mergerequest) | The merge request after mutation. | +##### `MergeRequestReviewer.starredProjects` -### `MergeRequestUpdatePayload` +Projects starred by the user. -Autogenerated return type of MergeRequestUpdate. +Returns [`ProjectConnection`](#projectconnection). -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `mergeRequest` | [`MergeRequest`](#mergerequest) | The merge request after mutation. | +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `search` | [`String`](#string) | Search query. | + +##### `MergeRequestReviewer.todos` + +To-do items of the user. + +Returns [`TodoConnection`](#todoconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `action` | [`[TodoActionEnum!]`](#todoactionenum) | The action to be filtered. | +| `authorId` | [`[ID!]`](#id) | The ID of an author. | +| `groupId` | [`[ID!]`](#id) | The ID of a group. | +| `projectId` | [`[ID!]`](#id) | The ID of a project. | +| `state` | [`[TodoStateEnum!]`](#todostateenum) | The state of the todo. | +| `type` | [`[TodoTargetEnum!]`](#todotargetenum) | The type of the todo. | ### `Metadata` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `revision` | [`String!`](#string) | Revision. | -| `version` | [`String!`](#string) | Version. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `revision` | [`String!`](#string) | Revision. | +| `version` | [`String!`](#string) | Version. | ### `MetricImage` Represents a metric image upload. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `fileName` | [`String`](#string) | File name of the metric image. | -| `filePath` | [`String`](#string) | File path of the metric image. | -| `id` | [`ID!`](#id) | ID of the metric upload. | -| `iid` | [`ID!`](#id) | Internal ID of the metric upload. | -| `url` | [`String!`](#string) | URL of the metric source. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `fileName` | [`String`](#string) | File name of the metric image. | +| `filePath` | [`String`](#string) | File path of the metric image. | +| `id` | [`ID!`](#id) | ID of the metric upload. | +| `iid` | [`ID!`](#id) | Internal ID of the metric upload. | +| `url` | [`String!`](#string) | URL of the metric source. | ### `MetricsDashboard` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `annotations` | [`MetricsDashboardAnnotationConnection`](#metricsdashboardannotationconnection) | Annotations added to the dashboard. | -| `path` | [`String`](#string) | Path to a file with the dashboard definition. | -| `schemaValidationWarnings` | [`[String!]`](#string) | Dashboard schema validation warnings. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `path` | [`String`](#string) | Path to a file with the dashboard definition. | +| `schemaValidationWarnings` | [`[String!]`](#string) | Dashboard schema validation warnings. | + +#### Fields with arguments + +##### `MetricsDashboard.annotations` + +Annotations added to the dashboard. + +Returns [`MetricsDashboardAnnotationConnection`](#metricsdashboardannotationconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `from` | [`Time!`](#time) | Timestamp marking date and time from which annotations need to be fetched. | +| `to` | [`Time`](#time) | Timestamp marking date and time to which annotations need to be fetched. | ### `MetricsDashboardAnnotation` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `description` | [`String`](#string) | Description of the annotation. | -| `endingAt` | [`Time`](#time) | Timestamp marking end of annotated time span. | -| `id` | [`ID!`](#id) | ID of the annotation. | -| `panelId` | [`String`](#string) | ID of a dashboard panel to which the annotation should be scoped. | -| `startingAt` | [`Time`](#time) | Timestamp marking start of annotated time span. | +#### Fields -### `MetricsDashboardAnnotationConnection` - -The connection type for MetricsDashboardAnnotation. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[MetricsDashboardAnnotationEdge]`](#metricsdashboardannotationedge) | A list of edges. | -| `nodes` | [`[MetricsDashboardAnnotation]`](#metricsdashboardannotation) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `MetricsDashboardAnnotationEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`MetricsDashboardAnnotation`](#metricsdashboardannotation) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `description` | [`String`](#string) | Description of the annotation. | +| `endingAt` | [`Time`](#time) | Timestamp marking end of annotated time span. | +| `id` | [`ID!`](#id) | ID of the annotation. | +| `panelId` | [`String`](#string) | ID of a dashboard panel to which the annotation should be scoped. | +| `startingAt` | [`Time`](#time) | Timestamp marking start of annotated time span. | ### `Milestone` Represents a milestone. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `createdAt` | [`Time!`](#time) | Timestamp of milestone creation. | -| `description` | [`String`](#string) | Description of the milestone. | -| `dueDate` | [`Time`](#time) | Timestamp of the milestone due date. | -| `groupMilestone` | [`Boolean!`](#boolean) | Indicates if milestone is at group level. | -| `id` | [`ID!`](#id) | ID of the milestone. | -| `iid` | [`ID!`](#id) | Internal ID of the milestone. | -| `projectMilestone` | [`Boolean!`](#boolean) | Indicates if milestone is at project level. | -| `report` | [`TimeboxReport`](#timeboxreport) | Historically accurate report about the timebox. | -| `startDate` | [`Time`](#time) | Timestamp of the milestone start date. | -| `state` | [`MilestoneStateEnum!`](#milestonestateenum) | State of the milestone. | -| `stats` | [`MilestoneStats`](#milestonestats) | Milestone statistics. | -| `subgroupMilestone` | [`Boolean!`](#boolean) | Indicates if milestone is at subgroup level. | -| `title` | [`String!`](#string) | Title of the milestone. | -| `updatedAt` | [`Time!`](#time) | Timestamp of last milestone update. | -| `webPath` | [`String!`](#string) | Web path of the milestone. | +#### Fields -### `MilestoneConnection` - -The connection type for Milestone. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[MilestoneEdge]`](#milestoneedge) | A list of edges. | -| `nodes` | [`[Milestone]`](#milestone) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `MilestoneEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`Milestone`](#milestone) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `createdAt` | [`Time!`](#time) | Timestamp of milestone creation. | +| `description` | [`String`](#string) | Description of the milestone. | +| `dueDate` | [`Time`](#time) | Timestamp of the milestone due date. | +| `groupMilestone` | [`Boolean!`](#boolean) | Indicates if milestone is at group level. | +| `id` | [`ID!`](#id) | ID of the milestone. | +| `iid` | [`ID!`](#id) | Internal ID of the milestone. | +| `projectMilestone` | [`Boolean!`](#boolean) | Indicates if milestone is at project level. | +| `report` | [`TimeboxReport`](#timeboxreport) | Historically accurate report about the timebox. | +| `startDate` | [`Time`](#time) | Timestamp of the milestone start date. | +| `state` | [`MilestoneStateEnum!`](#milestonestateenum) | State of the milestone. | +| `stats` | [`MilestoneStats`](#milestonestats) | Milestone statistics. | +| `subgroupMilestone` | [`Boolean!`](#boolean) | Indicates if milestone is at subgroup level. | +| `title` | [`String!`](#string) | Title of the milestone. | +| `updatedAt` | [`Time!`](#time) | Timestamp of last milestone update. | +| `webPath` | [`String!`](#string) | Web path of the milestone. | ### `MilestoneStats` Contains statistics about a milestone. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `closedIssuesCount` | [`Int`](#int) | Number of closed issues associated with the milestone. | -| `totalIssuesCount` | [`Int`](#int) | Total number of issues associated with the milestone. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `closedIssuesCount` | [`Int`](#int) | Number of closed issues associated with the milestone. | +| `totalIssuesCount` | [`Int`](#int) | Total number of issues associated with the milestone. | ### `Namespace` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `actualRepositorySizeLimit` | [`Float`](#float) | Size limit for repositories in the namespace in bytes. | -| `additionalPurchasedStorageSize` | [`Float`](#float) | Additional storage purchased for the root namespace in bytes. | -| `complianceFrameworks` | [`ComplianceFrameworkConnection`](#complianceframeworkconnection) | Compliance frameworks available to projects in this namespace. Available only when feature flag `ff_custom_compliance_frameworks` is enabled. | -| `containsLockedProjects` | [`Boolean!`](#boolean) | Includes at least one project where the repository size exceeds the limit. | -| `description` | [`String`](#string) | Description of the namespace. | -| `descriptionHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `description`. | -| `fullName` | [`String!`](#string) | Full name of the namespace. | -| `fullPath` | [`ID!`](#id) | Full path of the namespace. | -| `id` | [`ID!`](#id) | ID of the namespace. | -| `isTemporaryStorageIncreaseEnabled` | [`Boolean!`](#boolean) | Status of the temporary storage increase. | -| `lfsEnabled` | [`Boolean`](#boolean) | Indicates if Large File Storage (LFS) is enabled for namespace. | -| `name` | [`String!`](#string) | Name of the namespace. | -| `packageSettings` | [`PackageSettings`](#packagesettings) | The package settings for the namespace. | -| `path` | [`String!`](#string) | Path of the namespace. | -| `projects` | [`ProjectConnection!`](#projectconnection) | Projects within this namespace. | -| `repositorySizeExcessProjectCount` | [`Int!`](#int) | Number of projects in the root namespace where the repository size exceeds the limit. | -| `requestAccessEnabled` | [`Boolean`](#boolean) | Indicates if users can request access to namespace. | -| `rootStorageStatistics` | [`RootStorageStatistics`](#rootstoragestatistics) | Aggregated storage statistics of the namespace. Only available for root namespaces. | -| `storageSizeLimit` | [`Float`](#float) | Total storage limit of the root namespace in bytes. | -| `temporaryStorageIncreaseEndsOn` | [`Time`](#time) | Date until the temporary storage increase is active. | -| `totalRepositorySize` | [`Float`](#float) | Total repository size of all projects in the root namespace in bytes. | -| `totalRepositorySizeExcess` | [`Float`](#float) | Total excess repository size of all projects in the root namespace in bytes. | -| `visibility` | [`String`](#string) | Visibility of the namespace. | +#### Fields -### `NamespaceConnection` +| Name | Type | Description | +| ---- | ---- | ----------- | +| `actualRepositorySizeLimit` | [`Float`](#float) | Size limit for repositories in the namespace in bytes. | +| `additionalPurchasedStorageSize` | [`Float`](#float) | Additional storage purchased for the root namespace in bytes. | +| `containsLockedProjects` | [`Boolean!`](#boolean) | Includes at least one project where the repository size exceeds the limit. | +| `description` | [`String`](#string) | Description of the namespace. | +| `descriptionHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `description`. | +| `fullName` | [`String!`](#string) | Full name of the namespace. | +| `fullPath` | [`ID!`](#id) | Full path of the namespace. | +| `id` | [`ID!`](#id) | ID of the namespace. | +| `isTemporaryStorageIncreaseEnabled` | [`Boolean!`](#boolean) | Status of the temporary storage increase. | +| `lfsEnabled` | [`Boolean`](#boolean) | Indicates if Large File Storage (LFS) is enabled for namespace. | +| `name` | [`String!`](#string) | Name of the namespace. | +| `packageSettings` | [`PackageSettings`](#packagesettings) | The package settings for the namespace. | +| `path` | [`String!`](#string) | Path of the namespace. | +| `repositorySizeExcessProjectCount` | [`Int!`](#int) | Number of projects in the root namespace where the repository size exceeds the limit. | +| `requestAccessEnabled` | [`Boolean`](#boolean) | Indicates if users can request access to namespace. | +| `rootStorageStatistics` | [`RootStorageStatistics`](#rootstoragestatistics) | Aggregated storage statistics of the namespace. Only available for root namespaces. | +| `storageSizeLimit` | [`Float`](#float) | Total storage limit of the root namespace in bytes. | +| `temporaryStorageIncreaseEndsOn` | [`Time`](#time) | Date until the temporary storage increase is active. | +| `totalRepositorySize` | [`Float`](#float) | Total repository size of all projects in the root namespace in bytes. | +| `totalRepositorySizeExcess` | [`Float`](#float) | Total excess repository size of all projects in the root namespace in bytes. | +| `visibility` | [`String`](#string) | Visibility of the namespace. | -The connection type for Namespace. +#### Fields with arguments -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[NamespaceEdge]`](#namespaceedge) | A list of edges. | -| `nodes` | [`[Namespace]`](#namespace) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | +##### `Namespace.complianceFrameworks` -### `NamespaceEdge` +Compliance frameworks available to projects in this namespace. Available only when feature flag `ff_custom_compliance_frameworks` is enabled. -An edge in a connection. +Returns [`ComplianceFrameworkConnection`](#complianceframeworkconnection). -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`Namespace`](#namespace) | The item at the end of the edge. | +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. -### `NamespaceIncreaseStorageTemporarilyPayload` +###### Arguments -Autogenerated return type of NamespaceIncreaseStorageTemporarily. +| Name | Type | Description | +| ---- | ---- | ----------- | +| `id` | [`ComplianceManagementFrameworkID`](#compliancemanagementframeworkid) | Global ID of a specific compliance framework to return. | -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `namespace` | [`Namespace`](#namespace) | The namespace after mutation. | +##### `Namespace.projects` + +Projects within this namespace. + +Returns [`ProjectConnection!`](#projectconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `hasCodeCoverage` | [`Boolean`](#boolean) | Returns only the projects which have code coverage. | +| `hasVulnerabilities` | [`Boolean`](#boolean) | Returns only the projects which have vulnerabilities. | +| `ids` | [`[ID!]`](#id) | Filter projects by IDs. | +| `includeSubgroups` | [`Boolean`](#boolean) | Include also subgroup projects. | +| `search` | [`String`](#string) | Search project with most similar names or paths. | +| `sort` | [`NamespaceProjectSort`](#namespaceprojectsort) | Sort projects by this criteria. | ### `Note` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `author` | [`User!`](#user) | User who wrote this note. | -| `body` | [`String!`](#string) | Content of the note. | -| `bodyHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `note`. | -| `confidential` | [`Boolean`](#boolean) | Indicates if this note is confidential. | -| `createdAt` | [`Time!`](#time) | Timestamp of the note creation. | -| `discussion` | [`Discussion`](#discussion) | The discussion this note is a part of. | -| `id` | [`NoteID!`](#noteid) | ID of the note. | -| `position` | [`DiffPosition`](#diffposition) | The position of this note on a diff. | -| `project` | [`Project`](#project) | Project associated with the note. | -| `resolvable` | [`Boolean!`](#boolean) | Indicates if the object can be resolved. | -| `resolved` | [`Boolean!`](#boolean) | Indicates if the object is resolved. | -| `resolvedAt` | [`Time`](#time) | Timestamp of when the object was resolved. | -| `resolvedBy` | [`User`](#user) | User who resolved the object. | -| `system` | [`Boolean!`](#boolean) | Indicates whether this note was created by the system or by a user. | -| `systemNoteIconName` | [`String`](#string) | Name of the icon corresponding to a system note. | -| `updatedAt` | [`Time!`](#time) | Timestamp of the note's last activity. | -| `url` | [`String`](#string) | URL to view this Note in the Web UI. | -| `userPermissions` | [`NotePermissions!`](#notepermissions) | Permissions for the current user on the resource. | +#### Fields -### `NoteConnection` - -The connection type for Note. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[NoteEdge]`](#noteedge) | A list of edges. | -| `nodes` | [`[Note]`](#note) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `NoteEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`Note`](#note) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `author` | [`User!`](#user) | User who wrote this note. | +| `body` | [`String!`](#string) | Content of the note. | +| `bodyHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `note`. | +| `confidential` | [`Boolean`](#boolean) | Indicates if this note is confidential. | +| `createdAt` | [`Time!`](#time) | Timestamp of the note creation. | +| `discussion` | [`Discussion`](#discussion) | The discussion this note is a part of. | +| `id` | [`NoteID!`](#noteid) | ID of the note. | +| `position` | [`DiffPosition`](#diffposition) | The position of this note on a diff. | +| `project` | [`Project`](#project) | Project associated with the note. | +| `resolvable` | [`Boolean!`](#boolean) | Indicates if the object can be resolved. | +| `resolved` | [`Boolean!`](#boolean) | Indicates if the object is resolved. | +| `resolvedAt` | [`Time`](#time) | Timestamp of when the object was resolved. | +| `resolvedBy` | [`User`](#user) | User who resolved the object. | +| `system` | [`Boolean!`](#boolean) | Indicates whether this note was created by the system or by a user. | +| `systemNoteIconName` | [`String`](#string) | Name of the icon corresponding to a system note. | +| `updatedAt` | [`Time!`](#time) | Timestamp of the note's last activity. | +| `url` | [`String`](#string) | URL to view this Note in the Web UI. | +| `userPermissions` | [`NotePermissions!`](#notepermissions) | Permissions for the current user on the resource. | ### `NotePermissions` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `adminNote` | [`Boolean!`](#boolean) | Indicates the user can perform `admin_note` on this resource. | -| `awardEmoji` | [`Boolean!`](#boolean) | Indicates the user can perform `award_emoji` on this resource. | -| `createNote` | [`Boolean!`](#boolean) | Indicates the user can perform `create_note` on this resource. | -| `readNote` | [`Boolean!`](#boolean) | Indicates the user can perform `read_note` on this resource. | -| `repositionNote` | [`Boolean!`](#boolean) | Indicates the user can perform `reposition_note` on this resource. | -| `resolveNote` | [`Boolean!`](#boolean) | Indicates the user can perform `resolve_note` on this resource. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `adminNote` | [`Boolean!`](#boolean) | Indicates the user can perform `admin_note` on this resource. | +| `awardEmoji` | [`Boolean!`](#boolean) | Indicates the user can perform `award_emoji` on this resource. | +| `createNote` | [`Boolean!`](#boolean) | Indicates the user can perform `create_note` on this resource. | +| `readNote` | [`Boolean!`](#boolean) | Indicates the user can perform `read_note` on this resource. | +| `repositionNote` | [`Boolean!`](#boolean) | Indicates the user can perform `reposition_note` on this resource. | +| `resolveNote` | [`Boolean!`](#boolean) | Indicates the user can perform `resolve_note` on this resource. | ### `OncallParticipantType` The rotation participant and color palette. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `colorPalette` | [`String`](#string) | The color palette to assign to the on-call user. For example "blue". | -| `colorWeight` | [`String`](#string) | The color weight to assign to for the on-call user, for example "500". Max 4 chars. For easy identification of the user. | -| `id` | [`IncidentManagementOncallParticipantID!`](#incidentmanagementoncallparticipantid) | ID of the on-call participant. | -| `user` | [`User!`](#user) | The user who is participating. | +#### Fields -### `OncallParticipantTypeConnection` - -The connection type for OncallParticipantType. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[OncallParticipantTypeEdge]`](#oncallparticipanttypeedge) | A list of edges. | -| `nodes` | [`[OncallParticipantType]`](#oncallparticipanttype) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `OncallParticipantTypeEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`OncallParticipantType`](#oncallparticipanttype) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `colorPalette` | [`String`](#string) | The color palette to assign to the on-call user. For example "blue". | +| `colorWeight` | [`String`](#string) | The color weight to assign to for the on-call user, for example "500". Max 4 chars. For easy identification of the user. | +| `id` | [`IncidentManagementOncallParticipantID!`](#incidentmanagementoncallparticipantid) | ID of the on-call participant. | +| `user` | [`User!`](#user) | The user who is participating. | ### `OncallRotationActivePeriodType` Active period time range for on-call rotation. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `endTime` | [`String`](#string) | The end of the rotation active period. | -| `startTime` | [`String`](#string) | The start of the rotation active period. | +#### Fields -### `OncallRotationCreatePayload` - -Autogenerated return type of OncallRotationCreate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `oncallRotation` | [`IncidentManagementOncallRotation`](#incidentmanagementoncallrotation) | The on-call rotation. | - -### `OncallRotationDestroyPayload` - -Autogenerated return type of OncallRotationDestroy. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `oncallRotation` | [`IncidentManagementOncallRotation`](#incidentmanagementoncallrotation) | The on-call rotation. | - -### `OncallRotationUpdatePayload` - -Autogenerated return type of OncallRotationUpdate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `oncallRotation` | [`IncidentManagementOncallRotation`](#incidentmanagementoncallrotation) | The on-call rotation. | - -### `OncallScheduleCreatePayload` - -Autogenerated return type of OncallScheduleCreate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `oncallSchedule` | [`IncidentManagementOncallSchedule`](#incidentmanagementoncallschedule) | The on-call schedule. | - -### `OncallScheduleDestroyPayload` - -Autogenerated return type of OncallScheduleDestroy. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `oncallSchedule` | [`IncidentManagementOncallSchedule`](#incidentmanagementoncallschedule) | The on-call schedule. | - -### `OncallScheduleUpdatePayload` - -Autogenerated return type of OncallScheduleUpdate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `oncallSchedule` | [`IncidentManagementOncallSchedule`](#incidentmanagementoncallschedule) | The on-call schedule. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `endTime` | [`String`](#string) | The end of the rotation active period. | +| `startTime` | [`String`](#string) | The start of the rotation active period. | ### `Package` Represents a package in the Package Registry. Note that this type is in beta and susceptible to changes. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `createdAt` | [`Time!`](#time) | Date of creation. | -| `id` | [`PackagesPackageID!`](#packagespackageid) | ID of the package. | -| `metadata` | [`PackageMetadata`](#packagemetadata) | Package metadata. | -| `name` | [`String!`](#string) | Name of the package. | -| `packageType` | [`PackageTypeEnum!`](#packagetypeenum) | Package type. | -| `pipelines` | [`PipelineConnection`](#pipelineconnection) | Pipelines that built the package. | -| `project` | [`Project!`](#project) | Project where the package is stored. | -| `tags` | [`PackageTagConnection`](#packagetagconnection) | Package tags. | -| `updatedAt` | [`Time!`](#time) | Date of most recent update. | -| `version` | [`String`](#string) | Version string. | -| `versions` **{warning-solid}** | [`PackageConnection`](#packageconnection) | **Deprecated** in 13.11. This field is now only returned in the PackageDetailsType. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `createdAt` | [`Time!`](#time) | Date of creation. | +| `id` | [`PackagesPackageID!`](#packagespackageid) | ID of the package. | +| `metadata` | [`PackageMetadata`](#packagemetadata) | Package metadata. | +| `name` | [`String!`](#string) | Name of the package. | +| `packageType` | [`PackageTypeEnum!`](#packagetypeenum) | Package type. | +| `pipelines` | [`PipelineConnection`](#pipelineconnection) | Pipelines that built the package. | +| `project` | [`Project!`](#project) | Project where the package is stored. | +| `tags` | [`PackageTagConnection`](#packagetagconnection) | Package tags. | +| `updatedAt` | [`Time!`](#time) | Date of most recent update. | +| `version` | [`String`](#string) | Version string. | +| `versions` **{warning-solid}** | [`PackageConnection`](#packageconnection) | **Deprecated** in 13.11. This field is now only returned in the PackageDetailsType. | ### `PackageComposerJsonType` Represents a composer JSON file. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `license` | [`String`](#string) | The license set in the Composer JSON file. | -| `name` | [`String`](#string) | The name set in the Composer JSON file. | -| `type` | [`String`](#string) | The type set in the Composer JSON file. | -| `version` | [`String`](#string) | The version set in the Composer JSON file. | +#### Fields -### `PackageConnection` - -The connection type for Package. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[PackageEdge]`](#packageedge) | A list of edges. | -| `nodes` | [`[Package]`](#package) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `license` | [`String`](#string) | The license set in the Composer JSON file. | +| `name` | [`String`](#string) | The name set in the Composer JSON file. | +| `type` | [`String`](#string) | The type set in the Composer JSON file. | +| `version` | [`String`](#string) | The version set in the Composer JSON file. | ### `PackageDetailsType` Represents a package details in the Package Registry. Note that this type is in beta and susceptible to changes. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `createdAt` | [`Time!`](#time) | Date of creation. | -| `id` | [`PackagesPackageID!`](#packagespackageid) | ID of the package. | -| `metadata` | [`PackageMetadata`](#packagemetadata) | Package metadata. | -| `name` | [`String!`](#string) | Name of the package. | -| `packageFiles` | [`PackageFileConnection`](#packagefileconnection) | Package files. | -| `packageType` | [`PackageTypeEnum!`](#packagetypeenum) | Package type. | -| `pipelines` | [`PipelineConnection`](#pipelineconnection) | Pipelines that built the package. | -| `project` | [`Project!`](#project) | Project where the package is stored. | -| `tags` | [`PackageTagConnection`](#packagetagconnection) | Package tags. | -| `updatedAt` | [`Time!`](#time) | Date of most recent update. | -| `version` | [`String`](#string) | Version string. | -| `versions` | [`PackageConnection`](#packageconnection) | The other versions of the package. | +#### Fields -### `PackageEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`Package`](#package) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `createdAt` | [`Time!`](#time) | Date of creation. | +| `id` | [`PackagesPackageID!`](#packagespackageid) | ID of the package. | +| `metadata` | [`PackageMetadata`](#packagemetadata) | Package metadata. | +| `name` | [`String!`](#string) | Name of the package. | +| `packageFiles` | [`PackageFileConnection`](#packagefileconnection) | Package files. | +| `packageType` | [`PackageTypeEnum!`](#packagetypeenum) | Package type. | +| `pipelines` | [`PipelineConnection`](#pipelineconnection) | Pipelines that built the package. | +| `project` | [`Project!`](#project) | Project where the package is stored. | +| `tags` | [`PackageTagConnection`](#packagetagconnection) | Package tags. | +| `updatedAt` | [`Time!`](#time) | Date of most recent update. | +| `version` | [`String`](#string) | Version string. | +| `versions` | [`PackageConnection`](#packageconnection) | The other versions of the package. | ### `PackageFile` Represents a package file. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `createdAt` | [`Time!`](#time) | The created date. | -| `downloadPath` | [`String!`](#string) | Download path of the package file. | -| `fileMd5` | [`String`](#string) | Md5 of the package file. | -| `fileMetadata` | [`PackageFileMetadata`](#packagefilemetadata) | File metadata. | -| `fileName` | [`String!`](#string) | Name of the package file. | -| `fileSha1` | [`String`](#string) | Sha1 of the package file. | -| `fileSha256` | [`String`](#string) | Sha256 of the package file. | -| `id` | [`PackagesPackageFileID!`](#packagespackagefileid) | ID of the file. | -| `size` | [`String!`](#string) | Size of the package file. | -| `updatedAt` | [`Time!`](#time) | The updated date. | +#### Fields -### `PackageFileConnection` - -The connection type for PackageFile. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[PackageFileEdge]`](#packagefileedge) | A list of edges. | -| `nodes` | [`[PackageFile]`](#packagefile) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `PackageFileEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`PackageFile`](#packagefile) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `createdAt` | [`Time!`](#time) | The created date. | +| `downloadPath` | [`String!`](#string) | Download path of the package file. | +| `fileMd5` | [`String`](#string) | Md5 of the package file. | +| `fileMetadata` | [`PackageFileMetadata`](#packagefilemetadata) | File metadata. | +| `fileName` | [`String!`](#string) | Name of the package file. | +| `fileSha1` | [`String`](#string) | Sha1 of the package file. | +| `fileSha256` | [`String`](#string) | Sha256 of the package file. | +| `id` | [`PackagesPackageFileID!`](#packagespackagefileid) | ID of the file. | +| `size` | [`String!`](#string) | Size of the package file. | +| `updatedAt` | [`Time!`](#time) | The updated date. | ### `PackageFileRegistry` Represents the Geo sync and verification state of a package file. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `createdAt` | [`Time`](#time) | Timestamp when the PackageFileRegistry was created. | -| `id` | [`ID!`](#id) | ID of the PackageFileRegistry. | -| `lastSyncFailure` | [`String`](#string) | Error message during sync of the PackageFileRegistry. | -| `lastSyncedAt` | [`Time`](#time) | Timestamp of the most recent successful sync of the PackageFileRegistry. | -| `packageFileId` | [`ID!`](#id) | ID of the PackageFile. | -| `retryAt` | [`Time`](#time) | Timestamp after which the PackageFileRegistry should be resynced. | -| `retryCount` | [`Int`](#int) | Number of consecutive failed sync attempts of the PackageFileRegistry. | -| `state` | [`RegistryState`](#registrystate) | Sync state of the PackageFileRegistry. | +#### Fields -### `PackageFileRegistryConnection` - -The connection type for PackageFileRegistry. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[PackageFileRegistryEdge]`](#packagefileregistryedge) | A list of edges. | -| `nodes` | [`[PackageFileRegistry]`](#packagefileregistry) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `PackageFileRegistryEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`PackageFileRegistry`](#packagefileregistry) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `createdAt` | [`Time`](#time) | Timestamp when the PackageFileRegistry was created. | +| `id` | [`ID!`](#id) | ID of the PackageFileRegistry. | +| `lastSyncFailure` | [`String`](#string) | Error message during sync of the PackageFileRegistry. | +| `lastSyncedAt` | [`Time`](#time) | Timestamp of the most recent successful sync of the PackageFileRegistry. | +| `packageFileId` | [`ID!`](#id) | ID of the PackageFile. | +| `retryAt` | [`Time`](#time) | Timestamp after which the PackageFileRegistry should be resynced. | +| `retryCount` | [`Int`](#int) | Number of consecutive failed sync attempts of the PackageFileRegistry. | +| `state` | [`RegistryState`](#registrystate) | Sync state of the PackageFileRegistry. | ### `PackageSettings` Namespace-level Package Registry settings. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `mavenDuplicateExceptionRegex` | [`UntrustedRegexp`](#untrustedregexp) | When maven_duplicates_allowed is false, you can publish duplicate packages with names that match this regex. Otherwise, this setting has no effect. | -| `mavenDuplicatesAllowed` | [`Boolean!`](#boolean) | Indicates whether duplicate Maven packages are allowed for this namespace. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `mavenDuplicateExceptionRegex` | [`UntrustedRegexp`](#untrustedregexp) | When maven_duplicates_allowed is false, you can publish duplicate packages with names that match this regex. Otherwise, this setting has no effect. | +| `mavenDuplicatesAllowed` | [`Boolean!`](#boolean) | Indicates whether duplicate Maven packages are allowed for this namespace. | ### `PackageTag` Represents a package tag. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `createdAt` | [`Time!`](#time) | The created date. | -| `id` | [`ID!`](#id) | The ID of the tag. | -| `name` | [`String!`](#string) | The name of the tag. | -| `updatedAt` | [`Time!`](#time) | The updated date. | +#### Fields -### `PackageTagConnection` - -The connection type for PackageTag. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[PackageTagEdge]`](#packagetagedge) | A list of edges. | -| `nodes` | [`[PackageTag]`](#packagetag) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `PackageTagEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`PackageTag`](#packagetag) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `createdAt` | [`Time!`](#time) | The created date. | +| `id` | [`ID!`](#id) | The ID of the tag. | +| `name` | [`String!`](#string) | The name of the tag. | +| `updatedAt` | [`Time!`](#time) | The updated date. | ### `PageInfo` Information about pagination in a connection. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `endCursor` | [`String`](#string) | When paginating forwards, the cursor to continue. | -| `hasNextPage` | [`Boolean!`](#boolean) | When paginating forwards, are there more items?. | -| `hasPreviousPage` | [`Boolean!`](#boolean) | When paginating backwards, are there more items?. | -| `startCursor` | [`String`](#string) | When paginating backwards, the cursor to continue. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `endCursor` | [`String`](#string) | When paginating forwards, the cursor to continue. | +| `hasNextPage` | [`Boolean!`](#boolean) | When paginating forwards, are there more items?. | +| `hasPreviousPage` | [`Boolean!`](#boolean) | When paginating backwards, are there more items?. | +| `startCursor` | [`String`](#string) | When paginating backwards, the cursor to continue. | ### `Pipeline` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `active` | [`Boolean!`](#boolean) | Indicates if the pipeline is active. | -| `beforeSha` | [`String`](#string) | Base SHA of the source branch. | -| `cancelable` | [`Boolean!`](#boolean) | Specifies if a pipeline can be canceled. | -| `commitPath` | [`String`](#string) | Path to the commit that triggered the pipeline. | -| `committedAt` | [`Time`](#time) | Timestamp of the pipeline's commit. | -| `configSource` | [`PipelineConfigSourceEnum`](#pipelineconfigsourceenum) | Configuration source of the pipeline (UNKNOWN_SOURCE, REPOSITORY_SOURCE, AUTO_DEVOPS_SOURCE, WEBIDE_SOURCE, REMOTE_SOURCE, EXTERNAL_PROJECT_SOURCE, BRIDGE_SOURCE, PARAMETER_SOURCE, COMPLIANCE_SOURCE). | -| `coverage` | [`Float`](#float) | Coverage percentage. | -| `createdAt` | [`Time!`](#time) | Timestamp of the pipeline's creation. | -| `detailedStatus` | [`DetailedStatus!`](#detailedstatus) | Detailed status of the pipeline. | -| `downstream` | [`PipelineConnection`](#pipelineconnection) | Pipelines this pipeline will trigger. | -| `duration` | [`Int`](#int) | Duration of the pipeline in seconds. | -| `finishedAt` | [`Time`](#time) | Timestamp of the pipeline's completion. | -| `id` | [`ID!`](#id) | ID of the pipeline. | -| `iid` | [`String!`](#string) | Internal ID of the pipeline. | -| `job` | [`CiJob`](#cijob) | A specific job in this pipeline, either by name or ID. | -| `jobs` | [`CiJobConnection`](#cijobconnection) | Jobs belonging to the pipeline. | -| `path` | [`String`](#string) | Relative path to the pipeline's page. | -| `project` | [`Project`](#project) | Project the pipeline belongs to. | -| `retryable` | [`Boolean!`](#boolean) | Specifies if a pipeline can be retried. | -| `securityReportFindings` | [`PipelineSecurityReportFindingConnection`](#pipelinesecurityreportfindingconnection) | Vulnerability findings reported on the pipeline. | -| `securityReportSummary` | [`SecurityReportSummary`](#securityreportsummary) | Vulnerability and scanned resource counts for each security scanner of the pipeline. | -| `sha` | [`String!`](#string) | SHA of the pipeline's commit. | -| `sourceJob` | [`CiJob`](#cijob) | Job where pipeline was triggered from. | -| `stages` | [`CiStageConnection`](#cistageconnection) | Stages of the pipeline. | -| `startedAt` | [`Time`](#time) | Timestamp when the pipeline was started. | -| `status` | [`PipelineStatusEnum!`](#pipelinestatusenum) | Status of the pipeline (CREATED, WAITING_FOR_RESOURCE, PREPARING, PENDING, RUNNING, FAILED, SUCCESS, CANCELED, SKIPPED, MANUAL, SCHEDULED). | -| `testReportSummary` | [`TestReportSummary!`](#testreportsummary) | Summary of the test report generated by the pipeline. | -| `testSuite` | [`TestSuite`](#testsuite) | A specific test suite in a pipeline test report. | -| `updatedAt` | [`Time!`](#time) | Timestamp of the pipeline's last activity. | -| `upstream` | [`Pipeline`](#pipeline) | Pipeline that triggered the pipeline. | -| `user` | [`User`](#user) | Pipeline user. | -| `userPermissions` | [`PipelinePermissions!`](#pipelinepermissions) | Permissions for the current user on the resource. | -| `usesNeeds` | [`Boolean`](#boolean) | Indicates if the pipeline has jobs with `needs` dependencies. | -| `warnings` | [`Boolean!`](#boolean) | Indicates if a pipeline has warnings. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `active` | [`Boolean!`](#boolean) | Indicates if the pipeline is active. | +| `beforeSha` | [`String`](#string) | Base SHA of the source branch. | +| `cancelable` | [`Boolean!`](#boolean) | Specifies if a pipeline can be canceled. | +| `commitPath` | [`String`](#string) | Path to the commit that triggered the pipeline. | +| `committedAt` | [`Time`](#time) | Timestamp of the pipeline's commit. | +| `configSource` | [`PipelineConfigSourceEnum`](#pipelineconfigsourceenum) | Configuration source of the pipeline (UNKNOWN_SOURCE, REPOSITORY_SOURCE, AUTO_DEVOPS_SOURCE, WEBIDE_SOURCE, REMOTE_SOURCE, EXTERNAL_PROJECT_SOURCE, BRIDGE_SOURCE, PARAMETER_SOURCE, COMPLIANCE_SOURCE). | +| `coverage` | [`Float`](#float) | Coverage percentage. | +| `createdAt` | [`Time!`](#time) | Timestamp of the pipeline's creation. | +| `detailedStatus` | [`DetailedStatus!`](#detailedstatus) | Detailed status of the pipeline. | +| `downstream` | [`PipelineConnection`](#pipelineconnection) | Pipelines this pipeline will trigger. | +| `duration` | [`Int`](#int) | Duration of the pipeline in seconds. | +| `finishedAt` | [`Time`](#time) | Timestamp of the pipeline's completion. | +| `id` | [`ID!`](#id) | ID of the pipeline. | +| `iid` | [`String!`](#string) | Internal ID of the pipeline. | +| `path` | [`String`](#string) | Relative path to the pipeline's page. | +| `project` | [`Project`](#project) | Project the pipeline belongs to. | +| `retryable` | [`Boolean!`](#boolean) | Specifies if a pipeline can be retried. | +| `securityReportSummary` | [`SecurityReportSummary`](#securityreportsummary) | Vulnerability and scanned resource counts for each security scanner of the pipeline. | +| `sha` | [`String!`](#string) | SHA of the pipeline's commit. | +| `sourceJob` | [`CiJob`](#cijob) | Job where pipeline was triggered from. | +| `stages` | [`CiStageConnection`](#cistageconnection) | Stages of the pipeline. | +| `startedAt` | [`Time`](#time) | Timestamp when the pipeline was started. | +| `status` | [`PipelineStatusEnum!`](#pipelinestatusenum) | Status of the pipeline (CREATED, WAITING_FOR_RESOURCE, PREPARING, PENDING, RUNNING, FAILED, SUCCESS, CANCELED, SKIPPED, MANUAL, SCHEDULED). | +| `testReportSummary` | [`TestReportSummary!`](#testreportsummary) | Summary of the test report generated by the pipeline. | +| `updatedAt` | [`Time!`](#time) | Timestamp of the pipeline's last activity. | +| `upstream` | [`Pipeline`](#pipeline) | Pipeline that triggered the pipeline. | +| `user` | [`User`](#user) | Pipeline user. | +| `userPermissions` | [`PipelinePermissions!`](#pipelinepermissions) | Permissions for the current user on the resource. | +| `usesNeeds` | [`Boolean`](#boolean) | Indicates if the pipeline has jobs with `needs` dependencies. | +| `warnings` | [`Boolean!`](#boolean) | Indicates if a pipeline has warnings. | + +#### Fields with arguments + +##### `Pipeline.job` + +A specific job in this pipeline, either by name or ID. + +Returns [`CiJob`](#cijob). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `id` | [`JobID`](#jobid) | ID of the job. | +| `name` | [`String`](#string) | Name of the job. | + +##### `Pipeline.jobs` + +Jobs belonging to the pipeline. + +Returns [`CiJobConnection`](#cijobconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `securityReportTypes` | [`[SecurityReportTypeEnum!]`](#securityreporttypeenum) | Filter jobs by the type of security report they produce. | +| `statuses` | [`[CiJobStatus!]`](#cijobstatus) | Filter jobs by status. | + +##### `Pipeline.securityReportFindings` + +Vulnerability findings reported on the pipeline. + +Returns [`PipelineSecurityReportFindingConnection`](#pipelinesecurityreportfindingconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `reportType` | [`[String!]`](#string) | Filter vulnerability findings by report type. | +| `scanner` | [`[String!]`](#string) | Filter vulnerability findings by Scanner.externalId. | +| `severity` | [`[String!]`](#string) | Filter vulnerability findings by severity. | + +##### `Pipeline.testSuite` + +A specific test suite in a pipeline test report. + +Returns [`TestSuite`](#testsuite). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `buildIds` | [`[ID!]!`](#id) | IDs of the builds used to run the test suite. | ### `PipelineAnalytics` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `monthPipelinesLabels` | [`[String!]`](#string) | Labels for the monthly pipeline count. | -| `monthPipelinesSuccessful` | [`[Int!]`](#int) | Total monthly successful pipeline count. | -| `monthPipelinesTotals` | [`[Int!]`](#int) | Total monthly pipeline count. | -| `pipelineTimesLabels` | [`[String!]`](#string) | Pipeline times labels. | -| `pipelineTimesValues` | [`[Int!]`](#int) | Pipeline times. | -| `weekPipelinesLabels` | [`[String!]`](#string) | Labels for the weekly pipeline count. | -| `weekPipelinesSuccessful` | [`[Int!]`](#int) | Total weekly successful pipeline count. | -| `weekPipelinesTotals` | [`[Int!]`](#int) | Total weekly pipeline count. | -| `yearPipelinesLabels` | [`[String!]`](#string) | Labels for the yearly pipeline count. | -| `yearPipelinesSuccessful` | [`[Int!]`](#int) | Total yearly successful pipeline count. | -| `yearPipelinesTotals` | [`[Int!]`](#int) | Total yearly pipeline count. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `monthPipelinesLabels` | [`[String!]`](#string) | Labels for the monthly pipeline count. | +| `monthPipelinesSuccessful` | [`[Int!]`](#int) | Total monthly successful pipeline count. | +| `monthPipelinesTotals` | [`[Int!]`](#int) | Total monthly pipeline count. | +| `pipelineTimesLabels` | [`[String!]`](#string) | Pipeline times labels. | +| `pipelineTimesValues` | [`[Int!]`](#int) | Pipeline times. | +| `weekPipelinesLabels` | [`[String!]`](#string) | Labels for the weekly pipeline count. | +| `weekPipelinesSuccessful` | [`[Int!]`](#int) | Total weekly successful pipeline count. | +| `weekPipelinesTotals` | [`[Int!]`](#int) | Total weekly pipeline count. | +| `yearPipelinesLabels` | [`[String!]`](#string) | Labels for the yearly pipeline count. | +| `yearPipelinesSuccessful` | [`[Int!]`](#int) | Total yearly successful pipeline count. | +| `yearPipelinesTotals` | [`[Int!]`](#int) | Total yearly pipeline count. | ### `PipelineArtifactRegistry` Represents the Geo sync and verification state of a pipeline artifact. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `createdAt` | [`Time`](#time) | Timestamp when the PipelineArtifactRegistry was created. | -| `id` | [`ID!`](#id) | ID of the PipelineArtifactRegistry. | -| `lastSyncFailure` | [`String`](#string) | Error message during sync of the PipelineArtifactRegistry. | -| `lastSyncedAt` | [`Time`](#time) | Timestamp of the most recent successful sync of the PipelineArtifactRegistry. | -| `pipelineArtifactId` | [`ID!`](#id) | ID of the pipeline artifact. | -| `retryAt` | [`Time`](#time) | Timestamp after which the PipelineArtifactRegistry should be resynced. | -| `retryCount` | [`Int`](#int) | Number of consecutive failed sync attempts of the PipelineArtifactRegistry. | -| `state` | [`RegistryState`](#registrystate) | Sync state of the PipelineArtifactRegistry. | +#### Fields -### `PipelineArtifactRegistryConnection` - -The connection type for PipelineArtifactRegistry. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[PipelineArtifactRegistryEdge]`](#pipelineartifactregistryedge) | A list of edges. | -| `nodes` | [`[PipelineArtifactRegistry]`](#pipelineartifactregistry) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `PipelineArtifactRegistryEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`PipelineArtifactRegistry`](#pipelineartifactregistry) | The item at the end of the edge. | - -### `PipelineCancelPayload` - -Autogenerated return type of PipelineCancel. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `PipelineConnection` - -The connection type for Pipeline. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `count` | [`Int!`](#int) | Total count of collection. | -| `edges` | [`[PipelineEdge]`](#pipelineedge) | A list of edges. | -| `nodes` | [`[Pipeline]`](#pipeline) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `PipelineDestroyPayload` - -Autogenerated return type of PipelineDestroy. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `PipelineEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`Pipeline`](#pipeline) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `createdAt` | [`Time`](#time) | Timestamp when the PipelineArtifactRegistry was created. | +| `id` | [`ID!`](#id) | ID of the PipelineArtifactRegistry. | +| `lastSyncFailure` | [`String`](#string) | Error message during sync of the PipelineArtifactRegistry. | +| `lastSyncedAt` | [`Time`](#time) | Timestamp of the most recent successful sync of the PipelineArtifactRegistry. | +| `pipelineArtifactId` | [`ID!`](#id) | ID of the pipeline artifact. | +| `retryAt` | [`Time`](#time) | Timestamp after which the PipelineArtifactRegistry should be resynced. | +| `retryCount` | [`Int`](#int) | Number of consecutive failed sync attempts of the PipelineArtifactRegistry. | +| `state` | [`RegistryState`](#registrystate) | Sync state of the PipelineArtifactRegistry. | ### `PipelinePermissions` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `adminPipeline` | [`Boolean!`](#boolean) | Indicates the user can perform `admin_pipeline` on this resource. | -| `destroyPipeline` | [`Boolean!`](#boolean) | Indicates the user can perform `destroy_pipeline` on this resource. | -| `updatePipeline` | [`Boolean!`](#boolean) | Indicates the user can perform `update_pipeline` on this resource. | +#### Fields -### `PipelineRetryPayload` - -Autogenerated return type of PipelineRetry. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `pipeline` | [`Pipeline`](#pipeline) | The pipeline after mutation. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `adminPipeline` | [`Boolean!`](#boolean) | Indicates the user can perform `admin_pipeline` on this resource. | +| `destroyPipeline` | [`Boolean!`](#boolean) | Indicates the user can perform `destroy_pipeline` on this resource. | +| `updatePipeline` | [`Boolean!`](#boolean) | Indicates the user can perform `update_pipeline` on this resource. | ### `PipelineSecurityReportFinding` Represents vulnerability finding of a security report on the pipeline. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `confidence` | [`String`](#string) | Type of the security report that found the vulnerability. | -| `description` | [`String`](#string) | Description of the vulnerability finding. | -| `identifiers` | [`[VulnerabilityIdentifier!]!`](#vulnerabilityidentifier) | Identifiers of the vulnerabilit finding. | -| `location` | [`VulnerabilityLocation`](#vulnerabilitylocation) | Location metadata for the vulnerability. Its fields depend on the type of security scan that found the vulnerability. | -| `name` | [`String`](#string) | Name of the vulnerability finding. | -| `project` | [`Project`](#project) | The project on which the vulnerability finding was found. | -| `projectFingerprint` | [`String`](#string) | Name of the vulnerability finding. | -| `reportType` | [`VulnerabilityReportType`](#vulnerabilityreporttype) | Type of the security report that found the vulnerability finding. | -| `scanner` | [`VulnerabilityScanner`](#vulnerabilityscanner) | Scanner metadata for the vulnerability. | -| `severity` | [`VulnerabilitySeverity`](#vulnerabilityseverity) | Severity of the vulnerability finding. | -| `solution` | [`String`](#string) | URL to the vulnerability's details page. | -| `uuid` | [`String`](#string) | Name of the vulnerability finding. | +#### Fields -### `PipelineSecurityReportFindingConnection` - -The connection type for PipelineSecurityReportFinding. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[PipelineSecurityReportFindingEdge]`](#pipelinesecurityreportfindingedge) | A list of edges. | -| `nodes` | [`[PipelineSecurityReportFinding]`](#pipelinesecurityreportfinding) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `PipelineSecurityReportFindingEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`PipelineSecurityReportFinding`](#pipelinesecurityreportfinding) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `confidence` | [`String`](#string) | Type of the security report that found the vulnerability. | +| `description` | [`String`](#string) | Description of the vulnerability finding. | +| `identifiers` | [`[VulnerabilityIdentifier!]!`](#vulnerabilityidentifier) | Identifiers of the vulnerabilit finding. | +| `location` | [`VulnerabilityLocation`](#vulnerabilitylocation) | Location metadata for the vulnerability. Its fields depend on the type of security scan that found the vulnerability. | +| `name` | [`String`](#string) | Name of the vulnerability finding. | +| `project` | [`Project`](#project) | The project on which the vulnerability finding was found. | +| `projectFingerprint` | [`String`](#string) | Name of the vulnerability finding. | +| `reportType` | [`VulnerabilityReportType`](#vulnerabilityreporttype) | Type of the security report that found the vulnerability finding. | +| `scanner` | [`VulnerabilityScanner`](#vulnerabilityscanner) | Scanner metadata for the vulnerability. | +| `severity` | [`VulnerabilitySeverity`](#vulnerabilityseverity) | Severity of the vulnerability finding. | +| `solution` | [`String`](#string) | URL to the vulnerability's details page. | +| `uuid` | [`String`](#string) | Name of the vulnerability finding. | ### `Project` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `actualRepositorySizeLimit` | [`Float`](#float) | Size limit for the repository in bytes. | -| `alertManagementAlert` | [`AlertManagementAlert`](#alertmanagementalert) | A single Alert Management alert of the project. | -| `alertManagementAlertStatusCounts` | [`AlertManagementAlertStatusCountsType`](#alertmanagementalertstatuscountstype) | Counts of alerts by status for the project. | -| `alertManagementAlerts` | [`AlertManagementAlertConnection`](#alertmanagementalertconnection) | Alert Management alerts of the project. | -| `alertManagementHttpIntegrations` | [`AlertManagementHttpIntegrationConnection`](#alertmanagementhttpintegrationconnection) | HTTP Integrations which can receive alerts for the project. | -| `alertManagementIntegrations` | [`AlertManagementIntegrationConnection`](#alertmanagementintegrationconnection) | Integrations which can receive alerts for the project. | -| `alertManagementPayloadFields` | [`[AlertManagementPayloadAlertField!]`](#alertmanagementpayloadalertfield) | Extract alert fields from payload for custom mapping. | -| `allowMergeOnSkippedPipeline` | [`Boolean`](#boolean) | If `only_allow_merge_if_pipeline_succeeds` is true, indicates if merge requests of the project can also be merged with skipped jobs. | -| `apiFuzzingCiConfiguration` | [`ApiFuzzingCiConfiguration`](#apifuzzingciconfiguration) | API fuzzing configuration for the project. | -| `archived` | [`Boolean`](#boolean) | Indicates the archived status of the project. | -| `autocloseReferencedIssues` | [`Boolean`](#boolean) | Indicates if issues referenced by merge requests and commits within the default branch are closed automatically. | -| `avatarUrl` | [`String`](#string) | URL to avatar image file of the project. | -| `board` | [`Board`](#board) | A single board of the project. | -| `boards` | [`BoardConnection`](#boardconnection) | Boards of the project. | -| `ciCdSettings` | [`ProjectCiCdSetting`](#projectcicdsetting) | CI/CD settings for the project. | -| `clusterAgent` | [`ClusterAgent`](#clusteragent) | Find a single cluster agent by name. | -| `clusterAgents` | [`ClusterAgentConnection`](#clusteragentconnection) | Cluster agents associated with the project. | -| `codeCoverageSummary` | [`CodeCoverageSummary`](#codecoveragesummary) | Code coverage summary associated with the project. | -| `complianceFrameworks` | [`ComplianceFrameworkConnection`](#complianceframeworkconnection) | Compliance frameworks associated with the project. | -| `containerExpirationPolicy` | [`ContainerExpirationPolicy`](#containerexpirationpolicy) | The container expiration policy of the project. | -| `containerRegistryEnabled` | [`Boolean`](#boolean) | Indicates if the project stores Docker container images in a container registry. | -| `containerRepositories` | [`ContainerRepositoryConnection`](#containerrepositoryconnection) | Container repositories of the project. | -| `containerRepositoriesCount` | [`Int!`](#int) | Number of container repositories in the project. | -| `createdAt` | [`Time`](#time) | Timestamp of the project creation. | -| `dastProfiles` | [`DastProfileConnection`](#dastprofileconnection) | DAST Profiles associated with the project. | -| `dastScannerProfiles` | [`DastScannerProfileConnection`](#dastscannerprofileconnection) | The DAST scanner profiles associated with the project. | -| `dastSiteProfile` | [`DastSiteProfile`](#dastsiteprofile) | DAST Site Profile associated with the project. | -| `dastSiteProfiles` | [`DastSiteProfileConnection`](#dastsiteprofileconnection) | DAST Site Profiles associated with the project. | -| `dastSiteValidations` | [`DastSiteValidationConnection`](#dastsitevalidationconnection) | DAST Site Validations associated with the project. | -| `description` | [`String`](#string) | Short description of the project. | -| `descriptionHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `description`. | -| `environment` | [`Environment`](#environment) | A single environment of the project. | -| `environments` | [`EnvironmentConnection`](#environmentconnection) | Environments of the project. | -| `forksCount` | [`Int!`](#int) | Number of times the project has been forked. | -| `fullPath` | [`ID!`](#id) | Full path of the project. | -| `grafanaIntegration` | [`GrafanaIntegration`](#grafanaintegration) | Grafana integration details for the project. | -| `group` | [`Group`](#group) | Group of the project. | -| `httpUrlToRepo` | [`String`](#string) | URL to connect to the project via HTTPS. | -| `id` | [`ID!`](#id) | ID of the project. | -| `importStatus` | [`String`](#string) | Status of import background job of the project. | -| `incidentManagementOncallSchedules` | [`IncidentManagementOncallScheduleConnection`](#incidentmanagementoncallscheduleconnection) | Incident Management On-call schedules of the project. | -| `issue` | [`Issue`](#issue) | A single issue of the project. | -| `issueStatusCounts` | [`IssueStatusCountsType`](#issuestatuscountstype) | Counts of issues by status for the project. | -| `issues` | [`IssueConnection`](#issueconnection) | Issues of the project. | -| `issuesEnabled` | [`Boolean`](#boolean) | Indicates if Issues are enabled for the current user. | -| `iterationCadences` | [`IterationCadenceConnection`](#iterationcadenceconnection) | Find iteration cadences. | -| `iterations` | [`IterationConnection`](#iterationconnection) | Find iterations. | -| `jiraImportStatus` | [`String`](#string) | Status of Jira import background job of the project. | -| `jiraImports` | [`JiraImportConnection`](#jiraimportconnection) | Jira imports into the project. | -| `jobs` | [`CiJobConnection`](#cijobconnection) | Jobs of a project. This field can only be resolved for one project in any single request. | -| `jobsEnabled` | [`Boolean`](#boolean) | Indicates if CI/CD pipeline jobs are enabled for the current user. | -| `label` | [`Label`](#label) | A label available on this project. | -| `labels` | [`LabelConnection`](#labelconnection) | Labels available on this project. | -| `lastActivityAt` | [`Time`](#time) | Timestamp of the project last activity. | -| `lfsEnabled` | [`Boolean`](#boolean) | Indicates if the project has Large File Storage (LFS) enabled. | -| `mergeRequest` | [`MergeRequest`](#mergerequest) | A single merge request of the project. | -| `mergeRequests` | [`MergeRequestConnection`](#mergerequestconnection) | Merge requests of the project. | -| `mergeRequestsEnabled` | [`Boolean`](#boolean) | Indicates if Merge Requests are enabled for the current user. | -| `mergeRequestsFfOnlyEnabled` | [`Boolean`](#boolean) | Indicates if no merge commits should be created and all merges should instead be fast-forwarded, which means that merging is only allowed if the branch could be fast-forwarded. | -| `milestones` | [`MilestoneConnection`](#milestoneconnection) | Milestones of the project. | -| `name` | [`String!`](#string) | Name of the project (without namespace). | -| `nameWithNamespace` | [`String!`](#string) | Full name of the project with its namespace. | -| `namespace` | [`Namespace`](#namespace) | Namespace of the project. | -| `onlyAllowMergeIfAllDiscussionsAreResolved` | [`Boolean`](#boolean) | Indicates if merge requests of the project can only be merged when all the discussions are resolved. | -| `onlyAllowMergeIfPipelineSucceeds` | [`Boolean`](#boolean) | Indicates if merge requests of the project can only be merged with successful jobs. | -| `openIssuesCount` | [`Int`](#int) | Number of open issues for the project. | -| `packages` | [`PackageConnection`](#packageconnection) | Packages of the project. | -| `path` | [`String!`](#string) | Path of the project. | -| `pipeline` | [`Pipeline`](#pipeline) | Build pipeline of the project. | -| `pipelineAnalytics` | [`PipelineAnalytics`](#pipelineanalytics) | Pipeline analytics. | -| `pipelines` | [`PipelineConnection`](#pipelineconnection) | Build pipelines of the project. | -| `printingMergeRequestLinkEnabled` | [`Boolean`](#boolean) | Indicates if a link to create or view a merge request should display after a push to Git repositories of the project from the command line. | -| `projectMembers` | [`MemberInterfaceConnection`](#memberinterfaceconnection) | Members of the project. | -| `publicJobs` | [`Boolean`](#boolean) | Indicates if there is public access to pipelines and job details of the project, including output logs and artifacts. | -| `pushRules` | [`PushRules`](#pushrules) | The project's push rules settings. | -| `release` | [`Release`](#release) | A single release of the project. | -| `releases` | [`ReleaseConnection`](#releaseconnection) | Releases of the project. | -| `removeSourceBranchAfterMerge` | [`Boolean`](#boolean) | Indicates if `Delete source branch` option should be enabled by default for all new merge requests of the project. | -| `repository` | [`Repository`](#repository) | Git repository of the project. | -| `repositorySizeExcess` | [`Float`](#float) | Size of repository that exceeds the limit in bytes. | -| `requestAccessEnabled` | [`Boolean`](#boolean) | Indicates if users can request member access to the project. | -| `requirement` | [`Requirement`](#requirement) | Find a single requirement. | -| `requirementStatesCount` | [`RequirementStatesCount`](#requirementstatescount) | Number of requirements for the project by their state. | -| `requirements` | [`RequirementConnection`](#requirementconnection) | Find requirements. | -| `sastCiConfiguration` | [`SastCiConfiguration`](#sastciconfiguration) | SAST CI configuration for the project. | -| `securityDashboardPath` | [`String`](#string) | Path to project's security dashboard. | -| `securityScanners` | [`SecurityScanners`](#securityscanners) | Information about security analyzers used in the project. | -| `sentryDetailedError` | [`SentryDetailedError`](#sentrydetailederror) | Detailed version of a Sentry error on the project. | -| `sentryErrors` | [`SentryErrorCollection`](#sentryerrorcollection) | Paginated collection of Sentry errors on the project. | -| `serviceDeskAddress` | [`String`](#string) | E-mail address of the service desk. | -| `serviceDeskEnabled` | [`Boolean`](#boolean) | Indicates if the project has service desk enabled. | -| `services` | [`ServiceConnection`](#serviceconnection) | Project services. | -| `sharedRunnersEnabled` | [`Boolean`](#boolean) | Indicates if shared runners are enabled for the project. | -| `snippets` | [`SnippetConnection`](#snippetconnection) | Snippets of the project. | -| `snippetsEnabled` | [`Boolean`](#boolean) | Indicates if Snippets are enabled for the current user. | -| `squashReadOnly` | [`Boolean!`](#boolean) | Indicates if `squashReadOnly` is enabled. | -| `sshUrlToRepo` | [`String`](#string) | URL to connect to the project via SSH. | -| `starCount` | [`Int!`](#int) | Number of times the project has been starred. | -| `statistics` | [`ProjectStatistics`](#projectstatistics) | Statistics of the project. | -| `suggestionCommitMessage` | [`String`](#string) | The commit message used to apply merge request suggestions. | -| `tagList` | [`String`](#string) | List of project topics (not Git tags). | -| `terraformState` | [`TerraformState`](#terraformstate) | Find a single Terraform state by name. | -| `terraformStates` | [`TerraformStateConnection`](#terraformstateconnection) | Terraform states associated with the project. | -| `userPermissions` | [`ProjectPermissions!`](#projectpermissions) | Permissions for the current user on the resource. | -| `visibility` | [`String`](#string) | Visibility of the project. | -| `vulnerabilities` | [`VulnerabilityConnection`](#vulnerabilityconnection) | Vulnerabilities reported on the project. | -| `vulnerabilitiesCountByDay` | [`VulnerabilitiesCountByDayConnection`](#vulnerabilitiescountbydayconnection) | Number of vulnerabilities per day for the project. | -| `vulnerabilityScanners` | [`VulnerabilityScannerConnection`](#vulnerabilityscannerconnection) | Vulnerability scanners reported on the project vulnerabilities. | -| `vulnerabilitySeveritiesCount` | [`VulnerabilitySeveritiesCount`](#vulnerabilityseveritiescount) | Counts for each vulnerability severity in the project. | -| `webUrl` | [`String`](#string) | Web URL of the project. | -| `wikiEnabled` | [`Boolean`](#boolean) | Indicates if Wikis are enabled for the current user. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `actualRepositorySizeLimit` | [`Float`](#float) | Size limit for the repository in bytes. | +| `allowMergeOnSkippedPipeline` | [`Boolean`](#boolean) | If `only_allow_merge_if_pipeline_succeeds` is true, indicates if merge requests of the project can also be merged with skipped jobs. | +| `apiFuzzingCiConfiguration` | [`ApiFuzzingCiConfiguration`](#apifuzzingciconfiguration) | API fuzzing configuration for the project. | +| `archived` | [`Boolean`](#boolean) | Indicates the archived status of the project. | +| `autocloseReferencedIssues` | [`Boolean`](#boolean) | Indicates if issues referenced by merge requests and commits within the default branch are closed automatically. | +| `avatarUrl` | [`String`](#string) | URL to avatar image file of the project. | +| `ciCdSettings` | [`ProjectCiCdSetting`](#projectcicdsetting) | CI/CD settings for the project. | +| `clusterAgents` | [`ClusterAgentConnection`](#clusteragentconnection) | Cluster agents associated with the project. | +| `codeCoverageSummary` | [`CodeCoverageSummary`](#codecoveragesummary) | Code coverage summary associated with the project. | +| `complianceFrameworks` | [`ComplianceFrameworkConnection`](#complianceframeworkconnection) | Compliance frameworks associated with the project. | +| `containerExpirationPolicy` | [`ContainerExpirationPolicy`](#containerexpirationpolicy) | The container expiration policy of the project. | +| `containerRegistryEnabled` | [`Boolean`](#boolean) | Indicates if the project stores Docker container images in a container registry. | +| `containerRepositoriesCount` | [`Int!`](#int) | Number of container repositories in the project. | +| `createdAt` | [`Time`](#time) | Timestamp of the project creation. | +| `dastProfiles` | [`DastProfileConnection`](#dastprofileconnection) | DAST Profiles associated with the project. | +| `dastScannerProfiles` | [`DastScannerProfileConnection`](#dastscannerprofileconnection) | The DAST scanner profiles associated with the project. | +| `dastSiteProfiles` | [`DastSiteProfileConnection`](#dastsiteprofileconnection) | DAST Site Profiles associated with the project. | +| `description` | [`String`](#string) | Short description of the project. | +| `descriptionHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `description`. | +| `forksCount` | [`Int!`](#int) | Number of times the project has been forked. | +| `fullPath` | [`ID!`](#id) | Full path of the project. | +| `grafanaIntegration` | [`GrafanaIntegration`](#grafanaintegration) | Grafana integration details for the project. | +| `group` | [`Group`](#group) | Group of the project. | +| `httpUrlToRepo` | [`String`](#string) | URL to connect to the project via HTTPS. | +| `id` | [`ID!`](#id) | ID of the project. | +| `importStatus` | [`String`](#string) | Status of import background job of the project. | +| `incidentManagementOncallSchedules` | [`IncidentManagementOncallScheduleConnection`](#incidentmanagementoncallscheduleconnection) | Incident Management On-call schedules of the project. | +| `issuesEnabled` | [`Boolean`](#boolean) | Indicates if Issues are enabled for the current user. | +| `jiraImportStatus` | [`String`](#string) | Status of Jira import background job of the project. | +| `jiraImports` | [`JiraImportConnection`](#jiraimportconnection) | Jira imports into the project. | +| `jobsEnabled` | [`Boolean`](#boolean) | Indicates if CI/CD pipeline jobs are enabled for the current user. | +| `lastActivityAt` | [`Time`](#time) | Timestamp of the project last activity. | +| `lfsEnabled` | [`Boolean`](#boolean) | Indicates if the project has Large File Storage (LFS) enabled. | +| `mergeRequestsEnabled` | [`Boolean`](#boolean) | Indicates if Merge Requests are enabled for the current user. | +| `mergeRequestsFfOnlyEnabled` | [`Boolean`](#boolean) | Indicates if no merge commits should be created and all merges should instead be fast-forwarded, which means that merging is only allowed if the branch could be fast-forwarded. | +| `name` | [`String!`](#string) | Name of the project (without namespace). | +| `nameWithNamespace` | [`String!`](#string) | Full name of the project with its namespace. | +| `namespace` | [`Namespace`](#namespace) | Namespace of the project. | +| `onlyAllowMergeIfAllDiscussionsAreResolved` | [`Boolean`](#boolean) | Indicates if merge requests of the project can only be merged when all the discussions are resolved. | +| `onlyAllowMergeIfPipelineSucceeds` | [`Boolean`](#boolean) | Indicates if merge requests of the project can only be merged with successful jobs. | +| `openIssuesCount` | [`Int`](#int) | Number of open issues for the project. | +| `packages` | [`PackageConnection`](#packageconnection) | Packages of the project. | +| `path` | [`String!`](#string) | Path of the project. | +| `pipelineAnalytics` | [`PipelineAnalytics`](#pipelineanalytics) | Pipeline analytics. | +| `printingMergeRequestLinkEnabled` | [`Boolean`](#boolean) | Indicates if a link to create or view a merge request should display after a push to Git repositories of the project from the command line. | +| `publicJobs` | [`Boolean`](#boolean) | Indicates if there is public access to pipelines and job details of the project, including output logs and artifacts. | +| `pushRules` | [`PushRules`](#pushrules) | The project's push rules settings. | +| `removeSourceBranchAfterMerge` | [`Boolean`](#boolean) | Indicates if `Delete source branch` option should be enabled by default for all new merge requests of the project. | +| `repository` | [`Repository`](#repository) | Git repository of the project. | +| `repositorySizeExcess` | [`Float`](#float) | Size of repository that exceeds the limit in bytes. | +| `requestAccessEnabled` | [`Boolean`](#boolean) | Indicates if users can request member access to the project. | +| `requirementStatesCount` | [`RequirementStatesCount`](#requirementstatescount) | Number of requirements for the project by their state. | +| `sastCiConfiguration` | [`SastCiConfiguration`](#sastciconfiguration) | SAST CI configuration for the project. | +| `securityDashboardPath` | [`String`](#string) | Path to project's security dashboard. | +| `securityScanners` | [`SecurityScanners`](#securityscanners) | Information about security analyzers used in the project. | +| `sentryErrors` | [`SentryErrorCollection`](#sentryerrorcollection) | Paginated collection of Sentry errors on the project. | +| `serviceDeskAddress` | [`String`](#string) | E-mail address of the service desk. | +| `serviceDeskEnabled` | [`Boolean`](#boolean) | Indicates if the project has service desk enabled. | +| `sharedRunnersEnabled` | [`Boolean`](#boolean) | Indicates if shared runners are enabled for the project. | +| `snippetsEnabled` | [`Boolean`](#boolean) | Indicates if Snippets are enabled for the current user. | +| `squashReadOnly` | [`Boolean!`](#boolean) | Indicates if `squashReadOnly` is enabled. | +| `sshUrlToRepo` | [`String`](#string) | URL to connect to the project via SSH. | +| `starCount` | [`Int!`](#int) | Number of times the project has been starred. | +| `statistics` | [`ProjectStatistics`](#projectstatistics) | Statistics of the project. | +| `suggestionCommitMessage` | [`String`](#string) | The commit message used to apply merge request suggestions. | +| `tagList` | [`String`](#string) | List of project topics (not Git tags). | +| `terraformStates` | [`TerraformStateConnection`](#terraformstateconnection) | Terraform states associated with the project. | +| `userPermissions` | [`ProjectPermissions!`](#projectpermissions) | Permissions for the current user on the resource. | +| `visibility` | [`String`](#string) | Visibility of the project. | +| `vulnerabilityScanners` | [`VulnerabilityScannerConnection`](#vulnerabilityscannerconnection) | Vulnerability scanners reported on the project vulnerabilities. | +| `webUrl` | [`String`](#string) | Web URL of the project. | +| `wikiEnabled` | [`Boolean`](#boolean) | Indicates if Wikis are enabled for the current user. | + +#### Fields with arguments + +##### `Project.alertManagementAlert` + +A single Alert Management alert of the project. + +Returns [`AlertManagementAlert`](#alertmanagementalert). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `assigneeUsername` | [`String`](#string) | Username of a user assigned to the issue. | +| `domain` | [`AlertManagementDomainFilter!`](#alertmanagementdomainfilter) | Filter query for given domain. | +| `iid` | [`String`](#string) | IID of the alert. For example, "1". | +| `search` | [`String`](#string) | Search query for title, description, service, or monitoring_tool. | +| `sort` | [`AlertManagementAlertSort`](#alertmanagementalertsort) | Sort alerts by this criteria. | +| `statuses` | [`[AlertManagementStatus!]`](#alertmanagementstatus) | Alerts with the specified statues. For example, [TRIGGERED]. | + +##### `Project.alertManagementAlertStatusCounts` + +Counts of alerts by status for the project. + +Returns [`AlertManagementAlertStatusCountsType`](#alertmanagementalertstatuscountstype). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `assigneeUsername` | [`String`](#string) | Username of a user assigned to the issue. | +| `search` | [`String`](#string) | Search query for title, description, service, or monitoring_tool. | + +##### `Project.alertManagementAlerts` + +Alert Management alerts of the project. + +Returns [`AlertManagementAlertConnection`](#alertmanagementalertconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `assigneeUsername` | [`String`](#string) | Username of a user assigned to the issue. | +| `domain` | [`AlertManagementDomainFilter!`](#alertmanagementdomainfilter) | Filter query for given domain. | +| `iid` | [`String`](#string) | IID of the alert. For example, "1". | +| `search` | [`String`](#string) | Search query for title, description, service, or monitoring_tool. | +| `sort` | [`AlertManagementAlertSort`](#alertmanagementalertsort) | Sort alerts by this criteria. | +| `statuses` | [`[AlertManagementStatus!]`](#alertmanagementstatus) | Alerts with the specified statues. For example, [TRIGGERED]. | + +##### `Project.alertManagementHttpIntegrations` + +HTTP Integrations which can receive alerts for the project. + +Returns [`AlertManagementHttpIntegrationConnection`](#alertmanagementhttpintegrationconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `id` | [`AlertManagementHttpIntegrationID`](#alertmanagementhttpintegrationid) | ID of the integration. | + +##### `Project.alertManagementIntegrations` + +Integrations which can receive alerts for the project. + +Returns [`AlertManagementIntegrationConnection`](#alertmanagementintegrationconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `id` | [`GlobalID`](#globalid) | ID of the integration. | + +##### `Project.alertManagementPayloadFields` + +Extract alert fields from payload for custom mapping. + +Returns [`[AlertManagementPayloadAlertField!]`](#alertmanagementpayloadalertfield). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `payloadExample` | [`String!`](#string) | Sample payload for extracting alert fields for custom mappings. | + +##### `Project.board` + +A single board of the project. + +Returns [`Board`](#board). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `id` | [`BoardID!`](#boardid) | The board's ID. | + +##### `Project.boards` + +Boards of the project. + +Returns [`BoardConnection`](#boardconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `id` | [`BoardID`](#boardid) | Find a board by its ID. | + +##### `Project.clusterAgent` + +Find a single cluster agent by name. + +Returns [`ClusterAgent`](#clusteragent). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `name` | [`String!`](#string) | Name of the cluster agent. | + +##### `Project.containerRepositories` + +Container repositories of the project. + +Returns [`ContainerRepositoryConnection`](#containerrepositoryconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `name` | [`String`](#string) | Filter the container repositories by their name. | +| `sort` | [`ContainerRepositorySort`](#containerrepositorysort) | Sort container repositories by this criteria. | + +##### `Project.dastSiteProfile` + +DAST Site Profile associated with the project. + +Returns [`DastSiteProfile`](#dastsiteprofile). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `id` | [`DastSiteProfileID!`](#dastsiteprofileid) | ID of the site profile. | + +##### `Project.dastSiteValidations` + +DAST Site Validations associated with the project. + +Returns [`DastSiteValidationConnection`](#dastsitevalidationconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `normalizedTargetUrls` | [`[String!]`](#string) | Normalized URL of the target to be scanned. | + +##### `Project.environment` + +A single environment of the project. + +Returns [`Environment`](#environment). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `name` | [`String`](#string) | Name of the environment. | +| `search` | [`String`](#string) | Search query for environment name. | +| `states` | [`[String!]`](#string) | States of environments that should be included in result. | + +##### `Project.environments` + +Environments of the project. + +Returns [`EnvironmentConnection`](#environmentconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `name` | [`String`](#string) | Name of the environment. | +| `search` | [`String`](#string) | Search query for environment name. | +| `states` | [`[String!]`](#string) | States of environments that should be included in result. | + +##### `Project.issue` + +A single issue of the project. + +Returns [`Issue`](#issue). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `assigneeId` | [`String`](#string) | ID of a user assigned to the issues, "none" and "any" values are supported. | +| `assigneeUsername` **{warning-solid}** | [`String`](#string) | **Deprecated** in 13.11. Use `assigneeUsernames`. | +| `assigneeUsernames` | [`[String!]`](#string) | Usernames of users assigned to the issue. | +| `authorUsername` | [`String`](#string) | Username of the author of the issue. | +| `closedAfter` | [`Time`](#time) | Issues closed after this date. | +| `closedBefore` | [`Time`](#time) | Issues closed before this date. | +| `createdAfter` | [`Time`](#time) | Issues created after this date. | +| `createdBefore` | [`Time`](#time) | Issues created before this date. | +| `epicId` | [`String`](#string) | ID of an epic associated with the issues, "none" and "any" values are supported. | +| `iid` | [`String`](#string) | IID of the issue. For example, "1". | +| `iids` | [`[String!]`](#string) | List of IIDs of issues. For example, ["1", "2"]. | +| `iterationId` | [`[ID]`](#id) | List of iteration Global IDs applied to the issue. | +| `iterationWildcardId` | [`IterationWildcardId`](#iterationwildcardid) | Filter by iteration ID wildcard. | +| `labelName` | [`[String]`](#string) | Labels applied to this issue. | +| `milestoneTitle` | [`[String]`](#string) | Milestone applied to this issue. | +| `not` | [`NegatedIssueFilterInput`](#negatedissuefilterinput) | Negated arguments. | +| `search` | [`String`](#string) | Search query for issue title or description. | +| `sort` | [`IssueSort`](#issuesort) | Sort issues by this criteria. | +| `state` | [`IssuableState`](#issuablestate) | Current state of this issue. | +| `types` | [`[IssueType!]`](#issuetype) | Filter issues by the given issue types. | +| `updatedAfter` | [`Time`](#time) | Issues updated after this date. | +| `updatedBefore` | [`Time`](#time) | Issues updated before this date. | +| `weight` | [`String`](#string) | Weight applied to the issue, "none" and "any" values are supported. | + +##### `Project.issueStatusCounts` + +Counts of issues by status for the project. + +Returns [`IssueStatusCountsType`](#issuestatuscountstype). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `assigneeId` | [`String`](#string) | ID of a user assigned to the issues, "none" and "any" values are supported. | +| `assigneeUsername` **{warning-solid}** | [`String`](#string) | **Deprecated** in 13.11. Use `assigneeUsernames`. | +| `assigneeUsernames` | [`[String!]`](#string) | Usernames of users assigned to the issue. | +| `authorUsername` | [`String`](#string) | Username of the author of the issue. | +| `closedAfter` | [`Time`](#time) | Issues closed after this date. | +| `closedBefore` | [`Time`](#time) | Issues closed before this date. | +| `createdAfter` | [`Time`](#time) | Issues created after this date. | +| `createdBefore` | [`Time`](#time) | Issues created before this date. | +| `iid` | [`String`](#string) | IID of the issue. For example, "1". | +| `iids` | [`[String!]`](#string) | List of IIDs of issues. For example, ["1", "2"]. | +| `labelName` | [`[String]`](#string) | Labels applied to this issue. | +| `milestoneTitle` | [`[String]`](#string) | Milestone applied to this issue. | +| `not` | [`NegatedIssueFilterInput`](#negatedissuefilterinput) | Negated arguments. | +| `search` | [`String`](#string) | Search query for issue title or description. | +| `types` | [`[IssueType!]`](#issuetype) | Filter issues by the given issue types. | +| `updatedAfter` | [`Time`](#time) | Issues updated after this date. | +| `updatedBefore` | [`Time`](#time) | Issues updated before this date. | + +##### `Project.issues` + +Issues of the project. + +Returns [`IssueConnection`](#issueconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `assigneeId` | [`String`](#string) | ID of a user assigned to the issues, "none" and "any" values are supported. | +| `assigneeUsername` **{warning-solid}** | [`String`](#string) | **Deprecated** in 13.11. Use `assigneeUsernames`. | +| `assigneeUsernames` | [`[String!]`](#string) | Usernames of users assigned to the issue. | +| `authorUsername` | [`String`](#string) | Username of the author of the issue. | +| `closedAfter` | [`Time`](#time) | Issues closed after this date. | +| `closedBefore` | [`Time`](#time) | Issues closed before this date. | +| `createdAfter` | [`Time`](#time) | Issues created after this date. | +| `createdBefore` | [`Time`](#time) | Issues created before this date. | +| `epicId` | [`String`](#string) | ID of an epic associated with the issues, "none" and "any" values are supported. | +| `iid` | [`String`](#string) | IID of the issue. For example, "1". | +| `iids` | [`[String!]`](#string) | List of IIDs of issues. For example, ["1", "2"]. | +| `iterationId` | [`[ID]`](#id) | List of iteration Global IDs applied to the issue. | +| `iterationWildcardId` | [`IterationWildcardId`](#iterationwildcardid) | Filter by iteration ID wildcard. | +| `labelName` | [`[String]`](#string) | Labels applied to this issue. | +| `milestoneTitle` | [`[String]`](#string) | Milestone applied to this issue. | +| `not` | [`NegatedIssueFilterInput`](#negatedissuefilterinput) | Negated arguments. | +| `search` | [`String`](#string) | Search query for issue title or description. | +| `sort` | [`IssueSort`](#issuesort) | Sort issues by this criteria. | +| `state` | [`IssuableState`](#issuablestate) | Current state of this issue. | +| `types` | [`[IssueType!]`](#issuetype) | Filter issues by the given issue types. | +| `updatedAfter` | [`Time`](#time) | Issues updated after this date. | +| `updatedBefore` | [`Time`](#time) | Issues updated before this date. | +| `weight` | [`String`](#string) | Weight applied to the issue, "none" and "any" values are supported. | + +##### `Project.iterationCadences` + +Find iteration cadences. + +Returns [`IterationCadenceConnection`](#iterationcadenceconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `active` | [`Boolean`](#boolean) | Whether the iteration cadence is active. | +| `automatic` | [`Boolean`](#boolean) | Whether the iteration cadence should automatically generate future iterations. | +| `durationInWeeks` | [`Int`](#int) | Duration in weeks of the iterations within this cadence. | +| `id` | [`IterationsCadenceID`](#iterationscadenceid) | Global ID of the iteration cadence to look up. | +| `includeAncestorGroups` | [`Boolean`](#boolean) | Whether to include ancestor groups to search iterations cadences in. | +| `title` | [`String`](#string) | Fuzzy search by title. | + +##### `Project.iterations` + +Find iterations. + +Returns [`IterationConnection`](#iterationconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `endDate` **{warning-solid}** | [`Time`](#time) | **Deprecated** in 13.5. Use timeframe.end. | +| `id` | [`ID`](#id) | Global ID of the Iteration to look up. | +| `iid` | [`ID`](#id) | Internal ID of the Iteration to look up. | +| `includeAncestors` | [`Boolean`](#boolean) | Whether to include ancestor iterations. Defaults to true. | +| `iterationCadenceIds` | [`[IterationsCadenceID!]`](#iterationscadenceid) | Global iteration cadence IDs by which to look up the iterations. | +| `startDate` **{warning-solid}** | [`Time`](#time) | **Deprecated** in 13.5. Use timeframe.start. | +| `state` | [`IterationState`](#iterationstate) | Filter iterations by state. | +| `timeframe` | [`Timeframe`](#timeframe) | List items overlapping the given timeframe. | +| `title` | [`String`](#string) | Fuzzy search by title. | + +##### `Project.jobs` + +Jobs of a project. This field can only be resolved for one project in any single request. + +Returns [`CiJobConnection`](#cijobconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `statuses` | [`[CiJobStatus!]`](#cijobstatus) | Filter jobs by status. | + +##### `Project.label` + +A label available on this project. + +Returns [`Label`](#label). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `title` | [`String!`](#string) | Title of the label. | + +##### `Project.labels` + +Labels available on this project. + +Returns [`LabelConnection`](#labelconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `includeAncestorGroups` | [`Boolean`](#boolean) | Include labels from ancestor groups. | +| `searchTerm` | [`String`](#string) | A search term to find labels with. | + +##### `Project.mergeRequest` + +A single merge request of the project. + +Returns [`MergeRequest`](#mergerequest). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `iid` | [`String!`](#string) | IID of the merge request, for example `1`. | + +##### `Project.mergeRequests` + +Merge requests of the project. + +Returns [`MergeRequestConnection`](#mergerequestconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `assigneeUsername` | [`String`](#string) | Username of the assignee. | +| `authorUsername` | [`String`](#string) | Username of the author. | +| `iids` | [`[String!]`](#string) | Array of IIDs of merge requests, for example `[1, 2]`. | +| `labels` | [`[String!]`](#string) | Array of label names. All resolved merge requests will have all of these labels. | +| `mergedAfter` | [`Time`](#time) | Merge requests merged after this date. | +| `mergedBefore` | [`Time`](#time) | Merge requests merged before this date. | +| `milestoneTitle` | [`String`](#string) | Title of the milestone. | +| `not` | [`MergeRequestsResolverNegatedParams`](#mergerequestsresolvernegatedparams) | List of negated arguments. Warning: this argument is experimental and a subject to change in future. | +| `reviewerUsername` | [`String`](#string) | Username of the reviewer. | +| `sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. | +| `sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. | +| `state` | [`MergeRequestState`](#mergerequeststate) | A merge request state. If provided, all resolved merge requests will have this state. | +| `targetBranches` | [`[String!]`](#string) | Array of target branch names. All resolved merge requests will have one of these branches as their target. | + +##### `Project.milestones` + +Milestones of the project. + +Returns [`MilestoneConnection`](#milestoneconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `containingDate` | [`Time`](#time) | A date that the milestone contains. | +| `endDate` **{warning-solid}** | [`Time`](#time) | **Deprecated** in 13.5. Use timeframe.end. | +| `ids` | [`[ID!]`](#id) | Array of global milestone IDs, e.g., `"gid://gitlab/Milestone/1"`. | +| `includeAncestors` | [`Boolean`](#boolean) | Also return milestones in the project's parent group and its ancestors. | +| `searchTitle` | [`String`](#string) | A search string for the title. | +| `startDate` **{warning-solid}** | [`Time`](#time) | **Deprecated** in 13.5. Use timeframe.start. | +| `state` | [`MilestoneStateEnum`](#milestonestateenum) | Filter milestones by state. | +| `timeframe` | [`Timeframe`](#timeframe) | List items overlapping the given timeframe. | +| `title` | [`String`](#string) | The title of the milestone. | + +##### `Project.pipeline` + +Build pipeline of the project. + +Returns [`Pipeline`](#pipeline). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `iid` | [`ID`](#id) | IID of the Pipeline. For example, "1". | +| `sha` | [`String`](#string) | SHA of the Pipeline. For example, "dyd0f15ay83993f5ab66k927w28673882x99100b". | + +##### `Project.pipelines` + +Build pipelines of the project. + +Returns [`PipelineConnection`](#pipelineconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `ref` | [`String`](#string) | Filter pipelines by the ref they are run for. | +| `sha` | [`String`](#string) | Filter pipelines by the sha of the commit they are run for. | +| `status` | [`PipelineStatusEnum`](#pipelinestatusenum) | Filter pipelines by their status. | + +##### `Project.projectMembers` + +Members of the project. + +Returns [`MemberInterfaceConnection`](#memberinterfaceconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `relations` | [`[ProjectMemberRelation!]`](#projectmemberrelation) | Filter members by the given member relations. | +| `search` | [`String`](#string) | Search query. | + +##### `Project.release` + +A single release of the project. + +Returns [`Release`](#release). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `tagName` | [`String!`](#string) | The name of the tag associated to the release. | + +##### `Project.releases` + +Releases of the project. + +Returns [`ReleaseConnection`](#releaseconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `sort` | [`ReleaseSort`](#releasesort) | Sort releases by this criteria. | + +##### `Project.requirement` + +Find a single requirement. + +Returns [`Requirement`](#requirement). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `authorUsername` | [`[String!]`](#string) | Filter requirements by author username. | +| `iid` | [`ID`](#id) | IID of the requirement, e.g., "1". | +| `iids` | [`[ID!]`](#id) | List of IIDs of requirements, e.g., [1, 2]. | +| `lastTestReportState` | [`RequirementStatusFilter`](#requirementstatusfilter) | The state of latest requirement test report. | +| `search` | [`String`](#string) | Search query for requirement title. | +| `sort` | [`Sort`](#sort) | List requirements by sort order. | +| `state` | [`RequirementState`](#requirementstate) | Filter requirements by state. | + +##### `Project.requirements` + +Find requirements. + +Returns [`RequirementConnection`](#requirementconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `authorUsername` | [`[String!]`](#string) | Filter requirements by author username. | +| `iid` | [`ID`](#id) | IID of the requirement, e.g., "1". | +| `iids` | [`[ID!]`](#id) | List of IIDs of requirements, e.g., [1, 2]. | +| `lastTestReportState` | [`RequirementStatusFilter`](#requirementstatusfilter) | The state of latest requirement test report. | +| `search` | [`String`](#string) | Search query for requirement title. | +| `sort` | [`Sort`](#sort) | List requirements by sort order. | +| `state` | [`RequirementState`](#requirementstate) | Filter requirements by state. | + +##### `Project.sentryDetailedError` + +Detailed version of a Sentry error on the project. + +Returns [`SentryDetailedError`](#sentrydetailederror). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `id` | [`GitlabErrorTrackingDetailedErrorID!`](#gitlaberrortrackingdetailederrorid) | ID of the Sentry issue. | + +##### `Project.services` + +Project services. + +Returns [`ServiceConnection`](#serviceconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `active` | [`Boolean`](#boolean) | Indicates if the service is active. | +| `type` | [`ServiceType`](#servicetype) | Class name of the service. | + +##### `Project.snippets` + +Snippets of the project. + +Returns [`SnippetConnection`](#snippetconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `ids` | [`[SnippetID!]`](#snippetid) | Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`. | +| `visibility` | [`VisibilityScopesEnum`](#visibilityscopesenum) | The visibility of the snippet. | + +##### `Project.terraformState` + +Find a single Terraform state by name. + +Returns [`TerraformState`](#terraformstate). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `name` | [`String!`](#string) | Name of the Terraform state. | + +##### `Project.vulnerabilities` + +Vulnerabilities reported on the project. + +Returns [`VulnerabilityConnection`](#vulnerabilityconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `hasIssues` | [`Boolean`](#boolean) | Returns only the vulnerabilities which have linked issues. | +| `hasResolution` | [`Boolean`](#boolean) | Returns only the vulnerabilities which have been resolved on default branch. | +| `projectId` | [`[ID!]`](#id) | Filter vulnerabilities by project. | +| `reportType` | [`[VulnerabilityReportType!]`](#vulnerabilityreporttype) | Filter vulnerabilities by report type. | +| `scanner` | [`[String!]`](#string) | Filter vulnerabilities by VulnerabilityScanner.externalId. | +| `scannerId` | [`[VulnerabilitiesScannerID!]`](#vulnerabilitiesscannerid) | Filter vulnerabilities by scanner ID. | +| `severity` | [`[VulnerabilitySeverity!]`](#vulnerabilityseverity) | Filter vulnerabilities by severity. | +| `sort` | [`VulnerabilitySort`](#vulnerabilitysort) | List vulnerabilities by sort order. | +| `state` | [`[VulnerabilityState!]`](#vulnerabilitystate) | Filter vulnerabilities by state. | + +##### `Project.vulnerabilitiesCountByDay` + +Number of vulnerabilities per day for the project. + +Returns [`VulnerabilitiesCountByDayConnection`](#vulnerabilitiescountbydayconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `endDate` | [`ISO8601Date!`](#iso8601date) | Last day for which to fetch vulnerability history. | +| `startDate` | [`ISO8601Date!`](#iso8601date) | First day for which to fetch vulnerability history. | + +##### `Project.vulnerabilitySeveritiesCount` + +Counts for each vulnerability severity in the project. + +Returns [`VulnerabilitySeveritiesCount`](#vulnerabilityseveritiescount). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `projectId` | [`[ID!]`](#id) | Filter vulnerabilities by project. | +| `reportType` | [`[VulnerabilityReportType!]`](#vulnerabilityreporttype) | Filter vulnerabilities by report type. | +| `scanner` | [`[String!]`](#string) | Filter vulnerabilities by scanner. | +| `severity` | [`[VulnerabilitySeverity!]`](#vulnerabilityseverity) | Filter vulnerabilities by severity. | +| `state` | [`[VulnerabilityState!]`](#vulnerabilitystate) | Filter vulnerabilities by state. | ### `ProjectCiCdSetting` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `keepLatestArtifact` | [`Boolean`](#boolean) | Whether to keep the latest builds artifacts. | -| `mergePipelinesEnabled` | [`Boolean`](#boolean) | Whether merge pipelines are enabled. | -| `mergeTrainsEnabled` | [`Boolean`](#boolean) | Whether merge trains are enabled. | -| `project` | [`Project`](#project) | Project the CI/CD settings belong to. | +#### Fields -### `ProjectConnection` - -The connection type for Project. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[ProjectEdge]`](#projectedge) | A list of edges. | -| `nodes` | [`[Project]`](#project) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `ProjectEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`Project`](#project) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `keepLatestArtifact` | [`Boolean`](#boolean) | Whether to keep the latest builds artifacts. | +| `mergePipelinesEnabled` | [`Boolean`](#boolean) | Whether merge pipelines are enabled. | +| `mergeTrainsEnabled` | [`Boolean`](#boolean) | Whether merge trains are enabled. | +| `project` | [`Project`](#project) | Project the CI/CD settings belong to. | ### `ProjectMember` Represents a Project Membership. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `accessLevel` | [`AccessLevel`](#accesslevel) | GitLab::Access level. | -| `createdAt` | [`Time`](#time) | Date and time the membership was created. | -| `createdBy` | [`User`](#user) | User that authorized membership. | -| `expiresAt` | [`Time`](#time) | Date and time the membership expires. | -| `id` | [`ID!`](#id) | ID of the member. | -| `project` | [`Project`](#project) | Project that User is a member of. | -| `updatedAt` | [`Time`](#time) | Date and time the membership was last updated. | -| `user` | [`User!`](#user) | User that is associated with the member object. | -| `userPermissions` | [`ProjectPermissions!`](#projectpermissions) | Permissions for the current user on the resource. | +#### Fields -### `ProjectMemberConnection` - -The connection type for ProjectMember. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[ProjectMemberEdge]`](#projectmemberedge) | A list of edges. | -| `nodes` | [`[ProjectMember]`](#projectmember) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `ProjectMemberEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`ProjectMember`](#projectmember) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `accessLevel` | [`AccessLevel`](#accesslevel) | GitLab::Access level. | +| `createdAt` | [`Time`](#time) | Date and time the membership was created. | +| `createdBy` | [`User`](#user) | User that authorized membership. | +| `expiresAt` | [`Time`](#time) | Date and time the membership expires. | +| `id` | [`ID!`](#id) | ID of the member. | +| `project` | [`Project`](#project) | Project that User is a member of. | +| `updatedAt` | [`Time`](#time) | Date and time the membership was last updated. | +| `user` | [`User!`](#user) | User that is associated with the member object. | +| `userPermissions` | [`ProjectPermissions!`](#projectpermissions) | Permissions for the current user on the resource. | ### `ProjectPermissions` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `adminOperations` | [`Boolean!`](#boolean) | Indicates the user can perform `admin_operations` on this resource. | -| `adminProject` | [`Boolean!`](#boolean) | Indicates the user can perform `admin_project` on this resource. | -| `adminRemoteMirror` | [`Boolean!`](#boolean) | Indicates the user can perform `admin_remote_mirror` on this resource. | -| `adminWiki` | [`Boolean!`](#boolean) | Indicates the user can perform `admin_wiki` on this resource. | -| `archiveProject` | [`Boolean!`](#boolean) | Indicates the user can perform `archive_project` on this resource. | -| `changeNamespace` | [`Boolean!`](#boolean) | Indicates the user can perform `change_namespace` on this resource. | -| `changeVisibilityLevel` | [`Boolean!`](#boolean) | Indicates the user can perform `change_visibility_level` on this resource. | -| `createDeployment` | [`Boolean!`](#boolean) | Indicates the user can perform `create_deployment` on this resource. | -| `createDesign` | [`Boolean!`](#boolean) | Indicates the user can perform `create_design` on this resource. | -| `createIssue` | [`Boolean!`](#boolean) | Indicates the user can perform `create_issue` on this resource. | -| `createLabel` | [`Boolean!`](#boolean) | Indicates the user can perform `create_label` on this resource. | -| `createMergeRequestFrom` | [`Boolean!`](#boolean) | Indicates the user can perform `create_merge_request_from` on this resource. | -| `createMergeRequestIn` | [`Boolean!`](#boolean) | Indicates the user can perform `create_merge_request_in` on this resource. | -| `createPages` | [`Boolean!`](#boolean) | Indicates the user can perform `create_pages` on this resource. | -| `createPipeline` | [`Boolean!`](#boolean) | Indicates the user can perform `create_pipeline` on this resource. | -| `createPipelineSchedule` | [`Boolean!`](#boolean) | Indicates the user can perform `create_pipeline_schedule` on this resource. | -| `createSnippet` | [`Boolean!`](#boolean) | Indicates the user can perform `create_snippet` on this resource. | -| `createWiki` | [`Boolean!`](#boolean) | Indicates the user can perform `create_wiki` on this resource. | -| `destroyDesign` | [`Boolean!`](#boolean) | Indicates the user can perform `destroy_design` on this resource. | -| `destroyPages` | [`Boolean!`](#boolean) | Indicates the user can perform `destroy_pages` on this resource. | -| `destroyWiki` | [`Boolean!`](#boolean) | Indicates the user can perform `destroy_wiki` on this resource. | -| `downloadCode` | [`Boolean!`](#boolean) | Indicates the user can perform `download_code` on this resource. | -| `downloadWikiCode` | [`Boolean!`](#boolean) | Indicates the user can perform `download_wiki_code` on this resource. | -| `forkProject` | [`Boolean!`](#boolean) | Indicates the user can perform `fork_project` on this resource. | -| `pushCode` | [`Boolean!`](#boolean) | Indicates the user can perform `push_code` on this resource. | -| `pushToDeleteProtectedBranch` | [`Boolean!`](#boolean) | Indicates the user can perform `push_to_delete_protected_branch` on this resource. | -| `readCommitStatus` | [`Boolean!`](#boolean) | Indicates the user can perform `read_commit_status` on this resource. | -| `readCycleAnalytics` | [`Boolean!`](#boolean) | Indicates the user can perform `read_cycle_analytics` on this resource. | -| `readDesign` | [`Boolean!`](#boolean) | Indicates the user can perform `read_design` on this resource. | -| `readMergeRequest` | [`Boolean!`](#boolean) | Indicates the user can perform `read_merge_request` on this resource. | -| `readPagesContent` | [`Boolean!`](#boolean) | Indicates the user can perform `read_pages_content` on this resource. | -| `readProject` | [`Boolean!`](#boolean) | Indicates the user can perform `read_project` on this resource. | -| `readProjectMember` | [`Boolean!`](#boolean) | Indicates the user can perform `read_project_member` on this resource. | -| `readWiki` | [`Boolean!`](#boolean) | Indicates the user can perform `read_wiki` on this resource. | -| `removeForkProject` | [`Boolean!`](#boolean) | Indicates the user can perform `remove_fork_project` on this resource. | -| `removePages` | [`Boolean!`](#boolean) | Indicates the user can perform `remove_pages` on this resource. | -| `removeProject` | [`Boolean!`](#boolean) | Indicates the user can perform `remove_project` on this resource. | -| `renameProject` | [`Boolean!`](#boolean) | Indicates the user can perform `rename_project` on this resource. | -| `requestAccess` | [`Boolean!`](#boolean) | Indicates the user can perform `request_access` on this resource. | -| `updatePages` | [`Boolean!`](#boolean) | Indicates the user can perform `update_pages` on this resource. | -| `updateWiki` | [`Boolean!`](#boolean) | Indicates the user can perform `update_wiki` on this resource. | -| `uploadFile` | [`Boolean!`](#boolean) | Indicates the user can perform `upload_file` on this resource. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `adminOperations` | [`Boolean!`](#boolean) | Indicates the user can perform `admin_operations` on this resource. | +| `adminProject` | [`Boolean!`](#boolean) | Indicates the user can perform `admin_project` on this resource. | +| `adminRemoteMirror` | [`Boolean!`](#boolean) | Indicates the user can perform `admin_remote_mirror` on this resource. | +| `adminWiki` | [`Boolean!`](#boolean) | Indicates the user can perform `admin_wiki` on this resource. | +| `archiveProject` | [`Boolean!`](#boolean) | Indicates the user can perform `archive_project` on this resource. | +| `changeNamespace` | [`Boolean!`](#boolean) | Indicates the user can perform `change_namespace` on this resource. | +| `changeVisibilityLevel` | [`Boolean!`](#boolean) | Indicates the user can perform `change_visibility_level` on this resource. | +| `createDeployment` | [`Boolean!`](#boolean) | Indicates the user can perform `create_deployment` on this resource. | +| `createDesign` | [`Boolean!`](#boolean) | Indicates the user can perform `create_design` on this resource. | +| `createIssue` | [`Boolean!`](#boolean) | Indicates the user can perform `create_issue` on this resource. | +| `createLabel` | [`Boolean!`](#boolean) | Indicates the user can perform `create_label` on this resource. | +| `createMergeRequestFrom` | [`Boolean!`](#boolean) | Indicates the user can perform `create_merge_request_from` on this resource. | +| `createMergeRequestIn` | [`Boolean!`](#boolean) | Indicates the user can perform `create_merge_request_in` on this resource. | +| `createPages` | [`Boolean!`](#boolean) | Indicates the user can perform `create_pages` on this resource. | +| `createPipeline` | [`Boolean!`](#boolean) | Indicates the user can perform `create_pipeline` on this resource. | +| `createPipelineSchedule` | [`Boolean!`](#boolean) | Indicates the user can perform `create_pipeline_schedule` on this resource. | +| `createSnippet` | [`Boolean!`](#boolean) | Indicates the user can perform `create_snippet` on this resource. | +| `createWiki` | [`Boolean!`](#boolean) | Indicates the user can perform `create_wiki` on this resource. | +| `destroyDesign` | [`Boolean!`](#boolean) | Indicates the user can perform `destroy_design` on this resource. | +| `destroyPages` | [`Boolean!`](#boolean) | Indicates the user can perform `destroy_pages` on this resource. | +| `destroyWiki` | [`Boolean!`](#boolean) | Indicates the user can perform `destroy_wiki` on this resource. | +| `downloadCode` | [`Boolean!`](#boolean) | Indicates the user can perform `download_code` on this resource. | +| `downloadWikiCode` | [`Boolean!`](#boolean) | Indicates the user can perform `download_wiki_code` on this resource. | +| `forkProject` | [`Boolean!`](#boolean) | Indicates the user can perform `fork_project` on this resource. | +| `pushCode` | [`Boolean!`](#boolean) | Indicates the user can perform `push_code` on this resource. | +| `pushToDeleteProtectedBranch` | [`Boolean!`](#boolean) | Indicates the user can perform `push_to_delete_protected_branch` on this resource. | +| `readCommitStatus` | [`Boolean!`](#boolean) | Indicates the user can perform `read_commit_status` on this resource. | +| `readCycleAnalytics` | [`Boolean!`](#boolean) | Indicates the user can perform `read_cycle_analytics` on this resource. | +| `readDesign` | [`Boolean!`](#boolean) | Indicates the user can perform `read_design` on this resource. | +| `readMergeRequest` | [`Boolean!`](#boolean) | Indicates the user can perform `read_merge_request` on this resource. | +| `readPagesContent` | [`Boolean!`](#boolean) | Indicates the user can perform `read_pages_content` on this resource. | +| `readProject` | [`Boolean!`](#boolean) | Indicates the user can perform `read_project` on this resource. | +| `readProjectMember` | [`Boolean!`](#boolean) | Indicates the user can perform `read_project_member` on this resource. | +| `readWiki` | [`Boolean!`](#boolean) | Indicates the user can perform `read_wiki` on this resource. | +| `removeForkProject` | [`Boolean!`](#boolean) | Indicates the user can perform `remove_fork_project` on this resource. | +| `removePages` | [`Boolean!`](#boolean) | Indicates the user can perform `remove_pages` on this resource. | +| `removeProject` | [`Boolean!`](#boolean) | Indicates the user can perform `remove_project` on this resource. | +| `renameProject` | [`Boolean!`](#boolean) | Indicates the user can perform `rename_project` on this resource. | +| `requestAccess` | [`Boolean!`](#boolean) | Indicates the user can perform `request_access` on this resource. | +| `updatePages` | [`Boolean!`](#boolean) | Indicates the user can perform `update_pages` on this resource. | +| `updateWiki` | [`Boolean!`](#boolean) | Indicates the user can perform `update_wiki` on this resource. | +| `uploadFile` | [`Boolean!`](#boolean) | Indicates the user can perform `upload_file` on this resource. | ### `ProjectStatistics` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `buildArtifactsSize` | [`Float!`](#float) | Build artifacts size of the project in bytes. | -| `commitCount` | [`Float!`](#float) | Commit count of the project. | -| `lfsObjectsSize` | [`Float!`](#float) | Large File Storage (LFS) object size of the project in bytes. | -| `packagesSize` | [`Float!`](#float) | Packages size of the project in bytes. | -| `repositorySize` | [`Float!`](#float) | Repository size of the project in bytes. | -| `snippetsSize` | [`Float`](#float) | Snippets size of the project in bytes. | -| `storageSize` | [`Float!`](#float) | Storage size of the project in bytes. | -| `uploadsSize` | [`Float`](#float) | Uploads size of the project in bytes. | -| `wikiSize` | [`Float`](#float) | Wiki size of the project in bytes. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `buildArtifactsSize` | [`Float!`](#float) | Build artifacts size of the project in bytes. | +| `commitCount` | [`Float!`](#float) | Commit count of the project. | +| `lfsObjectsSize` | [`Float!`](#float) | Large File Storage (LFS) object size of the project in bytes. | +| `packagesSize` | [`Float!`](#float) | Packages size of the project in bytes. | +| `repositorySize` | [`Float!`](#float) | Repository size of the project in bytes. | +| `snippetsSize` | [`Float`](#float) | Snippets size of the project in bytes. | +| `storageSize` | [`Float!`](#float) | Storage size of the project in bytes. | +| `uploadsSize` | [`Float`](#float) | Uploads size of the project in bytes. | +| `wikiSize` | [`Float`](#float) | Wiki size of the project in bytes. | ### `PrometheusAlert` The alert condition for Prometheus. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `humanizedText` | [`String!`](#string) | The human-readable text of the alert condition. | -| `id` | [`ID!`](#id) | ID of the alert condition. | +#### Fields -### `PrometheusIntegrationCreatePayload` - -Autogenerated return type of PrometheusIntegrationCreate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `integration` | [`AlertManagementPrometheusIntegration`](#alertmanagementprometheusintegration) | The newly created integration. | - -### `PrometheusIntegrationResetTokenPayload` - -Autogenerated return type of PrometheusIntegrationResetToken. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `integration` | [`AlertManagementPrometheusIntegration`](#alertmanagementprometheusintegration) | The newly created integration. | - -### `PrometheusIntegrationUpdatePayload` - -Autogenerated return type of PrometheusIntegrationUpdate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `integration` | [`AlertManagementPrometheusIntegration`](#alertmanagementprometheusintegration) | The newly created integration. | - -### `PromoteToEpicPayload` - -Autogenerated return type of PromoteToEpic. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `epic` | [`Epic`](#epic) | The epic after issue promotion. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `issue` | [`Issue`](#issue) | The issue after mutation. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `humanizedText` | [`String!`](#string) | The human-readable text of the alert condition. | +| `id` | [`ID!`](#id) | ID of the alert condition. | ### `PushRules` Represents rules that commit pushes must follow. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `rejectUnsignedCommits` | [`Boolean!`](#boolean) | Indicates whether commits not signed through GPG will be rejected. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `rejectUnsignedCommits` | [`Boolean!`](#boolean) | Indicates whether commits not signed through GPG will be rejected. | ### `RecentFailures` Recent failure history of a test case. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `baseBranch` | [`String`](#string) | Name of the base branch of the project. | -| `count` | [`Int`](#int) | Number of times the test case has failed in the past 14 days. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `baseBranch` | [`String`](#string) | Name of the base branch of the project. | +| `count` | [`Int`](#int) | Number of times the test case has failed in the past 14 days. | ### `Release` Represents a release. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `assets` | [`ReleaseAssets`](#releaseassets) | Assets of the release. | -| `author` | [`User`](#user) | User that created the release. | -| `commit` | [`Commit`](#commit) | The commit associated with the release. | -| `createdAt` | [`Time`](#time) | Timestamp of when the release was created. | -| `description` | [`String`](#string) | Description (also known as "release notes") of the release. | -| `descriptionHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `description`. | -| `evidences` | [`ReleaseEvidenceConnection`](#releaseevidenceconnection) | Evidence for the release. | -| `links` | [`ReleaseLinks`](#releaselinks) | Links of the release. | -| `milestones` | [`MilestoneConnection`](#milestoneconnection) | Milestones associated to the release. | -| `name` | [`String`](#string) | Name of the release. | -| `releasedAt` | [`Time`](#time) | Timestamp of when the release was released. | -| `tagName` | [`String`](#string) | Name of the tag associated with the release. | -| `tagPath` | [`String`](#string) | Relative web path to the tag associated with the release. | -| `upcomingRelease` | [`Boolean`](#boolean) | Indicates the release is an upcoming release. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `assets` | [`ReleaseAssets`](#releaseassets) | Assets of the release. | +| `author` | [`User`](#user) | User that created the release. | +| `commit` | [`Commit`](#commit) | The commit associated with the release. | +| `createdAt` | [`Time`](#time) | Timestamp of when the release was created. | +| `description` | [`String`](#string) | Description (also known as "release notes") of the release. | +| `descriptionHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `description`. | +| `evidences` | [`ReleaseEvidenceConnection`](#releaseevidenceconnection) | Evidence for the release. | +| `links` | [`ReleaseLinks`](#releaselinks) | Links of the release. | +| `milestones` | [`MilestoneConnection`](#milestoneconnection) | Milestones associated to the release. | +| `name` | [`String`](#string) | Name of the release. | +| `releasedAt` | [`Time`](#time) | Timestamp of when the release was released. | +| `tagName` | [`String`](#string) | Name of the tag associated with the release. | +| `tagPath` | [`String`](#string) | Relative web path to the tag associated with the release. | +| `upcomingRelease` | [`Boolean`](#boolean) | Indicates the release is an upcoming release. | ### `ReleaseAssetLink` Represents an asset link associated with a release. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `directAssetUrl` | [`String`](#string) | Direct asset URL of the link. | -| `external` | [`Boolean`](#boolean) | Indicates the link points to an external resource. | -| `id` | [`ID!`](#id) | ID of the link. | -| `linkType` | [`ReleaseAssetLinkType`](#releaseassetlinktype) | Type of the link: `other`, `runbook`, `image`, `package`; defaults to `other`. | -| `name` | [`String`](#string) | Name of the link. | -| `url` | [`String`](#string) | URL of the link. | +#### Fields -### `ReleaseAssetLinkConnection` - -The connection type for ReleaseAssetLink. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[ReleaseAssetLinkEdge]`](#releaseassetlinkedge) | A list of edges. | -| `nodes` | [`[ReleaseAssetLink]`](#releaseassetlink) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `ReleaseAssetLinkCreatePayload` - -Autogenerated return type of ReleaseAssetLinkCreate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `link` | [`ReleaseAssetLink`](#releaseassetlink) | The asset link after mutation. | - -### `ReleaseAssetLinkDeletePayload` - -Autogenerated return type of ReleaseAssetLinkDelete. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `link` | [`ReleaseAssetLink`](#releaseassetlink) | The deleted release asset link. | - -### `ReleaseAssetLinkEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`ReleaseAssetLink`](#releaseassetlink) | The item at the end of the edge. | - -### `ReleaseAssetLinkUpdatePayload` - -Autogenerated return type of ReleaseAssetLinkUpdate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `link` | [`ReleaseAssetLink`](#releaseassetlink) | The asset link after mutation. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `directAssetUrl` | [`String`](#string) | Direct asset URL of the link. | +| `external` | [`Boolean`](#boolean) | Indicates the link points to an external resource. | +| `id` | [`ID!`](#id) | ID of the link. | +| `linkType` | [`ReleaseAssetLinkType`](#releaseassetlinktype) | Type of the link: `other`, `runbook`, `image`, `package`; defaults to `other`. | +| `name` | [`String`](#string) | Name of the link. | +| `url` | [`String`](#string) | URL of the link. | ### `ReleaseAssets` A container for all assets associated with a release. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `count` | [`Int`](#int) | Number of assets of the release. | -| `links` | [`ReleaseAssetLinkConnection`](#releaseassetlinkconnection) | Asset links of the release. | -| `sources` | [`ReleaseSourceConnection`](#releasesourceconnection) | Sources of the release. | +#### Fields -### `ReleaseConnection` - -The connection type for Release. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `count` | [`Int!`](#int) | Total count of collection. | -| `edges` | [`[ReleaseEdge]`](#releaseedge) | A list of edges. | -| `nodes` | [`[Release]`](#release) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `ReleaseCreatePayload` - -Autogenerated return type of ReleaseCreate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `release` | [`Release`](#release) | The release after mutation. | - -### `ReleaseDeletePayload` - -Autogenerated return type of ReleaseDelete. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `release` | [`Release`](#release) | The deleted release. | - -### `ReleaseEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`Release`](#release) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `count` | [`Int`](#int) | Number of assets of the release. | +| `links` | [`ReleaseAssetLinkConnection`](#releaseassetlinkconnection) | Asset links of the release. | +| `sources` | [`ReleaseSourceConnection`](#releasesourceconnection) | Sources of the release. | ### `ReleaseEvidence` Evidence for a release. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `collectedAt` | [`Time`](#time) | Timestamp when the evidence was collected. | -| `filepath` | [`String`](#string) | URL from where the evidence can be downloaded. | -| `id` | [`ID!`](#id) | ID of the evidence. | -| `sha` | [`String`](#string) | SHA1 ID of the evidence hash. | +#### Fields -### `ReleaseEvidenceConnection` - -The connection type for ReleaseEvidence. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[ReleaseEvidenceEdge]`](#releaseevidenceedge) | A list of edges. | -| `nodes` | [`[ReleaseEvidence]`](#releaseevidence) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `ReleaseEvidenceEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`ReleaseEvidence`](#releaseevidence) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `collectedAt` | [`Time`](#time) | Timestamp when the evidence was collected. | +| `filepath` | [`String`](#string) | URL from where the evidence can be downloaded. | +| `id` | [`ID!`](#id) | ID of the evidence. | +| `sha` | [`String`](#string) | SHA1 ID of the evidence hash. | ### `ReleaseLinks` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `closedIssuesUrl` | [`String`](#string) | HTTP URL of the issues page, filtered by this release and `state=closed`. | -| `closedMergeRequestsUrl` | [`String`](#string) | HTTP URL of the merge request page , filtered by this release and `state=closed`. | -| `editUrl` | [`String`](#string) | HTTP URL of the release's edit page. | -| `mergedMergeRequestsUrl` | [`String`](#string) | HTTP URL of the merge request page , filtered by this release and `state=merged`. | -| `openedIssuesUrl` | [`String`](#string) | HTTP URL of the issues page, filtered by this release and `state=open`. | -| `openedMergeRequestsUrl` | [`String`](#string) | HTTP URL of the merge request page, filtered by this release and `state=open`. | -| `selfUrl` | [`String`](#string) | HTTP URL of the release. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `closedIssuesUrl` | [`String`](#string) | HTTP URL of the issues page, filtered by this release and `state=closed`. | +| `closedMergeRequestsUrl` | [`String`](#string) | HTTP URL of the merge request page , filtered by this release and `state=closed`. | +| `editUrl` | [`String`](#string) | HTTP URL of the release's edit page. | +| `mergedMergeRequestsUrl` | [`String`](#string) | HTTP URL of the merge request page , filtered by this release and `state=merged`. | +| `openedIssuesUrl` | [`String`](#string) | HTTP URL of the issues page, filtered by this release and `state=open`. | +| `openedMergeRequestsUrl` | [`String`](#string) | HTTP URL of the merge request page, filtered by this release and `state=open`. | +| `selfUrl` | [`String`](#string) | HTTP URL of the release. | ### `ReleaseSource` Represents the source code attached to a release in a particular format. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `format` | [`String`](#string) | Format of the source. | -| `url` | [`String`](#string) | Download URL of the source. | +#### Fields -### `ReleaseSourceConnection` - -The connection type for ReleaseSource. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[ReleaseSourceEdge]`](#releasesourceedge) | A list of edges. | -| `nodes` | [`[ReleaseSource]`](#releasesource) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `ReleaseSourceEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`ReleaseSource`](#releasesource) | The item at the end of the edge. | - -### `ReleaseUpdatePayload` - -Autogenerated return type of ReleaseUpdate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `release` | [`Release`](#release) | The release after mutation. | - -### `RemoveAwardEmojiPayload` - -Autogenerated return type of RemoveAwardEmoji. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `awardEmoji` | [`AwardEmoji`](#awardemoji) | The award emoji after mutation. | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `RemoveProjectFromSecurityDashboardPayload` - -Autogenerated return type of RemoveProjectFromSecurityDashboard. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `RepositionImageDiffNotePayload` - -Autogenerated return type of RepositionImageDiffNote. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `note` | [`Note`](#note) | The note after mutation. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `format` | [`String`](#string) | Format of the source. | +| `url` | [`String`](#string) | Download URL of the source. | ### `Repository` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `blobs` | [`RepositoryBlobConnection`](#repositoryblobconnection) | Blobs contained within the repository. | -| `branchNames` | [`[String!]`](#string) | Names of branches available in this repository that match the search pattern. | -| `empty` | [`Boolean!`](#boolean) | Indicates repository has no visible content. | -| `exists` | [`Boolean!`](#boolean) | Indicates a corresponding Git repository exists on disk. | -| `rootRef` | [`String`](#string) | Default branch of the repository. | -| `tree` | [`Tree`](#tree) | Tree of the repository. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `empty` | [`Boolean!`](#boolean) | Indicates repository has no visible content. | +| `exists` | [`Boolean!`](#boolean) | Indicates a corresponding Git repository exists on disk. | +| `rootRef` | [`String`](#string) | Default branch of the repository. | + +#### Fields with arguments + +##### `Repository.blobs` + +Blobs contained within the repository. + +Returns [`RepositoryBlobConnection`](#repositoryblobconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `paths` | [`[String!]!`](#string) | Array of desired blob paths. | +| `ref` | [`String`](#string) | The commit ref to get the blobs from. Default value is HEAD. | + +##### `Repository.branchNames` + +Names of branches available in this repository that match the search pattern. + +Returns [`[String!]`](#string). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `searchPattern` | [`String!`](#string) | The pattern to search for branch names by. | + +##### `Repository.tree` + +Tree of the repository. + +Returns [`Tree`](#tree). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `path` | [`String`](#string) | The path to get the tree for. Default value is the root of the repository. | +| `recursive` | [`Boolean`](#boolean) | Used to get a recursive tree. Default is false. | +| `ref` | [`String`](#string) | The commit ref to get the tree for. Default value is HEAD. | ### `RepositoryBlob` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `id` | [`ID!`](#id) | ID of the blob. | -| `lfsOid` | [`String`](#string) | LFS OID of the blob. | -| `mode` | [`String`](#string) | Blob mode. | -| `name` | [`String`](#string) | Blob name. | -| `oid` | [`String!`](#string) | OID of the blob. | -| `path` | [`String!`](#string) | Path of the blob. | -| `webPath` | [`String`](#string) | Web path of the blob. | +#### Fields -### `RepositoryBlobConnection` - -The connection type for RepositoryBlob. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[RepositoryBlobEdge]`](#repositoryblobedge) | A list of edges. | -| `nodes` | [`[RepositoryBlob]`](#repositoryblob) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `RepositoryBlobEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`RepositoryBlob`](#repositoryblob) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `id` | [`ID!`](#id) | ID of the blob. | +| `lfsOid` | [`String`](#string) | LFS OID of the blob. | +| `mode` | [`String`](#string) | Blob mode. | +| `name` | [`String`](#string) | Blob name. | +| `oid` | [`String!`](#string) | OID of the blob. | +| `path` | [`String!`](#string) | Path of the blob. | +| `webPath` | [`String`](#string) | Web path of the blob. | ### `Requirement` Represents a requirement. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `author` | [`User!`](#user) | Author of the requirement. | -| `createdAt` | [`Time!`](#time) | Timestamp of when the requirement was created. | -| `description` | [`String`](#string) | Description of the requirement. | -| `descriptionHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `description`. | -| `id` | [`ID!`](#id) | ID of the requirement. | -| `iid` | [`ID!`](#id) | Internal ID of the requirement. | -| `lastTestReportManuallyCreated` | [`Boolean`](#boolean) | Indicates if latest test report was created by user. | -| `lastTestReportState` | [`TestReportState`](#testreportstate) | Latest requirement test report state. | -| `project` | [`Project!`](#project) | Project to which the requirement belongs. | -| `state` | [`RequirementState!`](#requirementstate) | State of the requirement. | -| `testReports` | [`TestReportConnection`](#testreportconnection) | Test reports of the requirement. | -| `title` | [`String`](#string) | Title of the requirement. | -| `titleHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `title`. | -| `updatedAt` | [`Time!`](#time) | Timestamp of when the requirement was last updated. | -| `userPermissions` | [`RequirementPermissions!`](#requirementpermissions) | Permissions for the current user on the resource. | +#### Fields -### `RequirementConnection` +| Name | Type | Description | +| ---- | ---- | ----------- | +| `author` | [`User!`](#user) | Author of the requirement. | +| `createdAt` | [`Time!`](#time) | Timestamp of when the requirement was created. | +| `description` | [`String`](#string) | Description of the requirement. | +| `descriptionHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `description`. | +| `id` | [`ID!`](#id) | ID of the requirement. | +| `iid` | [`ID!`](#id) | Internal ID of the requirement. | +| `lastTestReportManuallyCreated` | [`Boolean`](#boolean) | Indicates if latest test report was created by user. | +| `lastTestReportState` | [`TestReportState`](#testreportstate) | Latest requirement test report state. | +| `project` | [`Project!`](#project) | Project to which the requirement belongs. | +| `state` | [`RequirementState!`](#requirementstate) | State of the requirement. | +| `title` | [`String`](#string) | Title of the requirement. | +| `titleHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `title`. | +| `updatedAt` | [`Time!`](#time) | Timestamp of when the requirement was last updated. | +| `userPermissions` | [`RequirementPermissions!`](#requirementpermissions) | Permissions for the current user on the resource. | -The connection type for Requirement. +#### Fields with arguments -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[RequirementEdge]`](#requirementedge) | A list of edges. | -| `nodes` | [`[Requirement]`](#requirement) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | +##### `Requirement.testReports` -### `RequirementEdge` +Test reports of the requirement. -An edge in a connection. +Returns [`TestReportConnection`](#testreportconnection). -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`Requirement`](#requirement) | The item at the end of the edge. | +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `sort` | [`Sort`](#sort) | List test reports by sort order. | ### `RequirementPermissions` Check permissions for the current user on a requirement. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `adminRequirement` | [`Boolean!`](#boolean) | Indicates the user can perform `admin_requirement` on this resource. | -| `createRequirement` | [`Boolean!`](#boolean) | Indicates the user can perform `create_requirement` on this resource. | -| `destroyRequirement` | [`Boolean!`](#boolean) | Indicates the user can perform `destroy_requirement` on this resource. | -| `readRequirement` | [`Boolean!`](#boolean) | Indicates the user can perform `read_requirement` on this resource. | -| `updateRequirement` | [`Boolean!`](#boolean) | Indicates the user can perform `update_requirement` on this resource. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `adminRequirement` | [`Boolean!`](#boolean) | Indicates the user can perform `admin_requirement` on this resource. | +| `createRequirement` | [`Boolean!`](#boolean) | Indicates the user can perform `create_requirement` on this resource. | +| `destroyRequirement` | [`Boolean!`](#boolean) | Indicates the user can perform `destroy_requirement` on this resource. | +| `readRequirement` | [`Boolean!`](#boolean) | Indicates the user can perform `read_requirement` on this resource. | +| `updateRequirement` | [`Boolean!`](#boolean) | Indicates the user can perform `update_requirement` on this resource. | ### `RequirementStatesCount` Counts of requirements by their state. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `archived` | [`Int`](#int) | Number of archived requirements. | -| `opened` | [`Int`](#int) | Number of opened requirements. | +#### Fields -### `RevertVulnerabilityToDetectedPayload` - -Autogenerated return type of RevertVulnerabilityToDetected. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `vulnerability` | [`Vulnerability`](#vulnerability) | The vulnerability after revert. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `archived` | [`Int`](#int) | Number of archived requirements. | +| `opened` | [`Int`](#int) | Number of opened requirements. | ### `RootStorageStatistics` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `buildArtifactsSize` | [`Float!`](#float) | The CI artifacts size in bytes. | -| `lfsObjectsSize` | [`Float!`](#float) | The LFS objects size in bytes. | -| `packagesSize` | [`Float!`](#float) | The packages size in bytes. | -| `pipelineArtifactsSize` | [`Float!`](#float) | The CI pipeline artifacts size in bytes. | -| `repositorySize` | [`Float!`](#float) | The Git repository size in bytes. | -| `snippetsSize` | [`Float!`](#float) | The snippets size in bytes. | -| `storageSize` | [`Float!`](#float) | The total storage in bytes. | -| `uploadsSize` | [`Float!`](#float) | The uploads size in bytes. | -| `wikiSize` | [`Float!`](#float) | The wiki size in bytes. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `buildArtifactsSize` | [`Float!`](#float) | The CI artifacts size in bytes. | +| `lfsObjectsSize` | [`Float!`](#float) | The LFS objects size in bytes. | +| `packagesSize` | [`Float!`](#float) | The packages size in bytes. | +| `pipelineArtifactsSize` | [`Float!`](#float) | The CI pipeline artifacts size in bytes. | +| `repositorySize` | [`Float!`](#float) | The Git repository size in bytes. | +| `snippetsSize` | [`Float!`](#float) | The snippets size in bytes. | +| `storageSize` | [`Float!`](#float) | The total storage in bytes. | +| `uploadsSize` | [`Float!`](#float) | The uploads size in bytes. | +| `wikiSize` | [`Float!`](#float) | The wiki size in bytes. | ### `RunDASTScanPayload` Autogenerated return type of RunDASTScan. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `pipelineUrl` | [`String`](#string) | URL of the pipeline that was created. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | +| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| `pipelineUrl` | [`String`](#string) | URL of the pipeline that was created. | ### `RunnerArchitecture` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `downloadLocation` | [`String!`](#string) | Download location for the runner for the platform architecture. | -| `name` | [`String!`](#string) | Name of the runner platform architecture. | +#### Fields -### `RunnerArchitectureConnection` - -The connection type for RunnerArchitecture. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[RunnerArchitectureEdge]`](#runnerarchitectureedge) | A list of edges. | -| `nodes` | [`[RunnerArchitecture]`](#runnerarchitecture) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `RunnerArchitectureEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`RunnerArchitecture`](#runnerarchitecture) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `downloadLocation` | [`String!`](#string) | Download location for the runner for the platform architecture. | +| `name` | [`String!`](#string) | Name of the runner platform architecture. | ### `RunnerPlatform` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `architectures` | [`RunnerArchitectureConnection`](#runnerarchitectureconnection) | Runner architectures supported for the platform. | -| `humanReadableName` | [`String!`](#string) | Human readable name of the runner platform. | -| `name` | [`String!`](#string) | Name slug of the runner platform. | +#### Fields -### `RunnerPlatformConnection` - -The connection type for RunnerPlatform. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[RunnerPlatformEdge]`](#runnerplatformedge) | A list of edges. | -| `nodes` | [`[RunnerPlatform]`](#runnerplatform) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `RunnerPlatformEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`RunnerPlatform`](#runnerplatform) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `architectures` | [`RunnerArchitectureConnection`](#runnerarchitectureconnection) | Runner architectures supported for the platform. | +| `humanReadableName` | [`String!`](#string) | Human readable name of the runner platform. | +| `name` | [`String!`](#string) | Name slug of the runner platform. | ### `RunnerSetup` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `installInstructions` | [`String!`](#string) | Instructions for installing the runner on the specified architecture. | -| `registerInstructions` | [`String`](#string) | Instructions for registering the runner. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `installInstructions` | [`String!`](#string) | Instructions for installing the runner on the specified architecture. | +| `registerInstructions` | [`String`](#string) | Instructions for registering the runner. | ### `SastCiConfiguration` Represents a CI configuration of SAST. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `analyzers` | [`SastCiConfigurationAnalyzersEntityConnection`](#sastciconfigurationanalyzersentityconnection) | List of analyzers entities attached to SAST configuration. | -| `global` | [`SastCiConfigurationEntityConnection`](#sastciconfigurationentityconnection) | List of global entities related to SAST configuration. | -| `pipeline` | [`SastCiConfigurationEntityConnection`](#sastciconfigurationentityconnection) | List of pipeline entities related to SAST configuration. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `analyzers` | [`SastCiConfigurationAnalyzersEntityConnection`](#sastciconfigurationanalyzersentityconnection) | List of analyzers entities attached to SAST configuration. | +| `global` | [`SastCiConfigurationEntityConnection`](#sastciconfigurationentityconnection) | List of global entities related to SAST configuration. | +| `pipeline` | [`SastCiConfigurationEntityConnection`](#sastciconfigurationentityconnection) | List of pipeline entities related to SAST configuration. | ### `SastCiConfigurationAnalyzersEntity` Represents an analyzer entity in SAST CI configuration. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `description` | [`String`](#string) | Analyzer description that is displayed on the form. | -| `enabled` | [`Boolean`](#boolean) | Indicates whether an analyzer is enabled. | -| `label` | [`String`](#string) | Analyzer label used in the config UI. | -| `name` | [`String`](#string) | Name of the analyzer. | -| `variables` | [`SastCiConfigurationEntityConnection`](#sastciconfigurationentityconnection) | List of supported variables. | +#### Fields -### `SastCiConfigurationAnalyzersEntityConnection` - -The connection type for SastCiConfigurationAnalyzersEntity. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[SastCiConfigurationAnalyzersEntityEdge]`](#sastciconfigurationanalyzersentityedge) | A list of edges. | -| `nodes` | [`[SastCiConfigurationAnalyzersEntity]`](#sastciconfigurationanalyzersentity) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `SastCiConfigurationAnalyzersEntityEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`SastCiConfigurationAnalyzersEntity`](#sastciconfigurationanalyzersentity) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `description` | [`String`](#string) | Analyzer description that is displayed on the form. | +| `enabled` | [`Boolean`](#boolean) | Indicates whether an analyzer is enabled. | +| `label` | [`String`](#string) | Analyzer label used in the config UI. | +| `name` | [`String`](#string) | Name of the analyzer. | +| `variables` | [`SastCiConfigurationEntityConnection`](#sastciconfigurationentityconnection) | List of supported variables. | ### `SastCiConfigurationEntity` Represents an entity in SAST CI configuration. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `defaultValue` | [`String`](#string) | Default value that is used if value is empty. | -| `description` | [`String`](#string) | Entity description that is displayed on the form. | -| `field` | [`String`](#string) | CI keyword of entity. | -| `label` | [`String`](#string) | Label for entity used in the form. | -| `options` | [`SastCiConfigurationOptionsEntityConnection`](#sastciconfigurationoptionsentityconnection) | Different possible values of the field. | -| `size` | [`SastUiComponentSize`](#sastuicomponentsize) | Size of the UI component. | -| `type` | [`String`](#string) | Type of the field value. | -| `value` | [`String`](#string) | Current value of the entity. | +#### Fields -### `SastCiConfigurationEntityConnection` - -The connection type for SastCiConfigurationEntity. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[SastCiConfigurationEntityEdge]`](#sastciconfigurationentityedge) | A list of edges. | -| `nodes` | [`[SastCiConfigurationEntity]`](#sastciconfigurationentity) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `SastCiConfigurationEntityEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`SastCiConfigurationEntity`](#sastciconfigurationentity) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `defaultValue` | [`String`](#string) | Default value that is used if value is empty. | +| `description` | [`String`](#string) | Entity description that is displayed on the form. | +| `field` | [`String`](#string) | CI keyword of entity. | +| `label` | [`String`](#string) | Label for entity used in the form. | +| `options` | [`SastCiConfigurationOptionsEntityConnection`](#sastciconfigurationoptionsentityconnection) | Different possible values of the field. | +| `size` | [`SastUiComponentSize`](#sastuicomponentsize) | Size of the UI component. | +| `type` | [`String`](#string) | Type of the field value. | +| `value` | [`String`](#string) | Current value of the entity. | ### `SastCiConfigurationOptionsEntity` Represents an entity for options in SAST CI configuration. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `label` | [`String`](#string) | Label of option entity. | -| `value` | [`String`](#string) | Value of option entity. | +#### Fields -### `SastCiConfigurationOptionsEntityConnection` - -The connection type for SastCiConfigurationOptionsEntity. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[SastCiConfigurationOptionsEntityEdge]`](#sastciconfigurationoptionsentityedge) | A list of edges. | -| `nodes` | [`[SastCiConfigurationOptionsEntity]`](#sastciconfigurationoptionsentity) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `SastCiConfigurationOptionsEntityEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`SastCiConfigurationOptionsEntity`](#sastciconfigurationoptionsentity) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `label` | [`String`](#string) | Label of option entity. | +| `value` | [`String`](#string) | Value of option entity. | ### `Scan` Represents the security scan information. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `errors` | [`[String!]!`](#string) | List of errors. | -| `name` | [`String!`](#string) | Name of the scan. | +#### Fields -### `ScanConnection` - -The connection type for Scan. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[ScanEdge]`](#scanedge) | A list of edges. | -| `nodes` | [`[Scan]`](#scan) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `ScanEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`Scan`](#scan) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `errors` | [`[String!]!`](#string) | List of errors. | +| `name` | [`String!`](#string) | Name of the scan. | ### `ScannedResource` Represents a resource scanned by a security scan. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `requestMethod` | [`String`](#string) | The HTTP request method used to access the URL. | -| `url` | [`String`](#string) | The URL scanned by the scanner. | +#### Fields -### `ScannedResourceConnection` - -The connection type for ScannedResource. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[ScannedResourceEdge]`](#scannedresourceedge) | A list of edges. | -| `nodes` | [`[ScannedResource]`](#scannedresource) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `ScannedResourceEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`ScannedResource`](#scannedresource) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `requestMethod` | [`String`](#string) | The HTTP request method used to access the URL. | +| `url` | [`String`](#string) | The URL scanned by the scanner. | ### `SecurityReportSummary` Represents summary of a security report. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `apiFuzzing` | [`SecurityReportSummarySection`](#securityreportsummarysection) | Aggregated counts for the `api_fuzzing` scan. | -| `containerScanning` | [`SecurityReportSummarySection`](#securityreportsummarysection) | Aggregated counts for the `container_scanning` scan. | -| `coverageFuzzing` | [`SecurityReportSummarySection`](#securityreportsummarysection) | Aggregated counts for the `coverage_fuzzing` scan. | -| `dast` | [`SecurityReportSummarySection`](#securityreportsummarysection) | Aggregated counts for the `dast` scan. | -| `dependencyScanning` | [`SecurityReportSummarySection`](#securityreportsummarysection) | Aggregated counts for the `dependency_scanning` scan. | -| `sast` | [`SecurityReportSummarySection`](#securityreportsummarysection) | Aggregated counts for the `sast` scan. | -| `secretDetection` | [`SecurityReportSummarySection`](#securityreportsummarysection) | Aggregated counts for the `secret_detection` scan. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `apiFuzzing` | [`SecurityReportSummarySection`](#securityreportsummarysection) | Aggregated counts for the `api_fuzzing` scan. | +| `containerScanning` | [`SecurityReportSummarySection`](#securityreportsummarysection) | Aggregated counts for the `container_scanning` scan. | +| `coverageFuzzing` | [`SecurityReportSummarySection`](#securityreportsummarysection) | Aggregated counts for the `coverage_fuzzing` scan. | +| `dast` | [`SecurityReportSummarySection`](#securityreportsummarysection) | Aggregated counts for the `dast` scan. | +| `dependencyScanning` | [`SecurityReportSummarySection`](#securityreportsummarysection) | Aggregated counts for the `dependency_scanning` scan. | +| `sast` | [`SecurityReportSummarySection`](#securityreportsummarysection) | Aggregated counts for the `sast` scan. | +| `secretDetection` | [`SecurityReportSummarySection`](#securityreportsummarysection) | Aggregated counts for the `secret_detection` scan. | ### `SecurityReportSummarySection` Represents a section of a summary of a security report. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `scannedResources` | [`ScannedResourceConnection`](#scannedresourceconnection) | A list of the first 20 scanned resources. | -| `scannedResourcesCount` | [`Int`](#int) | Total number of scanned resources. | -| `scannedResourcesCsvPath` | [`String`](#string) | Path to download all the scanned resources in CSV format. | -| `scans` | [`ScanConnection!`](#scanconnection) | List of security scans ran for the type. | -| `vulnerabilitiesCount` | [`Int`](#int) | Total number of vulnerabilities. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `scannedResources` | [`ScannedResourceConnection`](#scannedresourceconnection) | A list of the first 20 scanned resources. | +| `scannedResourcesCount` | [`Int`](#int) | Total number of scanned resources. | +| `scannedResourcesCsvPath` | [`String`](#string) | Path to download all the scanned resources in CSV format. | +| `scans` | [`ScanConnection!`](#scanconnection) | List of security scans ran for the type. | +| `vulnerabilitiesCount` | [`Int`](#int) | Total number of vulnerabilities. | ### `SecurityScanners` Represents a list of security scanners. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `available` | [`[SecurityScannerType!]`](#securityscannertype) | List of analyzers which are available for the project. | -| `enabled` | [`[SecurityScannerType!]`](#securityscannertype) | List of analyzers which are enabled for the project. | -| `pipelineRun` | [`[SecurityScannerType!]`](#securityscannertype) | List of analyzers which ran successfully in the latest pipeline. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `available` | [`[SecurityScannerType!]`](#securityscannertype) | List of analyzers which are available for the project. | +| `enabled` | [`[SecurityScannerType!]`](#securityscannertype) | List of analyzers which are enabled for the project. | +| `pipelineRun` | [`[SecurityScannerType!]`](#securityscannertype) | List of analyzers which ran successfully in the latest pipeline. | ### `SentryDetailedError` A Sentry error. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `count` | [`Int!`](#int) | Count of occurrences. | -| `culprit` | [`String!`](#string) | Culprit of the error. | -| `externalBaseUrl` | [`String!`](#string) | External Base URL of the Sentry Instance. | -| `externalUrl` | [`String!`](#string) | External URL of the error. | -| `firstReleaseLastCommit` | [`String`](#string) | Commit the error was first seen. | -| `firstReleaseShortVersion` | [`String`](#string) | Release short version the error was first seen. | -| `firstReleaseVersion` | [`String`](#string) | Release version the error was first seen. | -| `firstSeen` | [`Time!`](#time) | Timestamp when the error was first seen. | -| `frequency` | [`[SentryErrorFrequency!]!`](#sentryerrorfrequency) | Last 24hr stats of the error. | -| `gitlabCommit` | [`String`](#string) | GitLab commit SHA attributed to the Error based on the release version. | -| `gitlabCommitPath` | [`String`](#string) | Path to the GitLab page for the GitLab commit attributed to the error. | -| `gitlabIssuePath` | [`String`](#string) | URL of GitLab Issue. | -| `id` | [`ID!`](#id) | ID (global ID) of the error. | -| `lastReleaseLastCommit` | [`String`](#string) | Commit the error was last seen. | -| `lastReleaseShortVersion` | [`String`](#string) | Release short version the error was last seen. | -| `lastReleaseVersion` | [`String`](#string) | Release version the error was last seen. | -| `lastSeen` | [`Time!`](#time) | Timestamp when the error was last seen. | -| `message` | [`String`](#string) | Sentry metadata message of the error. | -| `sentryId` | [`String!`](#string) | ID (Sentry ID) of the error. | -| `sentryProjectId` | [`ID!`](#id) | ID of the project (Sentry project). | -| `sentryProjectName` | [`String!`](#string) | Name of the project affected by the error. | -| `sentryProjectSlug` | [`String!`](#string) | Slug of the project affected by the error. | -| `shortId` | [`String!`](#string) | Short ID (Sentry ID) of the error. | -| `status` | [`SentryErrorStatus!`](#sentryerrorstatus) | Status of the error. | -| `tags` | [`SentryErrorTags!`](#sentryerrortags) | Tags associated with the Sentry Error. | -| `title` | [`String!`](#string) | Title of the error. | -| `type` | [`String!`](#string) | Type of the error. | -| `userCount` | [`Int!`](#int) | Count of users affected by the error. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `count` | [`Int!`](#int) | Count of occurrences. | +| `culprit` | [`String!`](#string) | Culprit of the error. | +| `externalBaseUrl` | [`String!`](#string) | External Base URL of the Sentry Instance. | +| `externalUrl` | [`String!`](#string) | External URL of the error. | +| `firstReleaseLastCommit` | [`String`](#string) | Commit the error was first seen. | +| `firstReleaseShortVersion` | [`String`](#string) | Release short version the error was first seen. | +| `firstReleaseVersion` | [`String`](#string) | Release version the error was first seen. | +| `firstSeen` | [`Time!`](#time) | Timestamp when the error was first seen. | +| `frequency` | [`[SentryErrorFrequency!]!`](#sentryerrorfrequency) | Last 24hr stats of the error. | +| `gitlabCommit` | [`String`](#string) | GitLab commit SHA attributed to the Error based on the release version. | +| `gitlabCommitPath` | [`String`](#string) | Path to the GitLab page for the GitLab commit attributed to the error. | +| `gitlabIssuePath` | [`String`](#string) | URL of GitLab Issue. | +| `id` | [`ID!`](#id) | ID (global ID) of the error. | +| `lastReleaseLastCommit` | [`String`](#string) | Commit the error was last seen. | +| `lastReleaseShortVersion` | [`String`](#string) | Release short version the error was last seen. | +| `lastReleaseVersion` | [`String`](#string) | Release version the error was last seen. | +| `lastSeen` | [`Time!`](#time) | Timestamp when the error was last seen. | +| `message` | [`String`](#string) | Sentry metadata message of the error. | +| `sentryId` | [`String!`](#string) | ID (Sentry ID) of the error. | +| `sentryProjectId` | [`ID!`](#id) | ID of the project (Sentry project). | +| `sentryProjectName` | [`String!`](#string) | Name of the project affected by the error. | +| `sentryProjectSlug` | [`String!`](#string) | Slug of the project affected by the error. | +| `shortId` | [`String!`](#string) | Short ID (Sentry ID) of the error. | +| `status` | [`SentryErrorStatus!`](#sentryerrorstatus) | Status of the error. | +| `tags` | [`SentryErrorTags!`](#sentryerrortags) | Tags associated with the Sentry Error. | +| `title` | [`String!`](#string) | Title of the error. | +| `type` | [`String!`](#string) | Type of the error. | +| `userCount` | [`Int!`](#int) | Count of users affected by the error. | ### `SentryError` A Sentry error. A simplified version of SentryDetailedError. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `count` | [`Int!`](#int) | Count of occurrences. | -| `culprit` | [`String!`](#string) | Culprit of the error. | -| `externalUrl` | [`String!`](#string) | External URL of the error. | -| `firstSeen` | [`Time!`](#time) | Timestamp when the error was first seen. | -| `frequency` | [`[SentryErrorFrequency!]!`](#sentryerrorfrequency) | Last 24hr stats of the error. | -| `id` | [`ID!`](#id) | ID (global ID) of the error. | -| `lastSeen` | [`Time!`](#time) | Timestamp when the error was last seen. | -| `message` | [`String`](#string) | Sentry metadata message of the error. | -| `sentryId` | [`String!`](#string) | ID (Sentry ID) of the error. | -| `sentryProjectId` | [`ID!`](#id) | ID of the project (Sentry project). | -| `sentryProjectName` | [`String!`](#string) | Name of the project affected by the error. | -| `sentryProjectSlug` | [`String!`](#string) | Slug of the project affected by the error. | -| `shortId` | [`String!`](#string) | Short ID (Sentry ID) of the error. | -| `status` | [`SentryErrorStatus!`](#sentryerrorstatus) | Status of the error. | -| `title` | [`String!`](#string) | Title of the error. | -| `type` | [`String!`](#string) | Type of the error. | -| `userCount` | [`Int!`](#int) | Count of users affected by the error. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `count` | [`Int!`](#int) | Count of occurrences. | +| `culprit` | [`String!`](#string) | Culprit of the error. | +| `externalUrl` | [`String!`](#string) | External URL of the error. | +| `firstSeen` | [`Time!`](#time) | Timestamp when the error was first seen. | +| `frequency` | [`[SentryErrorFrequency!]!`](#sentryerrorfrequency) | Last 24hr stats of the error. | +| `id` | [`ID!`](#id) | ID (global ID) of the error. | +| `lastSeen` | [`Time!`](#time) | Timestamp when the error was last seen. | +| `message` | [`String`](#string) | Sentry metadata message of the error. | +| `sentryId` | [`String!`](#string) | ID (Sentry ID) of the error. | +| `sentryProjectId` | [`ID!`](#id) | ID of the project (Sentry project). | +| `sentryProjectName` | [`String!`](#string) | Name of the project affected by the error. | +| `sentryProjectSlug` | [`String!`](#string) | Slug of the project affected by the error. | +| `shortId` | [`String!`](#string) | Short ID (Sentry ID) of the error. | +| `status` | [`SentryErrorStatus!`](#sentryerrorstatus) | Status of the error. | +| `title` | [`String!`](#string) | Title of the error. | +| `type` | [`String!`](#string) | Type of the error. | +| `userCount` | [`Int!`](#int) | Count of users affected by the error. | ### `SentryErrorCollection` An object containing a collection of Sentry errors, and a detailed error. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `detailedError` | [`SentryDetailedError`](#sentrydetailederror) | Detailed version of a Sentry error on the project. | -| `errorStackTrace` | [`SentryErrorStackTrace`](#sentryerrorstacktrace) | Stack Trace of Sentry Error. | -| `errors` | [`SentryErrorConnection`](#sentryerrorconnection) | Collection of Sentry Errors. | -| `externalUrl` | [`String`](#string) | External URL for Sentry. | +#### Fields -### `SentryErrorConnection` +| Name | Type | Description | +| ---- | ---- | ----------- | +| `externalUrl` | [`String`](#string) | External URL for Sentry. | -The connection type for SentryError. +#### Fields with arguments -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[SentryErrorEdge]`](#sentryerroredge) | A list of edges. | -| `nodes` | [`[SentryError]`](#sentryerror) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | +##### `SentryErrorCollection.detailedError` -### `SentryErrorEdge` +Detailed version of a Sentry error on the project. -An edge in a connection. +Returns [`SentryDetailedError`](#sentrydetailederror). -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`SentryError`](#sentryerror) | The item at the end of the edge. | +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `id` | [`GitlabErrorTrackingDetailedErrorID!`](#gitlaberrortrackingdetailederrorid) | ID of the Sentry issue. | + +##### `SentryErrorCollection.errorStackTrace` + +Stack Trace of Sentry Error. + +Returns [`SentryErrorStackTrace`](#sentryerrorstacktrace). + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `id` | [`GitlabErrorTrackingDetailedErrorID!`](#gitlaberrortrackingdetailederrorid) | ID of the Sentry issue. | + +##### `SentryErrorCollection.errors` + +Collection of Sentry Errors. + +Returns [`SentryErrorConnection`](#sentryerrorconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `searchTerm` | [`String`](#string) | Search query for the Sentry error details. | +| `sort` | [`String`](#string) | Attribute to sort on. Options are frequency, first_seen, last_seen. last_seen is default. | ### `SentryErrorFrequency` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `count` | [`Int!`](#int) | Count of errors received since the previously recorded time. | -| `time` | [`Time!`](#time) | Time the error frequency stats were recorded. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `count` | [`Int!`](#int) | Count of errors received since the previously recorded time. | +| `time` | [`Time!`](#time) | Time the error frequency stats were recorded. | ### `SentryErrorStackTrace` An object containing a stack trace entry for a Sentry error. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `dateReceived` | [`String!`](#string) | Time the stack trace was received by Sentry. | -| `issueId` | [`String!`](#string) | ID of the Sentry error. | -| `stackTraceEntries` | [`[SentryErrorStackTraceEntry!]!`](#sentryerrorstacktraceentry) | Stack trace entries for the Sentry error. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `dateReceived` | [`String!`](#string) | Time the stack trace was received by Sentry. | +| `issueId` | [`String!`](#string) | ID of the Sentry error. | +| `stackTraceEntries` | [`[SentryErrorStackTraceEntry!]!`](#sentryerrorstacktraceentry) | Stack trace entries for the Sentry error. | ### `SentryErrorStackTraceContext` An object context for a Sentry error stack trace. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `code` | [`String!`](#string) | Code number of the context. | -| `line` | [`Int!`](#int) | Line number of the context. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `code` | [`String!`](#string) | Code number of the context. | +| `line` | [`Int!`](#int) | Line number of the context. | ### `SentryErrorStackTraceEntry` An object containing a stack trace entry for a Sentry error. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `col` | [`String`](#string) | Function in which the Sentry error occurred. | -| `fileName` | [`String`](#string) | File in which the Sentry error occurred. | -| `function` | [`String`](#string) | Function in which the Sentry error occurred. | -| `line` | [`String`](#string) | Function in which the Sentry error occurred. | -| `traceContext` | [`[SentryErrorStackTraceContext!]`](#sentryerrorstacktracecontext) | Context of the Sentry error. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `col` | [`String`](#string) | Function in which the Sentry error occurred. | +| `fileName` | [`String`](#string) | File in which the Sentry error occurred. | +| `function` | [`String`](#string) | Function in which the Sentry error occurred. | +| `line` | [`String`](#string) | Function in which the Sentry error occurred. | +| `traceContext` | [`[SentryErrorStackTraceContext!]`](#sentryerrorstacktracecontext) | Context of the Sentry error. | ### `SentryErrorTags` State of a Sentry error. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `level` | [`String`](#string) | Severity level of the Sentry Error. | -| `logger` | [`String`](#string) | Logger of the Sentry Error. | +#### Fields -### `ServiceConnection` - -The connection type for Service. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[ServiceEdge]`](#serviceedge) | A list of edges. | -| `nodes` | [`[Service]`](#service) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `ServiceEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`Service`](#service) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `level` | [`String`](#string) | Severity level of the Sentry Error. | +| `logger` | [`String`](#string) | Logger of the Sentry Error. | ### `Snippet` Represents a snippet entry. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `author` | [`User`](#user) | The owner of the snippet. | -| `blob` **{warning-solid}** | [`SnippetBlob!`](#snippetblob) | **Deprecated** in 13.3. Use `blobs`. | -| `blobs` | [`SnippetBlobConnection`](#snippetblobconnection) | Snippet blobs. | -| `createdAt` | [`Time!`](#time) | Timestamp this snippet was created. | -| `description` | [`String`](#string) | Description of the snippet. | -| `descriptionHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `description`. | -| `discussions` | [`DiscussionConnection!`](#discussionconnection) | All discussions on this noteable. | -| `fileName` | [`String`](#string) | File Name of the snippet. | -| `httpUrlToRepo` | [`String`](#string) | HTTP URL to the snippet repository. | -| `id` | [`SnippetID!`](#snippetid) | ID of the snippet. | -| `notes` | [`NoteConnection!`](#noteconnection) | All notes on this noteable. | -| `project` | [`Project`](#project) | The project the snippet is associated with. | -| `rawUrl` | [`String!`](#string) | Raw URL of the snippet. | -| `sshUrlToRepo` | [`String`](#string) | SSH URL to the snippet repository. | -| `title` | [`String!`](#string) | Title of the snippet. | -| `updatedAt` | [`Time!`](#time) | Timestamp this snippet was updated. | -| `userPermissions` | [`SnippetPermissions!`](#snippetpermissions) | Permissions for the current user on the resource. | -| `visibilityLevel` | [`VisibilityLevelsEnum!`](#visibilitylevelsenum) | Visibility Level of the snippet. | -| `webUrl` | [`String!`](#string) | Web URL of the snippet. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `author` | [`User`](#user) | The owner of the snippet. | +| `blob` **{warning-solid}** | [`SnippetBlob!`](#snippetblob) | **Deprecated** in 13.3. Use `blobs`. | +| `createdAt` | [`Time!`](#time) | Timestamp this snippet was created. | +| `description` | [`String`](#string) | Description of the snippet. | +| `descriptionHtml` | [`String`](#string) | The GitLab Flavored Markdown rendering of `description`. | +| `discussions` | [`DiscussionConnection!`](#discussionconnection) | All discussions on this noteable. | +| `fileName` | [`String`](#string) | File Name of the snippet. | +| `httpUrlToRepo` | [`String`](#string) | HTTP URL to the snippet repository. | +| `id` | [`SnippetID!`](#snippetid) | ID of the snippet. | +| `notes` | [`NoteConnection!`](#noteconnection) | All notes on this noteable. | +| `project` | [`Project`](#project) | The project the snippet is associated with. | +| `rawUrl` | [`String!`](#string) | Raw URL of the snippet. | +| `sshUrlToRepo` | [`String`](#string) | SSH URL to the snippet repository. | +| `title` | [`String!`](#string) | Title of the snippet. | +| `updatedAt` | [`Time!`](#time) | Timestamp this snippet was updated. | +| `userPermissions` | [`SnippetPermissions!`](#snippetpermissions) | Permissions for the current user on the resource. | +| `visibilityLevel` | [`VisibilityLevelsEnum!`](#visibilitylevelsenum) | Visibility Level of the snippet. | +| `webUrl` | [`String!`](#string) | Web URL of the snippet. | + +#### Fields with arguments + +##### `Snippet.blobs` + +Snippet blobs. + +Returns [`SnippetBlobConnection`](#snippetblobconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `paths` | [`[String!]`](#string) | Paths of the blobs. | ### `SnippetBlob` Represents the snippet blob. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `binary` | [`Boolean!`](#boolean) | Shows whether the blob is binary. | -| `externalStorage` | [`String`](#string) | Blob external storage. | -| `mode` | [`String`](#string) | Blob mode. | -| `name` | [`String`](#string) | Blob name. | -| `path` | [`String`](#string) | Blob path. | -| `plainData` | [`String`](#string) | Blob plain highlighted data. | -| `rawPath` | [`String!`](#string) | Blob raw content endpoint path. | -| `renderedAsText` | [`Boolean!`](#boolean) | Shows whether the blob is rendered as text. | -| `richData` | [`String`](#string) | Blob highlighted data. | -| `richViewer` | [`SnippetBlobViewer`](#snippetblobviewer) | Blob content rich viewer. | -| `simpleViewer` | [`SnippetBlobViewer!`](#snippetblobviewer) | Blob content simple viewer. | -| `size` | [`Int!`](#int) | Blob size. | +#### Fields -### `SnippetBlobConnection` - -The connection type for SnippetBlob. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[SnippetBlobEdge]`](#snippetblobedge) | A list of edges. | -| `nodes` | [`[SnippetBlob]`](#snippetblob) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `SnippetBlobEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`SnippetBlob`](#snippetblob) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `binary` | [`Boolean!`](#boolean) | Shows whether the blob is binary. | +| `externalStorage` | [`String`](#string) | Blob external storage. | +| `mode` | [`String`](#string) | Blob mode. | +| `name` | [`String`](#string) | Blob name. | +| `path` | [`String`](#string) | Blob path. | +| `plainData` | [`String`](#string) | Blob plain highlighted data. | +| `rawPath` | [`String!`](#string) | Blob raw content endpoint path. | +| `renderedAsText` | [`Boolean!`](#boolean) | Shows whether the blob is rendered as text. | +| `richData` | [`String`](#string) | Blob highlighted data. | +| `richViewer` | [`SnippetBlobViewer`](#snippetblobviewer) | Blob content rich viewer. | +| `simpleViewer` | [`SnippetBlobViewer!`](#snippetblobviewer) | Blob content simple viewer. | +| `size` | [`Int!`](#int) | Blob size. | ### `SnippetBlobViewer` Represents how the blob content should be displayed. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `collapsed` | [`Boolean!`](#boolean) | Shows whether the blob should be displayed collapsed. | -| `fileType` | [`String!`](#string) | Content file type. | -| `loadAsync` | [`Boolean!`](#boolean) | Shows whether the blob content is loaded asynchronously. | -| `loadingPartialName` | [`String!`](#string) | Loading partial name. | -| `renderError` | [`String`](#string) | Error rendering the blob content. | -| `tooLarge` | [`Boolean!`](#boolean) | Shows whether the blob too large to be displayed. | -| `type` | [`BlobViewersType!`](#blobviewerstype) | Type of blob viewer. | +#### Fields -### `SnippetConnection` - -The connection type for Snippet. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[SnippetEdge]`](#snippetedge) | A list of edges. | -| `nodes` | [`[Snippet]`](#snippet) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `SnippetEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`Snippet`](#snippet) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `collapsed` | [`Boolean!`](#boolean) | Shows whether the blob should be displayed collapsed. | +| `fileType` | [`String!`](#string) | Content file type. | +| `loadAsync` | [`Boolean!`](#boolean) | Shows whether the blob content is loaded asynchronously. | +| `loadingPartialName` | [`String!`](#string) | Loading partial name. | +| `renderError` | [`String`](#string) | Error rendering the blob content. | +| `tooLarge` | [`Boolean!`](#boolean) | Shows whether the blob too large to be displayed. | +| `type` | [`BlobViewersType!`](#blobviewerstype) | Type of blob viewer. | ### `SnippetPermissions` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `adminSnippet` | [`Boolean!`](#boolean) | Indicates the user can perform `admin_snippet` on this resource. | -| `awardEmoji` | [`Boolean!`](#boolean) | Indicates the user can perform `award_emoji` on this resource. | -| `createNote` | [`Boolean!`](#boolean) | Indicates the user can perform `create_note` on this resource. | -| `readSnippet` | [`Boolean!`](#boolean) | Indicates the user can perform `read_snippet` on this resource. | -| `reportSnippet` | [`Boolean!`](#boolean) | Indicates the user can perform `report_snippet` on this resource. | -| `updateSnippet` | [`Boolean!`](#boolean) | Indicates the user can perform `update_snippet` on this resource. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `adminSnippet` | [`Boolean!`](#boolean) | Indicates the user can perform `admin_snippet` on this resource. | +| `awardEmoji` | [`Boolean!`](#boolean) | Indicates the user can perform `award_emoji` on this resource. | +| `createNote` | [`Boolean!`](#boolean) | Indicates the user can perform `create_note` on this resource. | +| `readSnippet` | [`Boolean!`](#boolean) | Indicates the user can perform `read_snippet` on this resource. | +| `reportSnippet` | [`Boolean!`](#boolean) | Indicates the user can perform `report_snippet` on this resource. | +| `updateSnippet` | [`Boolean!`](#boolean) | Indicates the user can perform `update_snippet` on this resource. | ### `SnippetRepositoryRegistry` Represents the Geo sync and verification state of a snippet repository. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `createdAt` | [`Time`](#time) | Timestamp when the SnippetRepositoryRegistry was created. | -| `id` | [`ID!`](#id) | ID of the SnippetRepositoryRegistry. | -| `lastSyncFailure` | [`String`](#string) | Error message during sync of the SnippetRepositoryRegistry. | -| `lastSyncedAt` | [`Time`](#time) | Timestamp of the most recent successful sync of the SnippetRepositoryRegistry. | -| `retryAt` | [`Time`](#time) | Timestamp after which the SnippetRepositoryRegistry should be resynced. | -| `retryCount` | [`Int`](#int) | Number of consecutive failed sync attempts of the SnippetRepositoryRegistry. | -| `snippetRepositoryId` | [`ID!`](#id) | ID of the Snippet Repository. | -| `state` | [`RegistryState`](#registrystate) | Sync state of the SnippetRepositoryRegistry. | +#### Fields -### `SnippetRepositoryRegistryConnection` - -The connection type for SnippetRepositoryRegistry. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[SnippetRepositoryRegistryEdge]`](#snippetrepositoryregistryedge) | A list of edges. | -| `nodes` | [`[SnippetRepositoryRegistry]`](#snippetrepositoryregistry) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `SnippetRepositoryRegistryEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`SnippetRepositoryRegistry`](#snippetrepositoryregistry) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `createdAt` | [`Time`](#time) | Timestamp when the SnippetRepositoryRegistry was created. | +| `id` | [`ID!`](#id) | ID of the SnippetRepositoryRegistry. | +| `lastSyncFailure` | [`String`](#string) | Error message during sync of the SnippetRepositoryRegistry. | +| `lastSyncedAt` | [`Time`](#time) | Timestamp of the most recent successful sync of the SnippetRepositoryRegistry. | +| `retryAt` | [`Time`](#time) | Timestamp after which the SnippetRepositoryRegistry should be resynced. | +| `retryCount` | [`Int`](#int) | Number of consecutive failed sync attempts of the SnippetRepositoryRegistry. | +| `snippetRepositoryId` | [`ID!`](#id) | ID of the Snippet Repository. | +| `state` | [`RegistryState`](#registrystate) | Sync state of the SnippetRepositoryRegistry. | ### `StatusAction` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `buttonTitle` | [`String`](#string) | Title for the button, for example: Retry this job. | -| `icon` | [`String`](#string) | Icon used in the action button. | -| `method` | [`String`](#string) | Method for the action, for example: :post. | -| `path` | [`String`](#string) | Path for the action. | -| `title` | [`String`](#string) | Title for the action, for example: Retry. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `buttonTitle` | [`String`](#string) | Title for the button, for example: Retry this job. | +| `icon` | [`String`](#string) | Icon used in the action button. | +| `method` | [`String`](#string) | Method for the action, for example: :post. | +| `path` | [`String`](#string) | Path for the action. | +| `title` | [`String`](#string) | Title for the action, for example: Retry. | ### `Submodule` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `flatPath` | [`String!`](#string) | Flat path of the entry. | -| `id` | [`ID!`](#id) | ID of the entry. | -| `name` | [`String!`](#string) | Name of the entry. | -| `path` | [`String!`](#string) | Path of the entry. | -| `sha` | [`String!`](#string) | Last commit SHA for the entry. | -| `treeUrl` | [`String`](#string) | Tree URL for the sub-module. | -| `type` | [`EntryType!`](#entrytype) | Type of tree entry. | -| `webUrl` | [`String`](#string) | Web URL for the sub-module. | +#### Fields -### `SubmoduleConnection` - -The connection type for Submodule. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[SubmoduleEdge]`](#submoduleedge) | A list of edges. | -| `nodes` | [`[Submodule]`](#submodule) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `SubmoduleEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`Submodule`](#submodule) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `flatPath` | [`String!`](#string) | Flat path of the entry. | +| `id` | [`ID!`](#id) | ID of the entry. | +| `name` | [`String!`](#string) | Name of the entry. | +| `path` | [`String!`](#string) | Path of the entry. | +| `sha` | [`String!`](#string) | Last commit SHA for the entry. | +| `treeUrl` | [`String`](#string) | Tree URL for the sub-module. | +| `type` | [`EntryType!`](#entrytype) | Type of tree entry. | +| `webUrl` | [`String`](#string) | Web URL for the sub-module. | ### `TaskCompletionStatus` Completion status of tasks. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `completedCount` | [`Int!`](#int) | Number of completed tasks. | -| `count` | [`Int!`](#int) | Number of total tasks. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `completedCount` | [`Int!`](#int) | Number of completed tasks. | +| `count` | [`Int!`](#int) | Number of total tasks. | ### `TerraformState` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `createdAt` | [`Time!`](#time) | Timestamp the Terraform state was created. | -| `id` | [`ID!`](#id) | ID of the Terraform state. | -| `latestVersion` | [`TerraformStateVersion`](#terraformstateversion) | The latest version of the Terraform state. | -| `lockedAt` | [`Time`](#time) | Timestamp the Terraform state was locked. | -| `lockedByUser` | [`User`](#user) | The user currently holding a lock on the Terraform state. | -| `name` | [`String!`](#string) | Name of the Terraform state. | -| `updatedAt` | [`Time!`](#time) | Timestamp the Terraform state was updated. | +#### Fields -### `TerraformStateConnection` - -The connection type for TerraformState. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `count` | [`Int!`](#int) | Total count of collection. | -| `edges` | [`[TerraformStateEdge]`](#terraformstateedge) | A list of edges. | -| `nodes` | [`[TerraformState]`](#terraformstate) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `TerraformStateDeletePayload` - -Autogenerated return type of TerraformStateDelete. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `TerraformStateEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`TerraformState`](#terraformstate) | The item at the end of the edge. | - -### `TerraformStateLockPayload` - -Autogenerated return type of TerraformStateLock. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `TerraformStateUnlockPayload` - -Autogenerated return type of TerraformStateUnlock. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `createdAt` | [`Time!`](#time) | Timestamp the Terraform state was created. | +| `id` | [`ID!`](#id) | ID of the Terraform state. | +| `latestVersion` | [`TerraformStateVersion`](#terraformstateversion) | The latest version of the Terraform state. | +| `lockedAt` | [`Time`](#time) | Timestamp the Terraform state was locked. | +| `lockedByUser` | [`User`](#user) | The user currently holding a lock on the Terraform state. | +| `name` | [`String!`](#string) | Name of the Terraform state. | +| `updatedAt` | [`Time!`](#time) | Timestamp the Terraform state was updated. | ### `TerraformStateVersion` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `createdAt` | [`Time!`](#time) | Timestamp the version was created. | -| `createdByUser` | [`User`](#user) | The user that created this version. | -| `downloadPath` | [`String`](#string) | URL for downloading the version's JSON file. | -| `id` | [`ID!`](#id) | ID of the Terraform state version. | -| `job` | [`CiJob`](#cijob) | The job that created this version. | -| `serial` | [`Int`](#int) | Serial number of the version. | -| `updatedAt` | [`Time!`](#time) | Timestamp the version was updated. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `createdAt` | [`Time!`](#time) | Timestamp the version was created. | +| `createdByUser` | [`User`](#user) | The user that created this version. | +| `downloadPath` | [`String`](#string) | URL for downloading the version's JSON file. | +| `id` | [`ID!`](#id) | ID of the Terraform state version. | +| `job` | [`CiJob`](#cijob) | The job that created this version. | +| `serial` | [`Int`](#int) | Serial number of the version. | +| `updatedAt` | [`Time!`](#time) | Timestamp the version was updated. | ### `TerraformStateVersionRegistry` Represents the Geo sync and verification state of a terraform state version. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `createdAt` | [`Time`](#time) | Timestamp when the TerraformStateVersionRegistry was created. | -| `id` | [`ID!`](#id) | ID of the TerraformStateVersionRegistry. | -| `lastSyncFailure` | [`String`](#string) | Error message during sync of the TerraformStateVersionRegistry. | -| `lastSyncedAt` | [`Time`](#time) | Timestamp of the most recent successful sync of the TerraformStateVersionRegistry. | -| `retryAt` | [`Time`](#time) | Timestamp after which the TerraformStateVersionRegistry should be resynced. | -| `retryCount` | [`Int`](#int) | Number of consecutive failed sync attempts of the TerraformStateVersionRegistry. | -| `state` | [`RegistryState`](#registrystate) | Sync state of the TerraformStateVersionRegistry. | -| `terraformStateVersionId` | [`ID!`](#id) | ID of the terraform state version. | +#### Fields -### `TerraformStateVersionRegistryConnection` - -The connection type for TerraformStateVersionRegistry. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[TerraformStateVersionRegistryEdge]`](#terraformstateversionregistryedge) | A list of edges. | -| `nodes` | [`[TerraformStateVersionRegistry]`](#terraformstateversionregistry) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `TerraformStateVersionRegistryEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`TerraformStateVersionRegistry`](#terraformstateversionregistry) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `createdAt` | [`Time`](#time) | Timestamp when the TerraformStateVersionRegistry was created. | +| `id` | [`ID!`](#id) | ID of the TerraformStateVersionRegistry. | +| `lastSyncFailure` | [`String`](#string) | Error message during sync of the TerraformStateVersionRegistry. | +| `lastSyncedAt` | [`Time`](#time) | Timestamp of the most recent successful sync of the TerraformStateVersionRegistry. | +| `retryAt` | [`Time`](#time) | Timestamp after which the TerraformStateVersionRegistry should be resynced. | +| `retryCount` | [`Int`](#int) | Number of consecutive failed sync attempts of the TerraformStateVersionRegistry. | +| `state` | [`RegistryState`](#registrystate) | Sync state of the TerraformStateVersionRegistry. | +| `terraformStateVersionId` | [`ID!`](#id) | ID of the terraform state version. | ### `TestCase` Test case in pipeline test report. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `attachmentUrl` | [`String`](#string) | URL of the test case attachment file. | -| `classname` | [`String`](#string) | Classname of the test case. | -| `executionTime` | [`Float`](#float) | Test case execution time in seconds. | -| `file` | [`String`](#string) | Path to the file of the test case. | -| `name` | [`String`](#string) | Name of the test case. | -| `recentFailures` | [`RecentFailures`](#recentfailures) | Recent failure history of the test case on the base branch. | -| `stackTrace` | [`String`](#string) | Stack trace of the test case. | -| `status` | [`TestCaseStatus`](#testcasestatus) | Status of the test case (error, failed, success, skipped). | -| `systemOutput` | [`String`](#string) | System output of the test case. | +#### Fields -### `TestCaseConnection` - -The connection type for TestCase. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `count` | [`Int!`](#int) | Total count of collection. | -| `edges` | [`[TestCaseEdge]`](#testcaseedge) | A list of edges. | -| `nodes` | [`[TestCase]`](#testcase) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `TestCaseEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`TestCase`](#testcase) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `attachmentUrl` | [`String`](#string) | URL of the test case attachment file. | +| `classname` | [`String`](#string) | Classname of the test case. | +| `executionTime` | [`Float`](#float) | Test case execution time in seconds. | +| `file` | [`String`](#string) | Path to the file of the test case. | +| `name` | [`String`](#string) | Name of the test case. | +| `recentFailures` | [`RecentFailures`](#recentfailures) | Recent failure history of the test case on the base branch. | +| `stackTrace` | [`String`](#string) | Stack trace of the test case. | +| `status` | [`TestCaseStatus`](#testcasestatus) | Status of the test case (error, failed, success, skipped). | +| `systemOutput` | [`String`](#string) | System output of the test case. | ### `TestReport` Represents a requirement test report. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `author` | [`User`](#user) | Author of the test report. | -| `createdAt` | [`Time!`](#time) | Timestamp of when the test report was created. | -| `id` | [`ID!`](#id) | ID of the test report. | -| `state` | [`TestReportState!`](#testreportstate) | State of the test report. | +#### Fields -### `TestReportConnection` - -The connection type for TestReport. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[TestReportEdge]`](#testreportedge) | A list of edges. | -| `nodes` | [`[TestReport]`](#testreport) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `TestReportEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`TestReport`](#testreport) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `author` | [`User`](#user) | Author of the test report. | +| `createdAt` | [`Time!`](#time) | Timestamp of when the test report was created. | +| `id` | [`ID!`](#id) | ID of the test report. | +| `state` | [`TestReportState!`](#testreportstate) | State of the test report. | ### `TestReportSummary` Test report for a pipeline. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `testSuites` | [`TestSuiteSummaryConnection!`](#testsuitesummaryconnection) | Test suites belonging to a pipeline test report. | -| `total` | [`TestReportTotal!`](#testreporttotal) | Total report statistics for a pipeline test report. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `testSuites` | [`TestSuiteSummaryConnection!`](#testsuitesummaryconnection) | Test suites belonging to a pipeline test report. | +| `total` | [`TestReportTotal!`](#testreporttotal) | Total report statistics for a pipeline test report. | ### `TestReportTotal` Total test report statistics. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `count` | [`Int`](#int) | Total number of the test cases. | -| `error` | [`Int`](#int) | Total number of test cases that had an error. | -| `failed` | [`Int`](#int) | Total number of test cases that failed. | -| `skipped` | [`Int`](#int) | Total number of test cases that were skipped. | -| `success` | [`Int`](#int) | Total number of test cases that succeeded. | -| `suiteError` | [`String`](#string) | Test suite error message. | -| `time` | [`Float`](#float) | Total duration of the tests. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `count` | [`Int`](#int) | Total number of the test cases. | +| `error` | [`Int`](#int) | Total number of test cases that had an error. | +| `failed` | [`Int`](#int) | Total number of test cases that failed. | +| `skipped` | [`Int`](#int) | Total number of test cases that were skipped. | +| `success` | [`Int`](#int) | Total number of test cases that succeeded. | +| `suiteError` | [`String`](#string) | Test suite error message. | +| `time` | [`Float`](#float) | Total duration of the tests. | ### `TestSuite` Test suite in a pipeline test report. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `errorCount` | [`Int`](#int) | Total number of test cases that had an error. | -| `failedCount` | [`Int`](#int) | Total number of test cases that failed in the test suite. | -| `name` | [`String`](#string) | Name of the test suite. | -| `skippedCount` | [`Int`](#int) | Total number of test cases that were skipped in the test suite. | -| `successCount` | [`Int`](#int) | Total number of test cases that succeeded in the test suite. | -| `suiteError` | [`String`](#string) | Test suite error message. | -| `testCases` | [`TestCaseConnection`](#testcaseconnection) | Test cases in the test suite. | -| `totalCount` | [`Int`](#int) | Total number of the test cases in the test suite. | -| `totalTime` | [`Float`](#float) | Total duration of the tests in the test suite. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `errorCount` | [`Int`](#int) | Total number of test cases that had an error. | +| `failedCount` | [`Int`](#int) | Total number of test cases that failed in the test suite. | +| `name` | [`String`](#string) | Name of the test suite. | +| `skippedCount` | [`Int`](#int) | Total number of test cases that were skipped in the test suite. | +| `successCount` | [`Int`](#int) | Total number of test cases that succeeded in the test suite. | +| `suiteError` | [`String`](#string) | Test suite error message. | +| `testCases` | [`TestCaseConnection`](#testcaseconnection) | Test cases in the test suite. | +| `totalCount` | [`Int`](#int) | Total number of the test cases in the test suite. | +| `totalTime` | [`Float`](#float) | Total duration of the tests in the test suite. | ### `TestSuiteSummary` Test suite summary in a pipeline test report. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `buildIds` | [`[ID!]`](#id) | IDs of the builds used to run the test suite. | -| `errorCount` | [`Int`](#int) | Total number of test cases that had an error. | -| `failedCount` | [`Int`](#int) | Total number of test cases that failed in the test suite. | -| `name` | [`String`](#string) | Name of the test suite. | -| `skippedCount` | [`Int`](#int) | Total number of test cases that were skipped in the test suite. | -| `successCount` | [`Int`](#int) | Total number of test cases that succeeded in the test suite. | -| `suiteError` | [`String`](#string) | Test suite error message. | -| `totalCount` | [`Int`](#int) | Total number of the test cases in the test suite. | -| `totalTime` | [`Float`](#float) | Total duration of the tests in the test suite. | +#### Fields -### `TestSuiteSummaryConnection` - -The connection type for TestSuiteSummary. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `count` | [`Int!`](#int) | Total count of collection. | -| `edges` | [`[TestSuiteSummaryEdge]`](#testsuitesummaryedge) | A list of edges. | -| `nodes` | [`[TestSuiteSummary]`](#testsuitesummary) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `TestSuiteSummaryEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`TestSuiteSummary`](#testsuitesummary) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `buildIds` | [`[ID!]`](#id) | IDs of the builds used to run the test suite. | +| `errorCount` | [`Int`](#int) | Total number of test cases that had an error. | +| `failedCount` | [`Int`](#int) | Total number of test cases that failed in the test suite. | +| `name` | [`String`](#string) | Name of the test suite. | +| `skippedCount` | [`Int`](#int) | Total number of test cases that were skipped in the test suite. | +| `successCount` | [`Int`](#int) | Total number of test cases that succeeded in the test suite. | +| `suiteError` | [`String`](#string) | Test suite error message. | +| `totalCount` | [`Int`](#int) | Total number of the test cases in the test suite. | +| `totalTime` | [`Float`](#float) | Total duration of the tests in the test suite. | ### `TimeReportStats` Represents the time report stats for timeboxes. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `complete` | [`TimeboxMetrics`](#timeboxmetrics) | Completed issues metrics. | -| `incomplete` | [`TimeboxMetrics`](#timeboxmetrics) | Incomplete issues metrics. | -| `total` | [`TimeboxMetrics`](#timeboxmetrics) | Total issues metrics. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `complete` | [`TimeboxMetrics`](#timeboxmetrics) | Completed issues metrics. | +| `incomplete` | [`TimeboxMetrics`](#timeboxmetrics) | Incomplete issues metrics. | +| `total` | [`TimeboxMetrics`](#timeboxmetrics) | Total issues metrics. | ### `TimeboxMetrics` Represents measured stats metrics for timeboxes. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `count` | [`Int!`](#int) | The count metric. | -| `weight` | [`Int!`](#int) | The weight metric. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `count` | [`Int!`](#int) | The count metric. | +| `weight` | [`Int!`](#int) | The weight metric. | ### `TimeboxReport` Represents a historically accurate report about the timebox. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `burnupTimeSeries` | [`[BurnupChartDailyTotals!]`](#burnupchartdailytotals) | Daily scope and completed totals for burnup charts. | -| `stats` | [`TimeReportStats`](#timereportstats) | Represents the time report stats for the timebox. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `burnupTimeSeries` | [`[BurnupChartDailyTotals!]`](#burnupchartdailytotals) | Daily scope and completed totals for burnup charts. | +| `stats` | [`TimeReportStats`](#timereportstats) | Represents the time report stats for the timebox. | ### `Timelog` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `issue` | [`Issue`](#issue) | The issue that logged time was added to. | -| `note` | [`Note`](#note) | The note where the quick action to add the logged time was executed. | -| `spentAt` | [`Time`](#time) | Timestamp of when the time tracked was spent at. | -| `timeSpent` | [`Int!`](#int) | The time spent displayed in seconds. | -| `user` | [`User!`](#user) | The user that logged the time. | +#### Fields -### `TimelogConnection` - -The connection type for Timelog. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[TimelogEdge]`](#timelogedge) | A list of edges. | -| `nodes` | [`[Timelog]`](#timelog) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `TimelogEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`Timelog`](#timelog) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `issue` | [`Issue`](#issue) | The issue that logged time was added to. | +| `note` | [`Note`](#note) | The note where the quick action to add the logged time was executed. | +| `spentAt` | [`Time`](#time) | Timestamp of when the time tracked was spent at. | +| `timeSpent` | [`Int!`](#int) | The time spent displayed in seconds. | +| `user` | [`User!`](#user) | The user that logged the time. | ### `Todo` Representing a to-do entry. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `action` | [`TodoActionEnum!`](#todoactionenum) | Action of the to-do item. | -| `author` | [`User!`](#user) | The author of this to-do item. | -| `body` | [`String!`](#string) | Body of the to-do item. | -| `createdAt` | [`Time!`](#time) | Timestamp this to-do item was created. | -| `group` | [`Group`](#group) | Group this to-do item is associated with. | -| `id` | [`ID!`](#id) | ID of the to-do item. | -| `project` | [`Project`](#project) | The project this to-do item is associated with. | -| `state` | [`TodoStateEnum!`](#todostateenum) | State of the to-do item. | -| `targetType` | [`TodoTargetEnum!`](#todotargetenum) | Target type of the to-do item. | +#### Fields -### `TodoConnection` - -The connection type for Todo. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[TodoEdge]`](#todoedge) | A list of edges. | -| `nodes` | [`[Todo]`](#todo) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `TodoCreatePayload` - -Autogenerated return type of TodoCreate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `todo` | [`Todo`](#todo) | The to-do item created. | - -### `TodoEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`Todo`](#todo) | The item at the end of the edge. | - -### `TodoMarkDonePayload` - -Autogenerated return type of TodoMarkDone. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `todo` | [`Todo!`](#todo) | The requested to-do item. | - -### `TodoRestoreManyPayload` - -Autogenerated return type of TodoRestoreMany. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `todos` | [`[Todo!]!`](#todo) | Updated to-do items. | -| `updatedIds` **{warning-solid}** | [`[TodoID!]!`](#todoid) | **Deprecated** in 13.2. Use to-do items. | - -### `TodoRestorePayload` - -Autogenerated return type of TodoRestore. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `todo` | [`Todo!`](#todo) | The requested to-do item. | - -### `TodosMarkAllDonePayload` - -Autogenerated return type of TodosMarkAllDone. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `todos` | [`[Todo!]!`](#todo) | Updated to-do items. | -| `updatedIds` **{warning-solid}** | [`[TodoID!]!`](#todoid) | **Deprecated** in 13.2. Use to-do items. | - -### `ToggleAwardEmojiPayload` - -Autogenerated return type of ToggleAwardEmoji. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `awardEmoji` | [`AwardEmoji`](#awardemoji) | The award emoji after mutation. | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `toggledOn` | [`Boolean!`](#boolean) | Indicates the status of the emoji. True if the toggle awarded the emoji, and false if the toggle removed the emoji. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `action` | [`TodoActionEnum!`](#todoactionenum) | Action of the to-do item. | +| `author` | [`User!`](#user) | The author of this to-do item. | +| `body` | [`String!`](#string) | Body of the to-do item. | +| `createdAt` | [`Time!`](#time) | Timestamp this to-do item was created. | +| `group` | [`Group`](#group) | Group this to-do item is associated with. | +| `id` | [`ID!`](#id) | ID of the to-do item. | +| `project` | [`Project`](#project) | The project this to-do item is associated with. | +| `state` | [`TodoStateEnum!`](#todostateenum) | State of the to-do item. | +| `targetType` | [`TodoTargetEnum!`](#todotargetenum) | Target type of the to-do item. | ### `Tree` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `blobs` | [`BlobConnection!`](#blobconnection) | Blobs of the tree. | -| `lastCommit` | [`Commit`](#commit) | Last commit for the tree. | -| `submodules` | [`SubmoduleConnection!`](#submoduleconnection) | Sub-modules of the tree. | -| `trees` | [`TreeEntryConnection!`](#treeentryconnection) | Trees of the tree. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `blobs` | [`BlobConnection!`](#blobconnection) | Blobs of the tree. | +| `lastCommit` | [`Commit`](#commit) | Last commit for the tree. | +| `submodules` | [`SubmoduleConnection!`](#submoduleconnection) | Sub-modules of the tree. | +| `trees` | [`TreeEntryConnection!`](#treeentryconnection) | Trees of the tree. | ### `TreeEntry` Represents a directory. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `flatPath` | [`String!`](#string) | Flat path of the entry. | -| `id` | [`ID!`](#id) | ID of the entry. | -| `name` | [`String!`](#string) | Name of the entry. | -| `path` | [`String!`](#string) | Path of the entry. | -| `sha` | [`String!`](#string) | Last commit SHA for the entry. | -| `type` | [`EntryType!`](#entrytype) | Type of tree entry. | -| `webPath` | [`String`](#string) | Web path for the tree entry (directory). | -| `webUrl` | [`String`](#string) | Web URL for the tree entry (directory). | +#### Fields -### `TreeEntryConnection` - -The connection type for TreeEntry. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[TreeEntryEdge]`](#treeentryedge) | A list of edges. | -| `nodes` | [`[TreeEntry]`](#treeentry) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `TreeEntryEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`TreeEntry`](#treeentry) | The item at the end of the edge. | - -### `UpdateAlertStatusPayload` - -Autogenerated return type of UpdateAlertStatus. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `alert` | [`AlertManagementAlert`](#alertmanagementalert) | The alert after mutation. | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `issue` | [`Issue`](#issue) | The issue created after mutation. | -| `todo` | [`Todo`](#todo) | The to-do item after mutation. | - -### `UpdateBoardEpicUserPreferencesPayload` - -Autogenerated return type of UpdateBoardEpicUserPreferences. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `epicUserPreferences` | [`BoardEpicUserPreferences`](#boardepicuserpreferences) | User preferences for the epic in the board after mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `UpdateBoardListPayload` - -Autogenerated return type of UpdateBoardList. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `list` | [`BoardList`](#boardlist) | Mutated list. | - -### `UpdateBoardPayload` - -Autogenerated return type of UpdateBoard. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `board` | [`Board`](#board) | The board after mutation. | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `UpdateComplianceFrameworkPayload` - -Autogenerated return type of UpdateComplianceFramework. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `complianceFramework` | [`ComplianceFramework`](#complianceframework) | The compliance framework after mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `UpdateContainerExpirationPolicyPayload` - -Autogenerated return type of UpdateContainerExpirationPolicy. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `containerExpirationPolicy` | [`ContainerExpirationPolicy`](#containerexpirationpolicy) | The container expiration policy after mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `UpdateEpicBoardListPayload` - -Autogenerated return type of UpdateEpicBoardList. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `list` | [`EpicList`](#epiclist) | Mutated epic list. | - -### `UpdateEpicPayload` - -Autogenerated return type of UpdateEpic. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `epic` | [`Epic`](#epic) | The epic after mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `UpdateImageDiffNotePayload` - -Autogenerated return type of UpdateImageDiffNote. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `note` | [`Note`](#note) | The note after mutation. | - -### `UpdateIssuePayload` - -Autogenerated return type of UpdateIssue. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `issue` | [`Issue`](#issue) | The issue after mutation. | - -### `UpdateIterationPayload` - -Autogenerated return type of UpdateIteration. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `iteration` | [`Iteration`](#iteration) | Updated iteration. | - -### `UpdateNamespacePackageSettingsPayload` - -Autogenerated return type of UpdateNamespacePackageSettings. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `packageSettings` | [`PackageSettings`](#packagesettings) | The namespace package setting after mutation. | - -### `UpdateNotePayload` - -Autogenerated return type of UpdateNote. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `note` | [`Note`](#note) | The note after mutation. | - -### `UpdateRequirementPayload` - -Autogenerated return type of UpdateRequirement. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `requirement` | [`Requirement`](#requirement) | Requirement after mutation. | - -### `UpdateSnippetPayload` - -Autogenerated return type of UpdateSnippet. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `captchaSiteKey` **{warning-solid}** | [`String`](#string) | **Deprecated** in 13.11. Use spam protection with HTTP headers instead. | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `needsCaptchaResponse` **{warning-solid}** | [`Boolean`](#boolean) | **Deprecated** in 13.11. Use spam protection with HTTP headers instead. | -| `snippet` | [`Snippet`](#snippet) | The snippet after mutation. | -| `spam` **{warning-solid}** | [`Boolean`](#boolean) | **Deprecated** in 13.11. Use spam protection with HTTP headers instead. | -| `spamLogId` **{warning-solid}** | [`Int`](#int) | **Deprecated** in 13.11. Use spam protection with HTTP headers instead. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `flatPath` | [`String!`](#string) | Flat path of the entry. | +| `id` | [`ID!`](#id) | ID of the entry. | +| `name` | [`String!`](#string) | Name of the entry. | +| `path` | [`String!`](#string) | Path of the entry. | +| `sha` | [`String!`](#string) | Last commit SHA for the entry. | +| `type` | [`EntryType!`](#entrytype) | Type of tree entry. | +| `webPath` | [`String`](#string) | Web path for the tree entry (directory). | +| `webUrl` | [`String`](#string) | Web URL for the tree entry (directory). | ### `UsageTrendsMeasurement` Represents a recorded measurement (object count) for the Admins. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `count` | [`Int!`](#int) | Object count. | -| `identifier` | [`MeasurementIdentifier!`](#measurementidentifier) | The type of objects being measured. | -| `recordedAt` | [`Time`](#time) | The time the measurement was recorded. | +#### Fields -### `UsageTrendsMeasurementConnection` - -The connection type for UsageTrendsMeasurement. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[UsageTrendsMeasurementEdge]`](#usagetrendsmeasurementedge) | A list of edges. | -| `nodes` | [`[UsageTrendsMeasurement]`](#usagetrendsmeasurement) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `UsageTrendsMeasurementEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`UsageTrendsMeasurement`](#usagetrendsmeasurement) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `count` | [`Int!`](#int) | Object count. | +| `identifier` | [`MeasurementIdentifier!`](#measurementidentifier) | The type of objects being measured. | +| `recordedAt` | [`Time`](#time) | The time the measurement was recorded. | ### `User` Representation of a GitLab user. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `assignedMergeRequests` | [`MergeRequestConnection`](#mergerequestconnection) | Merge requests assigned to the user. | -| `authoredMergeRequests` | [`MergeRequestConnection`](#mergerequestconnection) | Merge requests authored by the user. | -| `avatarUrl` | [`String`](#string) | URL of the user's avatar. | -| `bot` | [`Boolean!`](#boolean) | Indicates if the user is a bot. | -| `callouts` | [`UserCalloutConnection`](#usercalloutconnection) | User callouts that belong to the user. | -| `email` **{warning-solid}** | [`String`](#string) | **Deprecated** in 13.7. This was renamed. Use: `User.publicEmail`. | -| `groupCount` | [`Int`](#int) | Group count for the user. Available only when feature flag `user_group_counts` is enabled. | -| `groupMemberships` | [`GroupMemberConnection`](#groupmemberconnection) | Group memberships of the user. | -| `id` | [`ID!`](#id) | ID of the user. | -| `location` | [`String`](#string) | The location of the user. | -| `name` | [`String!`](#string) | Human-readable name of the user. | -| `projectMemberships` | [`ProjectMemberConnection`](#projectmemberconnection) | Project memberships of the user. | -| `publicEmail` | [`String`](#string) | User's public email. | -| `reviewRequestedMergeRequests` | [`MergeRequestConnection`](#mergerequestconnection) | Merge requests assigned to the user for review. | -| `snippets` | [`SnippetConnection`](#snippetconnection) | Snippets authored by the user. | -| `starredProjects` | [`ProjectConnection`](#projectconnection) | Projects starred by the user. | -| `state` | [`UserState!`](#userstate) | State of the user. | -| `status` | [`UserStatus`](#userstatus) | User status. | -| `todos` | [`TodoConnection`](#todoconnection) | To-do items of the user. | -| `userPermissions` | [`UserPermissions!`](#userpermissions) | Permissions for the current user on the resource. | -| `username` | [`String!`](#string) | Username of the user. Unique within this instance of GitLab. | -| `webPath` | [`String!`](#string) | Web path of the user. | -| `webUrl` | [`String!`](#string) | Web URL of the user. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `avatarUrl` | [`String`](#string) | URL of the user's avatar. | +| `bot` | [`Boolean!`](#boolean) | Indicates if the user is a bot. | +| `callouts` | [`UserCalloutConnection`](#usercalloutconnection) | User callouts that belong to the user. | +| `email` **{warning-solid}** | [`String`](#string) | **Deprecated** in 13.7. This was renamed. Use: [`User.publicEmail`](#userpublicemail). | +| `groupCount` | [`Int`](#int) | Group count for the user. Available only when feature flag `user_group_counts` is enabled. | +| `groupMemberships` | [`GroupMemberConnection`](#groupmemberconnection) | Group memberships of the user. | +| `id` | [`ID!`](#id) | ID of the user. | +| `location` | [`String`](#string) | The location of the user. | +| `name` | [`String!`](#string) | Human-readable name of the user. | +| `projectMemberships` | [`ProjectMemberConnection`](#projectmemberconnection) | Project memberships of the user. | +| `publicEmail` | [`String`](#string) | User's public email. | +| `state` | [`UserState!`](#userstate) | State of the user. | +| `status` | [`UserStatus`](#userstatus) | User status. | +| `userPermissions` | [`UserPermissions!`](#userpermissions) | Permissions for the current user on the resource. | +| `username` | [`String!`](#string) | Username of the user. Unique within this instance of GitLab. | +| `webPath` | [`String!`](#string) | Web path of the user. | +| `webUrl` | [`String!`](#string) | Web URL of the user. | + +#### Fields with arguments + +##### `User.assignedMergeRequests` + +Merge requests assigned to the user. + +Returns [`MergeRequestConnection`](#mergerequestconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `authorUsername` | [`String`](#string) | Username of the author. | +| `iids` | [`[String!]`](#string) | Array of IIDs of merge requests, for example `[1, 2]`. | +| `labels` | [`[String!]`](#string) | Array of label names. All resolved merge requests will have all of these labels. | +| `mergedAfter` | [`Time`](#time) | Merge requests merged after this date. | +| `mergedBefore` | [`Time`](#time) | Merge requests merged before this date. | +| `milestoneTitle` | [`String`](#string) | Title of the milestone. | +| `not` | [`MergeRequestsResolverNegatedParams`](#mergerequestsresolvernegatedparams) | List of negated arguments. Warning: this argument is experimental and a subject to change in future. | +| `projectId` | [`ProjectID`](#projectid) | The global ID of the project the authored merge requests should be in. Incompatible with projectPath. | +| `projectPath` | [`String`](#string) | The full-path of the project the authored merge requests should be in. Incompatible with projectId. | +| `reviewerUsername` | [`String`](#string) | Username of the reviewer. | +| `sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. | +| `sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. | +| `state` | [`MergeRequestState`](#mergerequeststate) | A merge request state. If provided, all resolved merge requests will have this state. | +| `targetBranches` | [`[String!]`](#string) | Array of target branch names. All resolved merge requests will have one of these branches as their target. | + +##### `User.authoredMergeRequests` + +Merge requests authored by the user. + +Returns [`MergeRequestConnection`](#mergerequestconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `assigneeUsername` | [`String`](#string) | Username of the assignee. | +| `iids` | [`[String!]`](#string) | Array of IIDs of merge requests, for example `[1, 2]`. | +| `labels` | [`[String!]`](#string) | Array of label names. All resolved merge requests will have all of these labels. | +| `mergedAfter` | [`Time`](#time) | Merge requests merged after this date. | +| `mergedBefore` | [`Time`](#time) | Merge requests merged before this date. | +| `milestoneTitle` | [`String`](#string) | Title of the milestone. | +| `not` | [`MergeRequestsResolverNegatedParams`](#mergerequestsresolvernegatedparams) | List of negated arguments. Warning: this argument is experimental and a subject to change in future. | +| `projectId` | [`ProjectID`](#projectid) | The global ID of the project the authored merge requests should be in. Incompatible with projectPath. | +| `projectPath` | [`String`](#string) | The full-path of the project the authored merge requests should be in. Incompatible with projectId. | +| `reviewerUsername` | [`String`](#string) | Username of the reviewer. | +| `sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. | +| `sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. | +| `state` | [`MergeRequestState`](#mergerequeststate) | A merge request state. If provided, all resolved merge requests will have this state. | +| `targetBranches` | [`[String!]`](#string) | Array of target branch names. All resolved merge requests will have one of these branches as their target. | + +##### `User.reviewRequestedMergeRequests` + +Merge requests assigned to the user for review. + +Returns [`MergeRequestConnection`](#mergerequestconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `assigneeUsername` | [`String`](#string) | Username of the assignee. | +| `authorUsername` | [`String`](#string) | Username of the author. | +| `iids` | [`[String!]`](#string) | Array of IIDs of merge requests, for example `[1, 2]`. | +| `labels` | [`[String!]`](#string) | Array of label names. All resolved merge requests will have all of these labels. | +| `mergedAfter` | [`Time`](#time) | Merge requests merged after this date. | +| `mergedBefore` | [`Time`](#time) | Merge requests merged before this date. | +| `milestoneTitle` | [`String`](#string) | Title of the milestone. | +| `not` | [`MergeRequestsResolverNegatedParams`](#mergerequestsresolvernegatedparams) | List of negated arguments. Warning: this argument is experimental and a subject to change in future. | +| `projectId` | [`ProjectID`](#projectid) | The global ID of the project the authored merge requests should be in. Incompatible with projectPath. | +| `projectPath` | [`String`](#string) | The full-path of the project the authored merge requests should be in. Incompatible with projectId. | +| `sort` | [`MergeRequestSort`](#mergerequestsort) | Sort merge requests by this criteria. | +| `sourceBranches` | [`[String!]`](#string) | Array of source branch names. All resolved merge requests will have one of these branches as their source. | +| `state` | [`MergeRequestState`](#mergerequeststate) | A merge request state. If provided, all resolved merge requests will have this state. | +| `targetBranches` | [`[String!]`](#string) | Array of target branch names. All resolved merge requests will have one of these branches as their target. | + +##### `User.snippets` + +Snippets authored by the user. + +Returns [`SnippetConnection`](#snippetconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `ids` | [`[SnippetID!]`](#snippetid) | Array of global snippet IDs. For example, `gid://gitlab/ProjectSnippet/1`. | +| `type` | [`TypeEnum`](#typeenum) | The type of snippet. | +| `visibility` | [`VisibilityScopesEnum`](#visibilityscopesenum) | The visibility of the snippet. | + +##### `User.starredProjects` + +Projects starred by the user. + +Returns [`ProjectConnection`](#projectconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `search` | [`String`](#string) | Search query. | + +##### `User.todos` + +To-do items of the user. + +Returns [`TodoConnection`](#todoconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `action` | [`[TodoActionEnum!]`](#todoactionenum) | The action to be filtered. | +| `authorId` | [`[ID!]`](#id) | The ID of an author. | +| `groupId` | [`[ID!]`](#id) | The ID of a group. | +| `projectId` | [`[ID!]`](#id) | The ID of a project. | +| `state` | [`[TodoStateEnum!]`](#todostateenum) | The state of the todo. | +| `type` | [`[TodoTargetEnum!]`](#todotargetenum) | The type of the todo. | ### `UserCallout` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `dismissedAt` | [`Time`](#time) | Date when the callout was dismissed. | -| `featureName` | [`UserCalloutFeatureNameEnum!`](#usercalloutfeaturenameenum) | Name of the feature that the callout is for. | +#### Fields -### `UserCalloutConnection` - -The connection type for UserCallout. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[UserCalloutEdge]`](#usercalloutedge) | A list of edges. | -| `nodes` | [`[UserCallout]`](#usercallout) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `UserCalloutCreatePayload` - -Autogenerated return type of UserCalloutCreate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `userCallout` | [`UserCallout!`](#usercallout) | The user callout dismissed. | - -### `UserCalloutEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`UserCallout`](#usercallout) | The item at the end of the edge. | - -### `UserConnection` - -The connection type for User. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[UserEdge]`](#useredge) | A list of edges. | -| `nodes` | [`[User]`](#user) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `UserEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`User`](#user) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `dismissedAt` | [`Time`](#time) | Date when the callout was dismissed. | +| `featureName` | [`UserCalloutFeatureNameEnum!`](#usercalloutfeaturenameenum) | Name of the feature that the callout is for. | ### `UserMergeRequestInteraction` @@ -6992,581 +12235,493 @@ Information about a merge request given a specific user. This object has two parts to its state: a `User` and a `MergeRequest`. All fields relate to interactions between the two entities. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `applicableApprovalRules` | [`[ApprovalRule!]`](#approvalrule) | Approval rules that apply to this user for this merge request. | -| `approved` | [`Boolean!`](#boolean) | Whether this user has approved this merge request. | -| `canMerge` | [`Boolean!`](#boolean) | Whether this user can merge this merge request. | -| `canUpdate` | [`Boolean!`](#boolean) | Whether this user can update this merge request. | -| `reviewState` | [`MergeRequestReviewState`](#mergerequestreviewstate) | The state of the review by this user. | -| `reviewed` | [`Boolean!`](#boolean) | Whether this user has provided a review for this merge request. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `applicableApprovalRules` | [`[ApprovalRule!]`](#approvalrule) | Approval rules that apply to this user for this merge request. | +| `approved` | [`Boolean!`](#boolean) | Whether this user has approved this merge request. | +| `canMerge` | [`Boolean!`](#boolean) | Whether this user can merge this merge request. | +| `canUpdate` | [`Boolean!`](#boolean) | Whether this user can update this merge request. | +| `reviewState` | [`MergeRequestReviewState`](#mergerequestreviewstate) | The state of the review by this user. | +| `reviewed` | [`Boolean!`](#boolean) | Whether this user has provided a review for this merge request. | ### `UserPermissions` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `createSnippet` | [`Boolean!`](#boolean) | Indicates the user can perform `create_snippet` on this resource. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `createSnippet` | [`Boolean!`](#boolean) | Indicates the user can perform `create_snippet` on this resource. | ### `UserStatus` -| Field | Type | Description | -| ----- | ---- | ----------- | -| `availability` | [`AvailabilityEnum!`](#availabilityenum) | User availability status. | -| `emoji` | [`String`](#string) | String representation of emoji. | -| `message` | [`String`](#string) | User status message. | -| `messageHtml` | [`String`](#string) | HTML of the user status message. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `availability` | [`AvailabilityEnum!`](#availabilityenum) | User availability status. | +| `emoji` | [`String`](#string) | String representation of emoji. | +| `message` | [`String`](#string) | User status message. | +| `messageHtml` | [`String`](#string) | HTML of the user status message. | ### `VulnerabilitiesCountByDay` Represents the count of vulnerabilities by severity on a particular day. This data is retained for 365 days. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `critical` | [`Int!`](#int) | Total number of vulnerabilities on a particular day with critical severity. | -| `date` | [`ISO8601Date!`](#iso8601date) | Date for the count. | -| `high` | [`Int!`](#int) | Total number of vulnerabilities on a particular day with high severity. | -| `info` | [`Int!`](#int) | Total number of vulnerabilities on a particular day with info severity. | -| `low` | [`Int!`](#int) | Total number of vulnerabilities on a particular day with low severity. | -| `medium` | [`Int!`](#int) | Total number of vulnerabilities on a particular day with medium severity. | -| `total` | [`Int!`](#int) | Total number of vulnerabilities on a particular day. | -| `unknown` | [`Int!`](#int) | Total number of vulnerabilities on a particular day with unknown severity. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `critical` | [`Int!`](#int) | Total number of vulnerabilities on a particular day with critical severity. | +| `date` | [`ISO8601Date!`](#iso8601date) | Date for the count. | +| `high` | [`Int!`](#int) | Total number of vulnerabilities on a particular day with high severity. | +| `info` | [`Int!`](#int) | Total number of vulnerabilities on a particular day with info severity. | +| `low` | [`Int!`](#int) | Total number of vulnerabilities on a particular day with low severity. | +| `medium` | [`Int!`](#int) | Total number of vulnerabilities on a particular day with medium severity. | +| `total` | [`Int!`](#int) | Total number of vulnerabilities on a particular day. | +| `unknown` | [`Int!`](#int) | Total number of vulnerabilities on a particular day with unknown severity. | ### `VulnerabilitiesCountByDayAndSeverity` Represents the number of vulnerabilities for a particular severity on a particular day. This data is retained for 365 days. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `count` | [`Int`](#int) | Number of vulnerabilities. | -| `day` | [`ISO8601Date`](#iso8601date) | Date for the count. | -| `severity` | [`VulnerabilitySeverity`](#vulnerabilityseverity) | Severity of the counted vulnerabilities. | +#### Fields -### `VulnerabilitiesCountByDayAndSeverityConnection` - -The connection type for VulnerabilitiesCountByDayAndSeverity. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[VulnerabilitiesCountByDayAndSeverityEdge]`](#vulnerabilitiescountbydayandseverityedge) | A list of edges. | -| `nodes` | [`[VulnerabilitiesCountByDayAndSeverity]`](#vulnerabilitiescountbydayandseverity) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `VulnerabilitiesCountByDayAndSeverityEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`VulnerabilitiesCountByDayAndSeverity`](#vulnerabilitiescountbydayandseverity) | The item at the end of the edge. | - -### `VulnerabilitiesCountByDayConnection` - -The connection type for VulnerabilitiesCountByDay. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[VulnerabilitiesCountByDayEdge]`](#vulnerabilitiescountbydayedge) | A list of edges. | -| `nodes` | [`[VulnerabilitiesCountByDay]`](#vulnerabilitiescountbyday) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `VulnerabilitiesCountByDayEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`VulnerabilitiesCountByDay`](#vulnerabilitiescountbyday) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `count` | [`Int`](#int) | Number of vulnerabilities. | +| `day` | [`ISO8601Date`](#iso8601date) | Date for the count. | +| `severity` | [`VulnerabilitySeverity`](#vulnerabilityseverity) | Severity of the counted vulnerabilities. | ### `Vulnerability` Represents a vulnerability. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `confirmedAt` | [`Time`](#time) | Timestamp of when the vulnerability state was changed to confirmed. | -| `confirmedBy` | [`User`](#user) | The user that confirmed the vulnerability. | -| `description` | [`String`](#string) | Description of the vulnerability. | -| `details` | [`[VulnerabilityDetail!]!`](#vulnerabilitydetail) | Details of the vulnerability. | -| `detectedAt` | [`Time!`](#time) | Timestamp of when the vulnerability was first detected. | -| `discussions` | [`DiscussionConnection!`](#discussionconnection) | All discussions on this noteable. | -| `dismissedAt` | [`Time`](#time) | Timestamp of when the vulnerability state was changed to dismissed. | -| `dismissedBy` | [`User`](#user) | The user that dismissed the vulnerability. | -| `externalIssueLinks` | [`VulnerabilityExternalIssueLinkConnection!`](#vulnerabilityexternalissuelinkconnection) | List of external issue links related to the vulnerability. | -| `hasSolutions` | [`Boolean`](#boolean) | Indicates whether there is a solution available for this vulnerability. | -| `id` | [`ID!`](#id) | GraphQL ID of the vulnerability. | -| `identifiers` | [`[VulnerabilityIdentifier!]!`](#vulnerabilityidentifier) | Identifiers of the vulnerability. | -| `issueLinks` | [`VulnerabilityIssueLinkConnection!`](#vulnerabilityissuelinkconnection) | List of issue links related to the vulnerability. | -| `location` | [`VulnerabilityLocation`](#vulnerabilitylocation) | Location metadata for the vulnerability. Its fields depend on the type of security scan that found the vulnerability. | -| `mergeRequest` | [`MergeRequest`](#mergerequest) | Merge request that fixes the vulnerability. | -| `notes` | [`NoteConnection!`](#noteconnection) | All notes on this noteable. | -| `primaryIdentifier` | [`VulnerabilityIdentifier`](#vulnerabilityidentifier) | Primary identifier of the vulnerability. | -| `project` | [`Project`](#project) | The project on which the vulnerability was found. | -| `reportType` | [`VulnerabilityReportType`](#vulnerabilityreporttype) | Type of the security report that found the vulnerability (SAST, DEPENDENCY_SCANNING, CONTAINER_SCANNING, DAST, SECRET_DETECTION, COVERAGE_FUZZING, API_FUZZING). `Scan Type` in the UI. | -| `resolvedAt` | [`Time`](#time) | Timestamp of when the vulnerability state was changed to resolved. | -| `resolvedBy` | [`User`](#user) | The user that resolved the vulnerability. | -| `resolvedOnDefaultBranch` | [`Boolean!`](#boolean) | Indicates whether the vulnerability is fixed on the default branch or not. | -| `scanner` | [`VulnerabilityScanner`](#vulnerabilityscanner) | Scanner metadata for the vulnerability. | -| `severity` | [`VulnerabilitySeverity`](#vulnerabilityseverity) | Severity of the vulnerability (INFO, UNKNOWN, LOW, MEDIUM, HIGH, CRITICAL). | -| `state` | [`VulnerabilityState`](#vulnerabilitystate) | State of the vulnerability (DETECTED, CONFIRMED, RESOLVED, DISMISSED). | -| `title` | [`String`](#string) | Title of the vulnerability. | -| `userNotesCount` | [`Int!`](#int) | Number of user notes attached to the vulnerability. | -| `userPermissions` | [`VulnerabilityPermissions!`](#vulnerabilitypermissions) | Permissions for the current user on the resource. | -| `vulnerabilityPath` | [`String`](#string) | URL to the vulnerability's details page. | +#### Fields -### `VulnerabilityConfirmPayload` +| Name | Type | Description | +| ---- | ---- | ----------- | +| `confirmedAt` | [`Time`](#time) | Timestamp of when the vulnerability state was changed to confirmed. | +| `confirmedBy` | [`User`](#user) | The user that confirmed the vulnerability. | +| `description` | [`String`](#string) | Description of the vulnerability. | +| `details` | [`[VulnerabilityDetail!]!`](#vulnerabilitydetail) | Details of the vulnerability. | +| `detectedAt` | [`Time!`](#time) | Timestamp of when the vulnerability was first detected. | +| `discussions` | [`DiscussionConnection!`](#discussionconnection) | All discussions on this noteable. | +| `dismissedAt` | [`Time`](#time) | Timestamp of when the vulnerability state was changed to dismissed. | +| `dismissedBy` | [`User`](#user) | The user that dismissed the vulnerability. | +| `externalIssueLinks` | [`VulnerabilityExternalIssueLinkConnection!`](#vulnerabilityexternalissuelinkconnection) | List of external issue links related to the vulnerability. | +| `hasSolutions` | [`Boolean`](#boolean) | Indicates whether there is a solution available for this vulnerability. | +| `id` | [`ID!`](#id) | GraphQL ID of the vulnerability. | +| `identifiers` | [`[VulnerabilityIdentifier!]!`](#vulnerabilityidentifier) | Identifiers of the vulnerability. | +| `location` | [`VulnerabilityLocation`](#vulnerabilitylocation) | Location metadata for the vulnerability. Its fields depend on the type of security scan that found the vulnerability. | +| `mergeRequest` | [`MergeRequest`](#mergerequest) | Merge request that fixes the vulnerability. | +| `notes` | [`NoteConnection!`](#noteconnection) | All notes on this noteable. | +| `primaryIdentifier` | [`VulnerabilityIdentifier`](#vulnerabilityidentifier) | Primary identifier of the vulnerability. | +| `project` | [`Project`](#project) | The project on which the vulnerability was found. | +| `reportType` | [`VulnerabilityReportType`](#vulnerabilityreporttype) | Type of the security report that found the vulnerability (SAST, DEPENDENCY_SCANNING, CONTAINER_SCANNING, DAST, SECRET_DETECTION, COVERAGE_FUZZING, API_FUZZING). `Scan Type` in the UI. | +| `resolvedAt` | [`Time`](#time) | Timestamp of when the vulnerability state was changed to resolved. | +| `resolvedBy` | [`User`](#user) | The user that resolved the vulnerability. | +| `resolvedOnDefaultBranch` | [`Boolean!`](#boolean) | Indicates whether the vulnerability is fixed on the default branch or not. | +| `scanner` | [`VulnerabilityScanner`](#vulnerabilityscanner) | Scanner metadata for the vulnerability. | +| `severity` | [`VulnerabilitySeverity`](#vulnerabilityseverity) | Severity of the vulnerability (INFO, UNKNOWN, LOW, MEDIUM, HIGH, CRITICAL). | +| `state` | [`VulnerabilityState`](#vulnerabilitystate) | State of the vulnerability (DETECTED, CONFIRMED, RESOLVED, DISMISSED). | +| `title` | [`String`](#string) | Title of the vulnerability. | +| `userNotesCount` | [`Int!`](#int) | Number of user notes attached to the vulnerability. | +| `userPermissions` | [`VulnerabilityPermissions!`](#vulnerabilitypermissions) | Permissions for the current user on the resource. | +| `vulnerabilityPath` | [`String`](#string) | URL to the vulnerability's details page. | -Autogenerated return type of VulnerabilityConfirm. +#### Fields with arguments -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `vulnerability` | [`Vulnerability`](#vulnerability) | The vulnerability after state change. | +##### `Vulnerability.issueLinks` -### `VulnerabilityConnection` +List of issue links related to the vulnerability. -The connection type for Vulnerability. +Returns [`VulnerabilityIssueLinkConnection!`](#vulnerabilityissuelinkconnection). -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[VulnerabilityEdge]`](#vulnerabilityedge) | A list of edges. | -| `nodes` | [`[Vulnerability]`](#vulnerability) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +###### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `linkType` | [`VulnerabilityIssueLinkType`](#vulnerabilityissuelinktype) | Filter issue links by link type. | ### `VulnerabilityDetailBase` Represents the vulnerability details base. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `description` | [`String`](#string) | Description of the field. | -| `fieldName` | [`String`](#string) | Name of the field. | -| `name` | [`String`](#string) | Name of the field. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `description` | [`String`](#string) | Description of the field. | +| `fieldName` | [`String`](#string) | Name of the field. | +| `name` | [`String`](#string) | Name of the field. | ### `VulnerabilityDetailBoolean` Represents the vulnerability details boolean value. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `description` | [`String`](#string) | Description of the field. | -| `fieldName` | [`String`](#string) | Name of the field. | -| `name` | [`String`](#string) | Name of the field. | -| `value` | [`Boolean!`](#boolean) | Value of the field. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `description` | [`String`](#string) | Description of the field. | +| `fieldName` | [`String`](#string) | Name of the field. | +| `name` | [`String`](#string) | Name of the field. | +| `value` | [`Boolean!`](#boolean) | Value of the field. | ### `VulnerabilityDetailCode` Represents the vulnerability details code field. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `description` | [`String`](#string) | Description of the field. | -| `fieldName` | [`String`](#string) | Name of the field. | -| `lang` | [`String`](#string) | Language of the code. | -| `name` | [`String`](#string) | Name of the field. | -| `value` | [`String!`](#string) | Source code. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `description` | [`String`](#string) | Description of the field. | +| `fieldName` | [`String`](#string) | Name of the field. | +| `lang` | [`String`](#string) | Language of the code. | +| `name` | [`String`](#string) | Name of the field. | +| `value` | [`String!`](#string) | Source code. | ### `VulnerabilityDetailCommit` Represents the vulnerability details commit field. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `description` | [`String`](#string) | Description of the field. | -| `fieldName` | [`String`](#string) | Name of the field. | -| `name` | [`String`](#string) | Name of the field. | -| `value` | [`String!`](#string) | The commit SHA value. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `description` | [`String`](#string) | Description of the field. | +| `fieldName` | [`String`](#string) | Name of the field. | +| `name` | [`String`](#string) | Name of the field. | +| `value` | [`String!`](#string) | The commit SHA value. | ### `VulnerabilityDetailDiff` Represents the vulnerability details diff field. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `after` | [`String!`](#string) | Value of the field after the change. | -| `before` | [`String!`](#string) | Value of the field before the change. | -| `description` | [`String`](#string) | Description of the field. | -| `fieldName` | [`String`](#string) | Name of the field. | -| `name` | [`String`](#string) | Name of the field. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `after` | [`String!`](#string) | Value of the field after the change. | +| `before` | [`String!`](#string) | Value of the field before the change. | +| `description` | [`String`](#string) | Description of the field. | +| `fieldName` | [`String`](#string) | Name of the field. | +| `name` | [`String`](#string) | Name of the field. | ### `VulnerabilityDetailFileLocation` Represents the vulnerability details location within a file in the project. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `description` | [`String`](#string) | Description of the field. | -| `fieldName` | [`String`](#string) | Name of the field. | -| `fileName` | [`String!`](#string) | File name. | -| `lineEnd` | [`Int!`](#int) | End line number of the file location. | -| `lineStart` | [`Int!`](#int) | Start line number of the file location. | -| `name` | [`String`](#string) | Name of the field. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `description` | [`String`](#string) | Description of the field. | +| `fieldName` | [`String`](#string) | Name of the field. | +| `fileName` | [`String!`](#string) | File name. | +| `lineEnd` | [`Int!`](#int) | End line number of the file location. | +| `lineStart` | [`Int!`](#int) | Start line number of the file location. | +| `name` | [`String`](#string) | Name of the field. | ### `VulnerabilityDetailInt` Represents the vulnerability details integer value. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `description` | [`String`](#string) | Description of the field. | -| `fieldName` | [`String`](#string) | Name of the field. | -| `name` | [`String`](#string) | Name of the field. | -| `value` | [`Int!`](#int) | Value of the field. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `description` | [`String`](#string) | Description of the field. | +| `fieldName` | [`String`](#string) | Name of the field. | +| `name` | [`String`](#string) | Name of the field. | +| `value` | [`Int!`](#int) | Value of the field. | ### `VulnerabilityDetailList` Represents the vulnerability details list value. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `description` | [`String`](#string) | Description of the field. | -| `fieldName` | [`String`](#string) | Name of the field. | -| `items` | [`[VulnerabilityDetail!]!`](#vulnerabilitydetail) | List of details. | -| `name` | [`String`](#string) | Name of the field. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `description` | [`String`](#string) | Description of the field. | +| `fieldName` | [`String`](#string) | Name of the field. | +| `items` | [`[VulnerabilityDetail!]!`](#vulnerabilitydetail) | List of details. | +| `name` | [`String`](#string) | Name of the field. | ### `VulnerabilityDetailMarkdown` Represents the vulnerability details Markdown field. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `description` | [`String`](#string) | Description of the field. | -| `fieldName` | [`String`](#string) | Name of the field. | -| `name` | [`String`](#string) | Name of the field. | -| `value` | [`String!`](#string) | Value of the Markdown field. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `description` | [`String`](#string) | Description of the field. | +| `fieldName` | [`String`](#string) | Name of the field. | +| `name` | [`String`](#string) | Name of the field. | +| `value` | [`String!`](#string) | Value of the Markdown field. | ### `VulnerabilityDetailModuleLocation` Represents the vulnerability details location within a file in the project. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `description` | [`String`](#string) | Description of the field. | -| `fieldName` | [`String`](#string) | Name of the field. | -| `moduleName` | [`String!`](#string) | Module name. | -| `name` | [`String`](#string) | Name of the field. | -| `offset` | [`Int!`](#int) | Offset of the module location. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `description` | [`String`](#string) | Description of the field. | +| `fieldName` | [`String`](#string) | Name of the field. | +| `moduleName` | [`String!`](#string) | Module name. | +| `name` | [`String`](#string) | Name of the field. | +| `offset` | [`Int!`](#int) | Offset of the module location. | ### `VulnerabilityDetailTable` Represents the vulnerability details table value. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `description` | [`String`](#string) | Description of the field. | -| `fieldName` | [`String`](#string) | Name of the field. | -| `headers` | [`[VulnerabilityDetail!]!`](#vulnerabilitydetail) | Table headers. | -| `name` | [`String`](#string) | Name of the field. | -| `rows` | [`[VulnerabilityDetail!]!`](#vulnerabilitydetail) | Table rows. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `description` | [`String`](#string) | Description of the field. | +| `fieldName` | [`String`](#string) | Name of the field. | +| `headers` | [`[VulnerabilityDetail!]!`](#vulnerabilitydetail) | Table headers. | +| `name` | [`String`](#string) | Name of the field. | +| `rows` | [`[VulnerabilityDetail!]!`](#vulnerabilitydetail) | Table rows. | ### `VulnerabilityDetailText` Represents the vulnerability details text field. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `description` | [`String`](#string) | Description of the field. | -| `fieldName` | [`String`](#string) | Name of the field. | -| `name` | [`String`](#string) | Name of the field. | -| `value` | [`String!`](#string) | Value of the text field. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `description` | [`String`](#string) | Description of the field. | +| `fieldName` | [`String`](#string) | Name of the field. | +| `name` | [`String`](#string) | Name of the field. | +| `value` | [`String!`](#string) | Value of the text field. | ### `VulnerabilityDetailUrl` Represents the vulnerability details URL field. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `description` | [`String`](#string) | Description of the field. | -| `fieldName` | [`String`](#string) | Name of the field. | -| `href` | [`String!`](#string) | Href of the URL. | -| `name` | [`String`](#string) | Name of the field. | -| `text` | [`String`](#string) | Text of the URL. | +#### Fields -### `VulnerabilityDismissPayload` - -Autogenerated return type of VulnerabilityDismiss. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `vulnerability` | [`Vulnerability`](#vulnerability) | The vulnerability after dismissal. | - -### `VulnerabilityEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`Vulnerability`](#vulnerability) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `description` | [`String`](#string) | Description of the field. | +| `fieldName` | [`String`](#string) | Name of the field. | +| `href` | [`String!`](#string) | Href of the URL. | +| `name` | [`String`](#string) | Name of the field. | +| `text` | [`String`](#string) | Text of the URL. | ### `VulnerabilityExternalIssueLink` Represents an external issue link of a vulnerability. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `externalIssue` | [`ExternalIssue`](#externalissue) | The external issue attached to the issue link. | -| `id` | [`VulnerabilitiesExternalIssueLinkID!`](#vulnerabilitiesexternalissuelinkid) | GraphQL ID of the external issue link. | -| `linkType` | [`VulnerabilityExternalIssueLinkType!`](#vulnerabilityexternalissuelinktype) | Type of the external issue link. | +#### Fields -### `VulnerabilityExternalIssueLinkConnection` - -The connection type for VulnerabilityExternalIssueLink. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[VulnerabilityExternalIssueLinkEdge]`](#vulnerabilityexternalissuelinkedge) | A list of edges. | -| `nodes` | [`[VulnerabilityExternalIssueLink]`](#vulnerabilityexternalissuelink) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `VulnerabilityExternalIssueLinkCreatePayload` - -Autogenerated return type of VulnerabilityExternalIssueLinkCreate. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `externalIssueLink` | [`VulnerabilityExternalIssueLink`](#vulnerabilityexternalissuelink) | The created external issue link. | - -### `VulnerabilityExternalIssueLinkDestroyPayload` - -Autogenerated return type of VulnerabilityExternalIssueLinkDestroy. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | - -### `VulnerabilityExternalIssueLinkEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`VulnerabilityExternalIssueLink`](#vulnerabilityexternalissuelink) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `externalIssue` | [`ExternalIssue`](#externalissue) | The external issue attached to the issue link. | +| `id` | [`VulnerabilitiesExternalIssueLinkID!`](#vulnerabilitiesexternalissuelinkid) | GraphQL ID of the external issue link. | +| `linkType` | [`VulnerabilityExternalIssueLinkType!`](#vulnerabilityexternalissuelinktype) | Type of the external issue link. | ### `VulnerabilityIdentifier` Represents a vulnerability identifier. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `externalId` | [`String`](#string) | External ID of the vulnerability identifier. | -| `externalType` | [`String`](#string) | External type of the vulnerability identifier. | -| `name` | [`String`](#string) | Name of the vulnerability identifier. | -| `url` | [`String`](#string) | URL of the vulnerability identifier. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `externalId` | [`String`](#string) | External ID of the vulnerability identifier. | +| `externalType` | [`String`](#string) | External type of the vulnerability identifier. | +| `name` | [`String`](#string) | Name of the vulnerability identifier. | +| `url` | [`String`](#string) | URL of the vulnerability identifier. | ### `VulnerabilityIssueLink` Represents an issue link of a vulnerability. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `id` | [`ID!`](#id) | GraphQL ID of the vulnerability. | -| `issue` | [`Issue!`](#issue) | The issue attached to issue link. | -| `linkType` | [`VulnerabilityIssueLinkType!`](#vulnerabilityissuelinktype) | Type of the issue link. | +#### Fields -### `VulnerabilityIssueLinkConnection` - -The connection type for VulnerabilityIssueLink. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[VulnerabilityIssueLinkEdge]`](#vulnerabilityissuelinkedge) | A list of edges. | -| `nodes` | [`[VulnerabilityIssueLink]`](#vulnerabilityissuelink) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `VulnerabilityIssueLinkEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`VulnerabilityIssueLink`](#vulnerabilityissuelink) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `id` | [`ID!`](#id) | GraphQL ID of the vulnerability. | +| `issue` | [`Issue!`](#issue) | The issue attached to issue link. | +| `linkType` | [`VulnerabilityIssueLinkType!`](#vulnerabilityissuelinktype) | Type of the issue link. | ### `VulnerabilityLocationContainerScanning` Represents the location of a vulnerability found by a container security scan. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `dependency` | [`VulnerableDependency`](#vulnerabledependency) | Dependency containing the vulnerability. | -| `image` | [`String`](#string) | Name of the vulnerable container image. | -| `operatingSystem` | [`String`](#string) | Operating system that runs on the vulnerable container image. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `dependency` | [`VulnerableDependency`](#vulnerabledependency) | Dependency containing the vulnerability. | +| `image` | [`String`](#string) | Name of the vulnerable container image. | +| `operatingSystem` | [`String`](#string) | Operating system that runs on the vulnerable container image. | ### `VulnerabilityLocationCoverageFuzzing` Represents the location of a vulnerability found by a Coverage Fuzzing scan. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `blobPath` | [`String`](#string) | Blob path to the vulnerable file. | -| `endLine` | [`String`](#string) | Number of the last relevant line in the vulnerable file. | -| `file` | [`String`](#string) | Path to the vulnerable file. | -| `startLine` | [`String`](#string) | Number of the first relevant line in the vulnerable file. | -| `vulnerableClass` | [`String`](#string) | Class containing the vulnerability. | -| `vulnerableMethod` | [`String`](#string) | Method containing the vulnerability. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `blobPath` | [`String`](#string) | Blob path to the vulnerable file. | +| `endLine` | [`String`](#string) | Number of the last relevant line in the vulnerable file. | +| `file` | [`String`](#string) | Path to the vulnerable file. | +| `startLine` | [`String`](#string) | Number of the first relevant line in the vulnerable file. | +| `vulnerableClass` | [`String`](#string) | Class containing the vulnerability. | +| `vulnerableMethod` | [`String`](#string) | Method containing the vulnerability. | ### `VulnerabilityLocationDast` Represents the location of a vulnerability found by a DAST scan. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `hostname` | [`String`](#string) | Domain name of the vulnerable request. | -| `param` | [`String`](#string) | Query parameter for the URL on which the vulnerability occurred. | -| `path` | [`String`](#string) | URL path and query string of the vulnerable request. | -| `requestMethod` | [`String`](#string) | HTTP method of the vulnerable request. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `hostname` | [`String`](#string) | Domain name of the vulnerable request. | +| `param` | [`String`](#string) | Query parameter for the URL on which the vulnerability occurred. | +| `path` | [`String`](#string) | URL path and query string of the vulnerable request. | +| `requestMethod` | [`String`](#string) | HTTP method of the vulnerable request. | ### `VulnerabilityLocationDependencyScanning` Represents the location of a vulnerability found by a dependency security scan. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `blobPath` | [`String`](#string) | Blob path to the vulnerable file. | -| `dependency` | [`VulnerableDependency`](#vulnerabledependency) | Dependency containing the vulnerability. | -| `file` | [`String`](#string) | Path to the vulnerable file. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `blobPath` | [`String`](#string) | Blob path to the vulnerable file. | +| `dependency` | [`VulnerableDependency`](#vulnerabledependency) | Dependency containing the vulnerability. | +| `file` | [`String`](#string) | Path to the vulnerable file. | ### `VulnerabilityLocationSast` Represents the location of a vulnerability found by a SAST scan. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `blobPath` | [`String`](#string) | Blob path to the vulnerable file. | -| `endLine` | [`String`](#string) | Number of the last relevant line in the vulnerable file. | -| `file` | [`String`](#string) | Path to the vulnerable file. | -| `startLine` | [`String`](#string) | Number of the first relevant line in the vulnerable file. | -| `vulnerableClass` | [`String`](#string) | Class containing the vulnerability. | -| `vulnerableMethod` | [`String`](#string) | Method containing the vulnerability. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `blobPath` | [`String`](#string) | Blob path to the vulnerable file. | +| `endLine` | [`String`](#string) | Number of the last relevant line in the vulnerable file. | +| `file` | [`String`](#string) | Path to the vulnerable file. | +| `startLine` | [`String`](#string) | Number of the first relevant line in the vulnerable file. | +| `vulnerableClass` | [`String`](#string) | Class containing the vulnerability. | +| `vulnerableMethod` | [`String`](#string) | Method containing the vulnerability. | ### `VulnerabilityLocationSecretDetection` Represents the location of a vulnerability found by a secret detection scan. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `blobPath` | [`String`](#string) | Blob path to the vulnerable file. | -| `endLine` | [`String`](#string) | Number of the last relevant line in the vulnerable file. | -| `file` | [`String`](#string) | Path to the vulnerable file. | -| `startLine` | [`String`](#string) | Number of the first relevant line in the vulnerable file. | -| `vulnerableClass` | [`String`](#string) | Class containing the vulnerability. | -| `vulnerableMethod` | [`String`](#string) | Method containing the vulnerability. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `blobPath` | [`String`](#string) | Blob path to the vulnerable file. | +| `endLine` | [`String`](#string) | Number of the last relevant line in the vulnerable file. | +| `file` | [`String`](#string) | Path to the vulnerable file. | +| `startLine` | [`String`](#string) | Number of the first relevant line in the vulnerable file. | +| `vulnerableClass` | [`String`](#string) | Class containing the vulnerability. | +| `vulnerableMethod` | [`String`](#string) | Method containing the vulnerability. | ### `VulnerabilityPermissions` Check permissions for the current user on a vulnerability. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `adminVulnerability` | [`Boolean!`](#boolean) | Indicates the user can perform `admin_vulnerability` on this resource. | -| `adminVulnerabilityExternalIssueLink` | [`Boolean!`](#boolean) | Indicates the user can perform `admin_vulnerability_external_issue_link` on this resource. | -| `adminVulnerabilityIssueLink` | [`Boolean!`](#boolean) | Indicates the user can perform `admin_vulnerability_issue_link` on this resource. | -| `createVulnerability` | [`Boolean!`](#boolean) | Indicates the user can perform `create_vulnerability` on this resource. | -| `createVulnerabilityExport` | [`Boolean!`](#boolean) | Indicates the user can perform `create_vulnerability_export` on this resource. | -| `createVulnerabilityFeedback` | [`Boolean!`](#boolean) | Indicates the user can perform `create_vulnerability_feedback` on this resource. | -| `destroyVulnerabilityFeedback` | [`Boolean!`](#boolean) | Indicates the user can perform `destroy_vulnerability_feedback` on this resource. | -| `readVulnerabilityFeedback` | [`Boolean!`](#boolean) | Indicates the user can perform `read_vulnerability_feedback` on this resource. | -| `updateVulnerabilityFeedback` | [`Boolean!`](#boolean) | Indicates the user can perform `update_vulnerability_feedback` on this resource. | +#### Fields -### `VulnerabilityResolvePayload` - -Autogenerated return type of VulnerabilityResolve. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `vulnerability` | [`Vulnerability`](#vulnerability) | The vulnerability after state change. | - -### `VulnerabilityRevertToDetectedPayload` - -Autogenerated return type of VulnerabilityRevertToDetected. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | -| `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | -| `vulnerability` | [`Vulnerability`](#vulnerability) | The vulnerability after revert. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `adminVulnerability` | [`Boolean!`](#boolean) | Indicates the user can perform `admin_vulnerability` on this resource. | +| `adminVulnerabilityExternalIssueLink` | [`Boolean!`](#boolean) | Indicates the user can perform `admin_vulnerability_external_issue_link` on this resource. | +| `adminVulnerabilityIssueLink` | [`Boolean!`](#boolean) | Indicates the user can perform `admin_vulnerability_issue_link` on this resource. | +| `createVulnerability` | [`Boolean!`](#boolean) | Indicates the user can perform `create_vulnerability` on this resource. | +| `createVulnerabilityExport` | [`Boolean!`](#boolean) | Indicates the user can perform `create_vulnerability_export` on this resource. | +| `createVulnerabilityFeedback` | [`Boolean!`](#boolean) | Indicates the user can perform `create_vulnerability_feedback` on this resource. | +| `destroyVulnerabilityFeedback` | [`Boolean!`](#boolean) | Indicates the user can perform `destroy_vulnerability_feedback` on this resource. | +| `readVulnerabilityFeedback` | [`Boolean!`](#boolean) | Indicates the user can perform `read_vulnerability_feedback` on this resource. | +| `updateVulnerabilityFeedback` | [`Boolean!`](#boolean) | Indicates the user can perform `update_vulnerability_feedback` on this resource. | ### `VulnerabilityScanner` Represents a vulnerability scanner. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `externalId` | [`String`](#string) | External ID of the vulnerability scanner. | -| `id` | [`ID`](#id) | ID of the scanner. | -| `name` | [`String`](#string) | Name of the vulnerability scanner. | -| `reportType` | [`VulnerabilityReportType`](#vulnerabilityreporttype) | Type of the vulnerability report. | -| `vendor` | [`String`](#string) | Vendor of the vulnerability scanner. | +#### Fields -### `VulnerabilityScannerConnection` - -The connection type for VulnerabilityScanner. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `edges` | [`[VulnerabilityScannerEdge]`](#vulnerabilityscanneredge) | A list of edges. | -| `nodes` | [`[VulnerabilityScanner]`](#vulnerabilityscanner) | A list of nodes. | -| `pageInfo` | [`PageInfo!`](#pageinfo) | Information to aid in pagination. | - -### `VulnerabilityScannerEdge` - -An edge in a connection. - -| Field | Type | Description | -| ----- | ---- | ----------- | -| `cursor` | [`String!`](#string) | A cursor for use in pagination. | -| `node` | [`VulnerabilityScanner`](#vulnerabilityscanner) | The item at the end of the edge. | +| Name | Type | Description | +| ---- | ---- | ----------- | +| `externalId` | [`String`](#string) | External ID of the vulnerability scanner. | +| `id` | [`ID`](#id) | ID of the scanner. | +| `name` | [`String`](#string) | Name of the vulnerability scanner. | +| `reportType` | [`VulnerabilityReportType`](#vulnerabilityreporttype) | Type of the vulnerability report. | +| `vendor` | [`String`](#string) | Vendor of the vulnerability scanner. | ### `VulnerabilitySeveritiesCount` Represents vulnerability counts by severity. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `critical` | [`Int`](#int) | Number of vulnerabilities of CRITICAL severity of the project. | -| `high` | [`Int`](#int) | Number of vulnerabilities of HIGH severity of the project. | -| `info` | [`Int`](#int) | Number of vulnerabilities of INFO severity of the project. | -| `low` | [`Int`](#int) | Number of vulnerabilities of LOW severity of the project. | -| `medium` | [`Int`](#int) | Number of vulnerabilities of MEDIUM severity of the project. | -| `unknown` | [`Int`](#int) | Number of vulnerabilities of UNKNOWN severity of the project. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `critical` | [`Int`](#int) | Number of vulnerabilities of CRITICAL severity of the project. | +| `high` | [`Int`](#int) | Number of vulnerabilities of HIGH severity of the project. | +| `info` | [`Int`](#int) | Number of vulnerabilities of INFO severity of the project. | +| `low` | [`Int`](#int) | Number of vulnerabilities of LOW severity of the project. | +| `medium` | [`Int`](#int) | Number of vulnerabilities of MEDIUM severity of the project. | +| `unknown` | [`Int`](#int) | Number of vulnerabilities of UNKNOWN severity of the project. | ### `VulnerableDependency` Represents a vulnerable dependency. Used in vulnerability location data. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `package` | [`VulnerablePackage`](#vulnerablepackage) | The package associated with the vulnerable dependency. | -| `version` | [`String`](#string) | The version of the vulnerable dependency. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `package` | [`VulnerablePackage`](#vulnerablepackage) | The package associated with the vulnerable dependency. | +| `version` | [`String`](#string) | The version of the vulnerable dependency. | ### `VulnerablePackage` Represents a vulnerable package. Used in vulnerability dependency data. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `name` | [`String`](#string) | The name of the vulnerable package. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `name` | [`String`](#string) | The name of the vulnerable package. | ### `VulnerableProjectsByGrade` Represents vulnerability letter grades with associated projects. -| Field | Type | Description | -| ----- | ---- | ----------- | -| `count` | [`Int!`](#int) | Number of projects within this grade. | -| `grade` | [`VulnerabilityGrade!`](#vulnerabilitygrade) | Grade based on the highest severity vulnerability present. | -| `projects` | [`ProjectConnection!`](#projectconnection) | Projects within this grade. | +#### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `count` | [`Int!`](#int) | Number of projects within this grade. | +| `grade` | [`VulnerabilityGrade!`](#vulnerabilitygrade) | Grade based on the highest severity vulnerability present. | +| `projects` | [`ProjectConnection!`](#projectconnection) | Projects within this grade. | ## Enumeration types @@ -7583,13 +12738,13 @@ Access level to a resource. | Value | Description | | ----- | ----------- | -| `DEVELOPER` | Developer access. | -| `GUEST` | Guest access. | -| `MAINTAINER` | Maintainer access. | -| `MINIMAL_ACCESS` | Minimal access. | -| `NO_ACCESS` | No access. | -| `OWNER` | Owner access. | -| `REPORTER` | Reporter access. | +| `DEVELOPER` | Developer access. | +| `GUEST` | Guest access. | +| `MAINTAINER` | Maintainer access. | +| `MINIMAL_ACCESS` | Minimal access. | +| `NO_ACCESS` | No access. | +| `OWNER` | Owner access. | +| `REPORTER` | Reporter access. | ### `AlertManagementAlertSort` @@ -7597,28 +12752,28 @@ Values for sorting alerts. | Value | Description | | ----- | ----------- | -| `CREATED_ASC` | Created at ascending order. | -| `CREATED_DESC` | Created at descending order. | -| `CREATED_TIME_ASC` | Created time by ascending order. | -| `CREATED_TIME_DESC` | Created time by descending order. | -| `ENDED_AT_ASC` | End time by ascending order. | -| `ENDED_AT_DESC` | End time by descending order. | -| `EVENT_COUNT_ASC` | Events count by ascending order. | -| `EVENT_COUNT_DESC` | Events count by descending order. | -| `SEVERITY_ASC` | Severity from less critical to more critical. | -| `SEVERITY_DESC` | Severity from more critical to less critical. | -| `STARTED_AT_ASC` | Start time by ascending order. | -| `STARTED_AT_DESC` | Start time by descending order. | -| `STATUS_ASC` | Status by order: Ignored > Resolved > Acknowledged > Triggered. | -| `STATUS_DESC` | Status by order: Triggered > Acknowledged > Resolved > Ignored. | -| `UPDATED_ASC` | Updated at ascending order. | -| `UPDATED_DESC` | Updated at descending order. | -| `UPDATED_TIME_ASC` | Created time by ascending order. | -| `UPDATED_TIME_DESC` | Created time by descending order. | -| `created_asc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `CREATED_ASC`. Deprecated in 13.5. | -| `created_desc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5. | -| `updated_asc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5. | -| `updated_desc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5. | +| `CREATED_ASC` | Created at ascending order. | +| `CREATED_DESC` | Created at descending order. | +| `CREATED_TIME_ASC` | Created time by ascending order. | +| `CREATED_TIME_DESC` | Created time by descending order. | +| `ENDED_AT_ASC` | End time by ascending order. | +| `ENDED_AT_DESC` | End time by descending order. | +| `EVENT_COUNT_ASC` | Events count by ascending order. | +| `EVENT_COUNT_DESC` | Events count by descending order. | +| `SEVERITY_ASC` | Severity from less critical to more critical. | +| `SEVERITY_DESC` | Severity from more critical to less critical. | +| `STARTED_AT_ASC` | Start time by ascending order. | +| `STARTED_AT_DESC` | Start time by descending order. | +| `STATUS_ASC` | Status by order: Ignored > Resolved > Acknowledged > Triggered. | +| `STATUS_DESC` | Status by order: Triggered > Acknowledged > Resolved > Ignored. | +| `UPDATED_ASC` | Updated at ascending order. | +| `UPDATED_DESC` | Updated at descending order. | +| `UPDATED_TIME_ASC` | Created time by ascending order. | +| `UPDATED_TIME_DESC` | Created time by descending order. | +| `created_asc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `CREATED_ASC`. Deprecated in 13.5. | +| `created_desc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5. | +| `updated_asc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5. | +| `updated_desc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5. | ### `AlertManagementDomainFilter` @@ -7626,8 +12781,8 @@ Filters the alerts based on given domain. | Value | Description | | ----- | ----------- | -| `operations` | Alerts for operations domain. | -| `threat_monitoring` | Alerts for threat monitoring domain. | +| `operations` | Alerts for operations domain. | +| `threat_monitoring` | Alerts for threat monitoring domain. | ### `AlertManagementIntegrationType` @@ -7635,8 +12790,8 @@ Values of types of integrations. | Value | Description | | ----- | ----------- | -| `HTTP` | Integration with any monitoring tool. | -| `PROMETHEUS` | Prometheus integration. | +| `HTTP` | Integration with any monitoring tool. | +| `PROMETHEUS` | Prometheus integration. | ### `AlertManagementPayloadAlertFieldName` @@ -7644,16 +12799,16 @@ Values for alert field names used in the custom mapping. | Value | Description | | ----- | ----------- | -| `DESCRIPTION` | A high-level summary of the problem. | -| `END_TIME` | The resolved time of the incident. | -| `FINGERPRINT` | The unique identifier of the alert. This can be used to group occurrences of the same alert. | -| `GITLAB_ENVIRONMENT_NAME` | The name of the associated GitLab environment. | -| `HOSTS` | One or more hosts, as to where this incident occurred. | -| `MONITORING_TOOL` | The name of the associated monitoring tool. | -| `SERVICE` | The affected service. | -| `SEVERITY` | The severity of the alert. | -| `START_TIME` | The time of the incident. | -| `TITLE` | The title of the incident. | +| `DESCRIPTION` | A high-level summary of the problem. | +| `END_TIME` | The resolved time of the incident. | +| `FINGERPRINT` | The unique identifier of the alert. This can be used to group occurrences of the same alert. | +| `GITLAB_ENVIRONMENT_NAME` | The name of the associated GitLab environment. | +| `HOSTS` | One or more hosts, as to where this incident occurred. | +| `MONITORING_TOOL` | The name of the associated monitoring tool. | +| `SERVICE` | The affected service. | +| `SEVERITY` | The severity of the alert. | +| `START_TIME` | The time of the incident. | +| `TITLE` | The title of the incident. | ### `AlertManagementPayloadAlertFieldType` @@ -7661,9 +12816,9 @@ Values for alert field types used in the custom mapping. | Value | Description | | ----- | ----------- | -| `ARRAY` | Array field type. | -| `DATETIME` | DateTime field type. | -| `STRING` | String field type. | +| `ARRAY` | Array field type. | +| `DATETIME` | DateTime field type. | +| `STRING` | String field type. | ### `AlertManagementSeverity` @@ -7671,12 +12826,12 @@ Alert severity values. | Value | Description | | ----- | ----------- | -| `CRITICAL` | Critical severity. | -| `HIGH` | High severity. | -| `INFO` | Info severity. | -| `LOW` | Low severity. | -| `MEDIUM` | Medium severity. | -| `UNKNOWN` | Unknown severity. | +| `CRITICAL` | Critical severity. | +| `HIGH` | High severity. | +| `INFO` | Info severity. | +| `LOW` | Low severity. | +| `MEDIUM` | Medium severity. | +| `UNKNOWN` | Unknown severity. | ### `AlertManagementStatus` @@ -7684,10 +12839,10 @@ Alert status values. | Value | Description | | ----- | ----------- | -| `ACKNOWLEDGED` | Acknowledged status. | -| `IGNORED` | Ignored status. | -| `RESOLVED` | Resolved status. | -| `TRIGGERED` | Triggered status. | +| `ACKNOWLEDGED` | Acknowledged status. | +| `IGNORED` | Ignored status. | +| `RESOLVED` | Resolved status. | +| `TRIGGERED` | Triggered status. | ### `ApiFuzzingScanMode` @@ -7695,9 +12850,9 @@ All possible ways to specify the API surface for an API fuzzing scan. | Value | Description | | ----- | ----------- | -| `HAR` | The API surface is specified by a HAR file. | -| `OPENAPI` | The API surface is specified by a OPENAPI file. | -| `POSTMAN` | The API surface is specified by a POSTMAN file. | +| `HAR` | The API surface is specified by a HAR file. | +| `OPENAPI` | The API surface is specified by a OPENAPI file. | +| `POSTMAN` | The API surface is specified by a POSTMAN file. | ### `ApprovalRuleType` @@ -7705,10 +12860,10 @@ The kind of an approval rule. | Value | Description | | ----- | ----------- | -| `ANY_APPROVER` | A `any_approver` approval rule. | -| `CODE_OWNER` | A `code_owner` approval rule. | -| `REGULAR` | A `regular` approval rule. | -| `REPORT_APPROVER` | A `report_approver` approval rule. | +| `ANY_APPROVER` | A `any_approver` approval rule. | +| `CODE_OWNER` | A `code_owner` approval rule. | +| `REGULAR` | A `regular` approval rule. | +| `REPORT_APPROVER` | A `report_approver` approval rule. | ### `AssigneeWildcardId` @@ -7716,8 +12871,8 @@ Assignee ID wildcard values. | Value | Description | | ----- | ----------- | -| `ANY` | An assignee is assigned. | -| `NONE` | No assignee is assigned. | +| `ANY` | An assignee is assigned. | +| `NONE` | No assignee is assigned. | ### `AvailabilityEnum` @@ -7725,8 +12880,8 @@ User availability status. | Value | Description | | ----- | ----------- | -| `BUSY` | Busy. | -| `NOT_SET` | Not Set. | +| `BUSY` | Busy. | +| `NOT_SET` | Not Set. | ### `BlobViewersType` @@ -7734,9 +12889,9 @@ Types of blob viewers. | Value | Description | | ----- | ----------- | -| `auxiliary` | Auxiliary blob viewers type. | -| `rich` | Rich blob viewers type. | -| `simple` | Simple blob viewers type. | +| `auxiliary` | Auxiliary blob viewers type. | +| `rich` | Rich blob viewers type. | +| `simple` | Simple blob viewers type. | ### `CiConfigStatus` @@ -7744,24 +12899,24 @@ Values for YAML processor result. | Value | Description | | ----- | ----------- | -| `INVALID` | The configuration file is not valid. | -| `VALID` | The configuration file is valid. | +| `INVALID` | The configuration file is not valid. | +| `VALID` | The configuration file is valid. | ### `CiJobStatus` | Value | Description | | ----- | ----------- | -| `CANCELED` | A job that is canceled. | -| `CREATED` | A job that is created. | -| `FAILED` | A job that is failed. | -| `MANUAL` | A job that is manual. | -| `PENDING` | A job that is pending. | -| `PREPARING` | A job that is preparing. | -| `RUNNING` | A job that is running. | -| `SCHEDULED` | A job that is scheduled. | -| `SKIPPED` | A job that is skipped. | -| `SUCCESS` | A job that is success. | -| `WAITING_FOR_RESOURCE` | A job that is waiting for resource. | +| `CANCELED` | A job that is canceled. | +| `CREATED` | A job that is created. | +| `FAILED` | A job that is failed. | +| `MANUAL` | A job that is manual. | +| `PENDING` | A job that is pending. | +| `PREPARING` | A job that is preparing. | +| `RUNNING` | A job that is running. | +| `SCHEDULED` | A job that is scheduled. | +| `SKIPPED` | A job that is skipped. | +| `SUCCESS` | A job that is success. | +| `WAITING_FOR_RESOURCE` | A job that is waiting for resource. | ### `CommitActionMode` @@ -7769,18 +12924,18 @@ Mode of a commit action. | Value | Description | | ----- | ----------- | -| `CHMOD` | Chmod command. | -| `CREATE` | Create command. | -| `DELETE` | Delete command. | -| `MOVE` | Move command. | -| `UPDATE` | Update command. | +| `CHMOD` | Chmod command. | +| `CREATE` | Create command. | +| `DELETE` | Delete command. | +| `MOVE` | Move command. | +| `UPDATE` | Update command. | ### `CommitEncoding` | Value | Description | | ----- | ----------- | -| `BASE64` | Base64 encoding. | -| `TEXT` | Text encoding. | +| `BASE64` | Base64 encoding. | +| `TEXT` | Text encoding. | ### `ConanMetadatumFileTypeEnum` @@ -7788,38 +12943,38 @@ Conan file types. | Value | Description | | ----- | ----------- | -| `PACKAGE_FILE` | A package file type. | -| `RECIPE_FILE` | A recipe file type. | +| `PACKAGE_FILE` | A package file type. | +| `RECIPE_FILE` | A recipe file type. | ### `ContainerExpirationPolicyCadenceEnum` | Value | Description | | ----- | ----------- | -| `EVERY_DAY` | Every day. | -| `EVERY_MONTH` | Every month. | -| `EVERY_THREE_MONTHS` | Every three months. | -| `EVERY_TWO_WEEKS` | Every two weeks. | -| `EVERY_WEEK` | Every week. | +| `EVERY_DAY` | Every day. | +| `EVERY_MONTH` | Every month. | +| `EVERY_THREE_MONTHS` | Every three months. | +| `EVERY_TWO_WEEKS` | Every two weeks. | +| `EVERY_WEEK` | Every week. | ### `ContainerExpirationPolicyKeepEnum` | Value | Description | | ----- | ----------- | -| `FIFTY_TAGS` | 50 tags per image name. | -| `FIVE_TAGS` | 5 tags per image name. | -| `ONE_HUNDRED_TAGS` | 100 tags per image name. | -| `ONE_TAG` | 1 tag per image name. | -| `TEN_TAGS` | 10 tags per image name. | -| `TWENTY_FIVE_TAGS` | 25 tags per image name. | +| `FIFTY_TAGS` | 50 tags per image name. | +| `FIVE_TAGS` | 5 tags per image name. | +| `ONE_HUNDRED_TAGS` | 100 tags per image name. | +| `ONE_TAG` | 1 tag per image name. | +| `TEN_TAGS` | 10 tags per image name. | +| `TWENTY_FIVE_TAGS` | 25 tags per image name. | ### `ContainerExpirationPolicyOlderThanEnum` | Value | Description | | ----- | ----------- | -| `FOURTEEN_DAYS` | 14 days until tags are automatically removed. | -| `NINETY_DAYS` | 90 days until tags are automatically removed. | -| `SEVEN_DAYS` | 7 days until tags are automatically removed. | -| `THIRTY_DAYS` | 30 days until tags are automatically removed. | +| `FOURTEEN_DAYS` | 14 days until tags are automatically removed. | +| `NINETY_DAYS` | 90 days until tags are automatically removed. | +| `SEVEN_DAYS` | 7 days until tags are automatically removed. | +| `THIRTY_DAYS` | 30 days until tags are automatically removed. | ### `ContainerRepositoryCleanupStatus` @@ -7827,10 +12982,10 @@ Status of the tags cleanup of a container repository. | Value | Description | | ----- | ----------- | -| `ONGOING` | The tags cleanup is ongoing. | -| `SCHEDULED` | The tags cleanup is scheduled and is going to be executed shortly. | -| `UNFINISHED` | The tags cleanup has been partially executed. There are still remaining tags to delete. | -| `UNSCHEDULED` | The tags cleanup is not scheduled. This is the default state. | +| `ONGOING` | The tags cleanup is ongoing. | +| `SCHEDULED` | The tags cleanup is scheduled and is going to be executed shortly. | +| `UNFINISHED` | The tags cleanup has been partially executed. There are still remaining tags to delete. | +| `UNSCHEDULED` | The tags cleanup is not scheduled. This is the default state. | ### `ContainerRepositorySort` @@ -7838,16 +12993,16 @@ Values for sorting container repositories. | Value | Description | | ----- | ----------- | -| `CREATED_ASC` | Created at ascending order. | -| `CREATED_DESC` | Created at descending order. | -| `NAME_ASC` | Name by ascending order. | -| `NAME_DESC` | Name by descending order. | -| `UPDATED_ASC` | Updated at ascending order. | -| `UPDATED_DESC` | Updated at descending order. | -| `created_asc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `CREATED_ASC`. Deprecated in 13.5. | -| `created_desc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5. | -| `updated_asc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5. | -| `updated_desc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5. | +| `CREATED_ASC` | Created at ascending order. | +| `CREATED_DESC` | Created at descending order. | +| `NAME_ASC` | Name by ascending order. | +| `NAME_DESC` | Name by descending order. | +| `UPDATED_ASC` | Updated at ascending order. | +| `UPDATED_DESC` | Updated at descending order. | +| `created_asc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `CREATED_ASC`. Deprecated in 13.5. | +| `created_desc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5. | +| `updated_asc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5. | +| `updated_desc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5. | ### `ContainerRepositoryStatus` @@ -7855,39 +13010,39 @@ Status of a container repository. | Value | Description | | ----- | ----------- | -| `DELETE_FAILED` | Delete Failed status. | -| `DELETE_SCHEDULED` | Delete Scheduled status. | +| `DELETE_FAILED` | Delete Failed status. | +| `DELETE_SCHEDULED` | Delete Scheduled status. | ### `DastScanTypeEnum` | Value | Description | | ----- | ----------- | -| `ACTIVE` | Active DAST scan. This scan will make active attacks against the target site. | -| `PASSIVE` | Passive DAST scan. This scan will not make active attacks against the target site. | +| `ACTIVE` | Active DAST scan. This scan will make active attacks against the target site. | +| `PASSIVE` | Passive DAST scan. This scan will not make active attacks against the target site. | ### `DastSiteProfileValidationStatusEnum` | Value | Description | | ----- | ----------- | -| `FAILED_VALIDATION` | Site validation process finished but failed. | -| `INPROGRESS_VALIDATION` | Site validation process is in progress. | -| `NONE` | No site validation exists. | -| `PASSED_VALIDATION` | Site validation process finished successfully. | -| `PENDING_VALIDATION` | Site validation process has not started. | +| `FAILED_VALIDATION` | Site validation process finished but failed. | +| `INPROGRESS_VALIDATION` | Site validation process is in progress. | +| `NONE` | No site validation exists. | +| `PASSED_VALIDATION` | Site validation process finished successfully. | +| `PENDING_VALIDATION` | Site validation process has not started. | ### `DastSiteValidationStrategyEnum` | Value | Description | | ----- | ----------- | -| `HEADER` | Header validation. | -| `TEXT_FILE` | Text file validation. | +| `HEADER` | Header validation. | +| `TEXT_FILE` | Text file validation. | ### `DastTargetTypeEnum` | Value | Description | | ----- | ----------- | -| `API` | API target. | -| `WEBSITE` | Website target. | +| `API` | API target. | +| `WEBSITE` | Website target. | ### `DataVisualizationColorEnum` @@ -7895,11 +13050,11 @@ Color of the data visualization palette. | Value | Description | | ----- | ----------- | -| `AQUA` | Aqua color. | -| `BLUE` | Blue color. | -| `GREEN` | Green color. | -| `MAGENTA` | Magenta color. | -| `ORANGE` | Orange color. | +| `AQUA` | Aqua color. | +| `BLUE` | Blue color. | +| `GREEN` | Green color. | +| `MAGENTA` | Magenta color. | +| `ORANGE` | Orange color. | ### `DataVisualizationWeightEnum` @@ -7907,17 +13062,17 @@ Weight of the data visualization palette. | Value | Description | | ----- | ----------- | -| `WEIGHT_100` | 100 weight. | -| `WEIGHT_200` | 200 weight. | -| `WEIGHT_300` | 300 weight. | -| `WEIGHT_400` | 400 weight. | -| `WEIGHT_50` | 50 weight. | -| `WEIGHT_500` | 500 weight. | -| `WEIGHT_600` | 600 weight. | -| `WEIGHT_700` | 700 weight. | -| `WEIGHT_800` | 800 weight. | -| `WEIGHT_900` | 900 weight. | -| `WEIGHT_950` | 950 weight. | +| `WEIGHT_100` | 100 weight. | +| `WEIGHT_200` | 200 weight. | +| `WEIGHT_300` | 300 weight. | +| `WEIGHT_400` | 400 weight. | +| `WEIGHT_50` | 50 weight. | +| `WEIGHT_500` | 500 weight. | +| `WEIGHT_600` | 600 weight. | +| `WEIGHT_700` | 700 weight. | +| `WEIGHT_800` | 800 weight. | +| `WEIGHT_900` | 900 weight. | +| `WEIGHT_950` | 950 weight. | ### `DesignCollectionCopyState` @@ -7925,9 +13080,9 @@ Copy state of a DesignCollection. | Value | Description | | ----- | ----------- | -| `ERROR` | The DesignCollection encountered an error during a copy. | -| `IN_PROGRESS` | The DesignCollection is being copied. | -| `READY` | The DesignCollection has no copy in progress. | +| `ERROR` | The DesignCollection encountered an error during a copy. | +| `IN_PROGRESS` | The DesignCollection is being copied. | +| `READY` | The DesignCollection has no copy in progress. | ### `DesignVersionEvent` @@ -7935,10 +13090,10 @@ Mutation event of a design within a version. | Value | Description | | ----- | ----------- | -| `CREATION` | A creation event. | -| `DELETION` | A deletion event. | -| `MODIFICATION` | A modification event. | -| `NONE` | No change. | +| `CREATION` | A creation event. | +| `DELETION` | A deletion event. | +| `MODIFICATION` | A modification event. | +| `NONE` | No change. | ### `DiffPositionType` @@ -7946,8 +13101,8 @@ Type of file the position refers to. | Value | Description | | ----- | ----------- | -| `image` | An image. | -| `text` | A text file. | +| `image` | An image. | +| `text` | A text file. | ### `EntryType` @@ -7955,9 +13110,9 @@ Type of a tree entry. | Value | Description | | ----- | ----------- | -| `blob` | | -| `commit` | | -| `tree` | | +| `blob` | | +| `commit` | | +| `tree` | | ### `EpicSort` @@ -7965,14 +13120,14 @@ Roadmap sort values. | Value | Description | | ----- | ----------- | -| `END_DATE_ASC` | Sort by end date in ascending order. | -| `END_DATE_DESC` | Sort by end date in descending order. | -| `START_DATE_ASC` | Sort by start date in ascending order. | -| `START_DATE_DESC` | Sort by start date in descending order. | -| `end_date_asc` **{warning-solid}** | **Deprecated:** Use END_DATE_ASC. Deprecated in 13.11. | -| `end_date_desc` **{warning-solid}** | **Deprecated:** Use END_DATE_DESC. Deprecated in 13.11. | -| `start_date_asc` **{warning-solid}** | **Deprecated:** Use START_DATE_ASC. Deprecated in 13.11. | -| `start_date_desc` **{warning-solid}** | **Deprecated:** Use START_DATE_DESC. Deprecated in 13.11. | +| `END_DATE_ASC` | Sort by end date in ascending order. | +| `END_DATE_DESC` | Sort by end date in descending order. | +| `START_DATE_ASC` | Sort by start date in ascending order. | +| `START_DATE_DESC` | Sort by start date in descending order. | +| `end_date_asc` **{warning-solid}** | **Deprecated:** Use END_DATE_ASC. Deprecated in 13.11. | +| `end_date_desc` **{warning-solid}** | **Deprecated:** Use END_DATE_DESC. Deprecated in 13.11. | +| `start_date_asc` **{warning-solid}** | **Deprecated:** Use START_DATE_ASC. Deprecated in 13.11. | +| `start_date_desc` **{warning-solid}** | **Deprecated:** Use START_DATE_DESC. Deprecated in 13.11. | ### `EpicState` @@ -7980,9 +13135,9 @@ State of an epic. | Value | Description | | ----- | ----------- | -| `all` | | -| `closed` | | -| `opened` | | +| `all` | | +| `closed` | | +| `opened` | | ### `EpicStateEvent` @@ -7990,8 +13145,8 @@ State event of an epic. | Value | Description | | ----- | ----------- | -| `CLOSE` | Close the epic. | -| `REOPEN` | Reopen the epic. | +| `CLOSE` | Close the epic. | +| `REOPEN` | Reopen the epic. | ### `EpicWildcardId` @@ -7999,8 +13154,8 @@ Epic ID wildcard values. | Value | Description | | ----- | ----------- | -| `ANY` | Any epic is assigned. | -| `NONE` | No epic is assigned. | +| `ANY` | Any epic is assigned. | +| `NONE` | No epic is assigned. | ### `EventAction` @@ -8008,19 +13163,19 @@ Event action. | Value | Description | | ----- | ----------- | -| `APPROVED` | Approved action. | -| `ARCHIVED` | Archived action. | -| `CLOSED` | Closed action. | -| `COMMENTED` | Commented action. | -| `CREATED` | Created action. | -| `DESTROYED` | Destroyed action. | -| `EXPIRED` | Expired action. | -| `JOINED` | Joined action. | -| `LEFT` | Left action. | -| `MERGED` | Merged action. | -| `PUSHED` | Pushed action. | -| `REOPENED` | Reopened action. | -| `UPDATED` | Updated action. | +| `APPROVED` | Approved action. | +| `ARCHIVED` | Archived action. | +| `CLOSED` | Closed action. | +| `COMMENTED` | Commented action. | +| `CREATED` | Created action. | +| `DESTROYED` | Destroyed action. | +| `EXPIRED` | Expired action. | +| `JOINED` | Joined action. | +| `LEFT` | Left action. | +| `MERGED` | Merged action. | +| `PUSHED` | Pushed action. | +| `REOPENED` | Reopened action. | +| `UPDATED` | Updated action. | ### `GroupMemberRelation` @@ -8028,9 +13183,9 @@ Group member relation. | Value | Description | | ----- | ----------- | -| `DESCENDANTS` | Descendants members. | -| `DIRECT` | Direct members. | -| `INHERITED` | Inherited members. | +| `DESCENDANTS` | Descendants members. | +| `DIRECT` | Direct members. | +| `INHERITED` | Inherited members. | ### `HealthStatus` @@ -8038,9 +13193,9 @@ Health status of an issue or epic. | Value | Description | | ----- | ----------- | -| `atRisk` | | -| `needsAttention` | | -| `onTrack` | | +| `atRisk` | | +| `needsAttention` | | +| `onTrack` | | ### `IssuableSeverity` @@ -8048,11 +13203,11 @@ Incident severity. | Value | Description | | ----- | ----------- | -| `CRITICAL` | Critical severity. | -| `HIGH` | High severity. | -| `LOW` | Low severity. | -| `MEDIUM` | Medium severity. | -| `UNKNOWN` | Unknown severity. | +| `CRITICAL` | Critical severity. | +| `HIGH` | High severity. | +| `LOW` | Low severity. | +| `MEDIUM` | Medium severity. | +| `UNKNOWN` | Unknown severity. | ### `IssuableState` @@ -8060,10 +13215,10 @@ State of a GitLab issue or merge request. | Value | Description | | ----- | ----------- | -| `all` | All available. | -| `closed` | In closed state. | -| `locked` | Discussion has been locked. | -| `opened` | In open state. | +| `all` | All available. | +| `closed` | In closed state. | +| `locked` | Discussion has been locked. | +| `opened` | In open state. | ### `IssueSort` @@ -8071,31 +13226,31 @@ Values for sorting issues. | Value | Description | | ----- | ----------- | -| `CREATED_ASC` | Created at ascending order. | -| `CREATED_DESC` | Created at descending order. | -| `DUE_DATE_ASC` | Due date by ascending order. | -| `DUE_DATE_DESC` | Due date by descending order. | -| `LABEL_PRIORITY_ASC` | Label priority by ascending order. | -| `LABEL_PRIORITY_DESC` | Label priority by descending order. | -| `MILESTONE_DUE_ASC` | Milestone due date by ascending order. | -| `MILESTONE_DUE_DESC` | Milestone due date by descending order. | -| `PRIORITY_ASC` | Priority by ascending order. | -| `PRIORITY_DESC` | Priority by descending order. | -| `PUBLISHED_ASC` | Published issues shown last. | -| `PUBLISHED_DESC` | Published issues shown first. | -| `RELATIVE_POSITION_ASC` | Relative position by ascending order. | -| `SEVERITY_ASC` | Severity from less critical to more critical. | -| `SEVERITY_DESC` | Severity from more critical to less critical. | -| `SLA_DUE_AT_ASC` | Issues with earliest SLA due time shown first. | -| `SLA_DUE_AT_DESC` | Issues with latest SLA due time shown first. | -| `UPDATED_ASC` | Updated at ascending order. | -| `UPDATED_DESC` | Updated at descending order. | -| `WEIGHT_ASC` | Weight by ascending order. | -| `WEIGHT_DESC` | Weight by descending order. | -| `created_asc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `CREATED_ASC`. Deprecated in 13.5. | -| `created_desc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5. | -| `updated_asc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5. | -| `updated_desc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5. | +| `CREATED_ASC` | Created at ascending order. | +| `CREATED_DESC` | Created at descending order. | +| `DUE_DATE_ASC` | Due date by ascending order. | +| `DUE_DATE_DESC` | Due date by descending order. | +| `LABEL_PRIORITY_ASC` | Label priority by ascending order. | +| `LABEL_PRIORITY_DESC` | Label priority by descending order. | +| `MILESTONE_DUE_ASC` | Milestone due date by ascending order. | +| `MILESTONE_DUE_DESC` | Milestone due date by descending order. | +| `PRIORITY_ASC` | Priority by ascending order. | +| `PRIORITY_DESC` | Priority by descending order. | +| `PUBLISHED_ASC` | Published issues shown last. | +| `PUBLISHED_DESC` | Published issues shown first. | +| `RELATIVE_POSITION_ASC` | Relative position by ascending order. | +| `SEVERITY_ASC` | Severity from less critical to more critical. | +| `SEVERITY_DESC` | Severity from more critical to less critical. | +| `SLA_DUE_AT_ASC` | Issues with earliest SLA due time shown first. | +| `SLA_DUE_AT_DESC` | Issues with latest SLA due time shown first. | +| `UPDATED_ASC` | Updated at ascending order. | +| `UPDATED_DESC` | Updated at descending order. | +| `WEIGHT_ASC` | Weight by ascending order. | +| `WEIGHT_DESC` | Weight by descending order. | +| `created_asc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `CREATED_ASC`. Deprecated in 13.5. | +| `created_desc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5. | +| `updated_asc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5. | +| `updated_desc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5. | ### `IssueState` @@ -8103,10 +13258,10 @@ State of a GitLab issue. | Value | Description | | ----- | ----------- | -| `all` | All available. | -| `closed` | In closed state. | -| `locked` | Discussion has been locked. | -| `opened` | In open state. | +| `all` | All available. | +| `closed` | In closed state. | +| `locked` | Discussion has been locked. | +| `opened` | In open state. | ### `IssueStateEvent` @@ -8114,8 +13269,8 @@ Values for issue state events. | Value | Description | | ----- | ----------- | -| `CLOSE` | Closes the issue. | -| `REOPEN` | Reopens the issue. | +| `CLOSE` | Closes the issue. | +| `REOPEN` | Reopens the issue. | ### `IssueType` @@ -8123,9 +13278,9 @@ Issue type. | Value | Description | | ----- | ----------- | -| `INCIDENT` | Incident issue type. | -| `ISSUE` | Issue issue type. | -| `TEST_CASE` | Test Case issue type. | +| `INCIDENT` | Incident issue type. | +| `ISSUE` | Issue issue type. | +| `TEST_CASE` | Test Case issue type. | ### `IterationState` @@ -8133,11 +13288,11 @@ State of a GitLab iteration. | Value | Description | | ----- | ----------- | -| `all` | | -| `closed` | | -| `opened` | | -| `started` | | -| `upcoming` | | +| `all` | | +| `closed` | | +| `opened` | | +| `started` | | +| `upcoming` | | ### `IterationWildcardId` @@ -8145,41 +13300,41 @@ Iteration ID wildcard values. | Value | Description | | ----- | ----------- | -| `ANY` | An iteration is assigned. | -| `CURRENT` | Current iteration. | -| `NONE` | No iteration is assigned. | +| `ANY` | An iteration is assigned. | +| `CURRENT` | Current iteration. | +| `NONE` | No iteration is assigned. | ### `JobArtifactFileType` | Value | Description | | ----- | ----------- | -| `ACCESSIBILITY` | ACCESSIBILITY job artifact file type. | -| `API_FUZZING` | API FUZZING job artifact file type. | -| `ARCHIVE` | ARCHIVE job artifact file type. | -| `BROWSER_PERFORMANCE` | BROWSER PERFORMANCE job artifact file type. | -| `CLUSTER_APPLICATIONS` | CLUSTER APPLICATIONS job artifact file type. | -| `COBERTURA` | COBERTURA job artifact file type. | -| `CODEQUALITY` | CODE QUALITY job artifact file type. | -| `CONTAINER_SCANNING` | CONTAINER SCANNING job artifact file type. | -| `COVERAGE_FUZZING` | COVERAGE FUZZING job artifact file type. | -| `DAST` | DAST job artifact file type. | -| `DEPENDENCY_SCANNING` | DEPENDENCY SCANNING job artifact file type. | -| `DOTENV` | DOTENV job artifact file type. | -| `JUNIT` | JUNIT job artifact file type. | -| `LICENSE_MANAGEMENT` | LICENSE MANAGEMENT job artifact file type. | -| `LICENSE_SCANNING` | LICENSE SCANNING job artifact file type. | -| `LOAD_PERFORMANCE` | LOAD PERFORMANCE job artifact file type. | -| `LSIF` | LSIF job artifact file type. | -| `METADATA` | METADATA job artifact file type. | -| `METRICS` | METRICS job artifact file type. | -| `METRICS_REFEREE` | METRICS REFEREE job artifact file type. | -| `NETWORK_REFEREE` | NETWORK REFEREE job artifact file type. | -| `PERFORMANCE` | PERFORMANCE job artifact file type. | -| `REQUIREMENTS` | REQUIREMENTS job artifact file type. | -| `SAST` | SAST job artifact file type. | -| `SECRET_DETECTION` | SECRET DETECTION job artifact file type. | -| `TERRAFORM` | TERRAFORM job artifact file type. | -| `TRACE` | TRACE job artifact file type. | +| `ACCESSIBILITY` | ACCESSIBILITY job artifact file type. | +| `API_FUZZING` | API FUZZING job artifact file type. | +| `ARCHIVE` | ARCHIVE job artifact file type. | +| `BROWSER_PERFORMANCE` | BROWSER PERFORMANCE job artifact file type. | +| `CLUSTER_APPLICATIONS` | CLUSTER APPLICATIONS job artifact file type. | +| `COBERTURA` | COBERTURA job artifact file type. | +| `CODEQUALITY` | CODE QUALITY job artifact file type. | +| `CONTAINER_SCANNING` | CONTAINER SCANNING job artifact file type. | +| `COVERAGE_FUZZING` | COVERAGE FUZZING job artifact file type. | +| `DAST` | DAST job artifact file type. | +| `DEPENDENCY_SCANNING` | DEPENDENCY SCANNING job artifact file type. | +| `DOTENV` | DOTENV job artifact file type. | +| `JUNIT` | JUNIT job artifact file type. | +| `LICENSE_MANAGEMENT` | LICENSE MANAGEMENT job artifact file type. | +| `LICENSE_SCANNING` | LICENSE SCANNING job artifact file type. | +| `LOAD_PERFORMANCE` | LOAD PERFORMANCE job artifact file type. | +| `LSIF` | LSIF job artifact file type. | +| `METADATA` | METADATA job artifact file type. | +| `METRICS` | METRICS job artifact file type. | +| `METRICS_REFEREE` | METRICS REFEREE job artifact file type. | +| `NETWORK_REFEREE` | NETWORK REFEREE job artifact file type. | +| `PERFORMANCE` | PERFORMANCE job artifact file type. | +| `REQUIREMENTS` | REQUIREMENTS job artifact file type. | +| `SAST` | SAST job artifact file type. | +| `SECRET_DETECTION` | SECRET DETECTION job artifact file type. | +| `TERRAFORM` | TERRAFORM job artifact file type. | +| `TRACE` | TRACE job artifact file type. | ### `ListLimitMetric` @@ -8187,9 +13342,9 @@ List limit metric setting. | Value | Description | | ----- | ----------- | -| `all_metrics` | | -| `issue_count` | | -| `issue_weights` | | +| `all_metrics` | | +| `issue_count` | | +| `issue_weights` | | ### `MeasurementIdentifier` @@ -8197,16 +13352,16 @@ Possible identifier types for a measurement. | Value | Description | | ----- | ----------- | -| `GROUPS` | Group count. | -| `ISSUES` | Issue count. | -| `MERGE_REQUESTS` | Merge request count. | -| `PIPELINES` | Pipeline count. | -| `PIPELINES_CANCELED` | Pipeline count with canceled status. | -| `PIPELINES_FAILED` | Pipeline count with failed status. | -| `PIPELINES_SKIPPED` | Pipeline count with skipped status. | -| `PIPELINES_SUCCEEDED` | Pipeline count with success status. | -| `PROJECTS` | Project count. | -| `USERS` | User count. | +| `GROUPS` | Group count. | +| `ISSUES` | Issue count. | +| `MERGE_REQUESTS` | Merge request count. | +| `PIPELINES` | Pipeline count. | +| `PIPELINES_CANCELED` | Pipeline count with canceled status. | +| `PIPELINES_FAILED` | Pipeline count with failed status. | +| `PIPELINES_SKIPPED` | Pipeline count with skipped status. | +| `PIPELINES_SUCCEEDED` | Pipeline count with success status. | +| `PROJECTS` | Project count. | +| `USERS` | User count. | ### `MergeRequestNewState` @@ -8214,8 +13369,8 @@ New state to apply to a merge request. | Value | Description | | ----- | ----------- | -| `CLOSED` | Close the merge request if it is open. | -| `OPEN` | Open the merge request if it is closed. | +| `CLOSED` | Close the merge request if it is open. | +| `OPEN` | Open the merge request if it is closed. | ### `MergeRequestReviewState` @@ -8223,8 +13378,8 @@ State of a review of a GitLab merge request. | Value | Description | | ----- | ----------- | -| `REVIEWED` | The merge request is reviewed. | -| `UNREVIEWED` | The merge request is unreviewed. | +| `REVIEWED` | The merge request is reviewed. | +| `UNREVIEWED` | The merge request is unreviewed. | ### `MergeRequestSort` @@ -8232,22 +13387,22 @@ Values for sorting merge requests. | Value | Description | | ----- | ----------- | -| `CREATED_ASC` | Created at ascending order. | -| `CREATED_DESC` | Created at descending order. | -| `LABEL_PRIORITY_ASC` | Label priority by ascending order. | -| `LABEL_PRIORITY_DESC` | Label priority by descending order. | -| `MERGED_AT_ASC` | Merge time by ascending order. | -| `MERGED_AT_DESC` | Merge time by descending order. | -| `MILESTONE_DUE_ASC` | Milestone due date by ascending order. | -| `MILESTONE_DUE_DESC` | Milestone due date by descending order. | -| `PRIORITY_ASC` | Priority by ascending order. | -| `PRIORITY_DESC` | Priority by descending order. | -| `UPDATED_ASC` | Updated at ascending order. | -| `UPDATED_DESC` | Updated at descending order. | -| `created_asc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `CREATED_ASC`. Deprecated in 13.5. | -| `created_desc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5. | -| `updated_asc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5. | -| `updated_desc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5. | +| `CREATED_ASC` | Created at ascending order. | +| `CREATED_DESC` | Created at descending order. | +| `LABEL_PRIORITY_ASC` | Label priority by ascending order. | +| `LABEL_PRIORITY_DESC` | Label priority by descending order. | +| `MERGED_AT_ASC` | Merge time by ascending order. | +| `MERGED_AT_DESC` | Merge time by descending order. | +| `MILESTONE_DUE_ASC` | Milestone due date by ascending order. | +| `MILESTONE_DUE_DESC` | Milestone due date by descending order. | +| `PRIORITY_ASC` | Priority by ascending order. | +| `PRIORITY_DESC` | Priority by descending order. | +| `UPDATED_ASC` | Updated at ascending order. | +| `UPDATED_DESC` | Updated at descending order. | +| `created_asc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `CREATED_ASC`. Deprecated in 13.5. | +| `created_desc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5. | +| `updated_asc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5. | +| `updated_desc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5. | ### `MergeRequestState` @@ -8255,19 +13410,19 @@ State of a GitLab merge request. | Value | Description | | ----- | ----------- | -| `all` | All available. | -| `closed` | In closed state. | -| `locked` | Discussion has been locked. | -| `merged` | Merge request has been merged. | -| `opened` | In open state. | +| `all` | All available. | +| `closed` | In closed state. | +| `locked` | Discussion has been locked. | +| `merged` | Merge request has been merged. | +| `opened` | In open state. | ### `MergeStrategyEnum` | Value | Description | | ----- | ----------- | -| `ADD_TO_MERGE_TRAIN_WHEN_PIPELINE_SUCCEEDS` | Use the add_to_merge_train_when_pipeline_succeeds merge strategy. | -| `MERGE_TRAIN` | Use the merge_train merge strategy. | -| `MERGE_WHEN_PIPELINE_SUCCEEDS` | Use the merge_when_pipeline_succeeds merge strategy. | +| `ADD_TO_MERGE_TRAIN_WHEN_PIPELINE_SUCCEEDS` | Use the add_to_merge_train_when_pipeline_succeeds merge strategy. | +| `MERGE_TRAIN` | Use the merge_train merge strategy. | +| `MERGE_WHEN_PIPELINE_SUCCEEDS` | Use the merge_when_pipeline_succeeds merge strategy. | ### `MilestoneStateEnum` @@ -8275,8 +13430,8 @@ Current state of milestone. | Value | Description | | ----- | ----------- | -| `active` | Milestone is currently active. | -| `closed` | Milestone is closed. | +| `active` | Milestone is currently active. | +| `closed` | Milestone is closed. | ### `MoveType` @@ -8284,8 +13439,8 @@ The position to which the adjacent object should be moved. | Value | Description | | ----- | ----------- | -| `after` | The adjacent object will be moved after the object that is being moved. | -| `before` | The adjacent object will be moved before the object that is being moved. | +| `after` | The adjacent object will be moved after the object that is being moved. | +| `before` | The adjacent object will be moved before the object that is being moved. | ### `MutationOperationMode` @@ -8293,9 +13448,9 @@ Different toggles for changing mutator behavior. | Value | Description | | ----- | ----------- | -| `APPEND` | Performs an append operation. | -| `REMOVE` | Performs a removal operation. | -| `REPLACE` | Performs a replace operation. | +| `APPEND` | Performs an append operation. | +| `REMOVE` | Performs a removal operation. | +| `REPLACE` | Performs a replace operation. | ### `NamespaceProjectSort` @@ -8303,8 +13458,8 @@ Values for sorting projects. | Value | Description | | ----- | ----------- | -| `SIMILARITY` | Most similar to the search query. | -| `STORAGE` | Sort by storage size. | +| `SIMILARITY` | Most similar to the search query. | +| `STORAGE` | Sort by storage size. | ### `NegatedIterationWildcardId` @@ -8312,7 +13467,7 @@ Negated Iteration ID wildcard values. | Value | Description | | ----- | ----------- | -| `CURRENT` | Current iteration. | +| `CURRENT` | Current iteration. | ### `OncallRotationUnitEnum` @@ -8320,54 +13475,54 @@ Rotation length unit of an on-call rotation. | Value | Description | | ----- | ----------- | -| `DAYS` | Days. | -| `HOURS` | Hours. | -| `WEEKS` | Weeks. | +| `DAYS` | Days. | +| `HOURS` | Hours. | +| `WEEKS` | Weeks. | ### `PackageTypeEnum` | Value | Description | | ----- | ----------- | -| `COMPOSER` | Packages from the Composer package manager. | -| `CONAN` | Packages from the Conan package manager. | -| `DEBIAN` | Packages from the Debian package manager. | -| `GENERIC` | Packages from the Generic package manager. | -| `GOLANG` | Packages from the Golang package manager. | -| `MAVEN` | Packages from the Maven package manager. | -| `NPM` | Packages from the npm package manager. | -| `NUGET` | Packages from the Nuget package manager. | -| `PYPI` | Packages from the PyPI package manager. | -| `RUBYGEMS` | Packages from the Rubygems package manager. | +| `COMPOSER` | Packages from the Composer package manager. | +| `CONAN` | Packages from the Conan package manager. | +| `DEBIAN` | Packages from the Debian package manager. | +| `GENERIC` | Packages from the Generic package manager. | +| `GOLANG` | Packages from the Golang package manager. | +| `MAVEN` | Packages from the Maven package manager. | +| `NPM` | Packages from the npm package manager. | +| `NUGET` | Packages from the Nuget package manager. | +| `PYPI` | Packages from the PyPI package manager. | +| `RUBYGEMS` | Packages from the Rubygems package manager. | ### `PipelineConfigSourceEnum` | Value | Description | | ----- | ----------- | -| `AUTO_DEVOPS_SOURCE` | Auto DevOps source. | -| `BRIDGE_SOURCE` | Bridge source. | -| `COMPLIANCE_SOURCE` | Compliance source. | -| `EXTERNAL_PROJECT_SOURCE` | External project source. | -| `PARAMETER_SOURCE` | Parameter source. | -| `REMOTE_SOURCE` | Remote source. | -| `REPOSITORY_SOURCE` | Repository source. | -| `UNKNOWN_SOURCE` | Unknown source. | -| `WEBIDE_SOURCE` | Webide source. | +| `AUTO_DEVOPS_SOURCE` | Auto DevOps source. | +| `BRIDGE_SOURCE` | Bridge source. | +| `COMPLIANCE_SOURCE` | Compliance source. | +| `EXTERNAL_PROJECT_SOURCE` | External project source. | +| `PARAMETER_SOURCE` | Parameter source. | +| `REMOTE_SOURCE` | Remote source. | +| `REPOSITORY_SOURCE` | Repository source. | +| `UNKNOWN_SOURCE` | Unknown source. | +| `WEBIDE_SOURCE` | Webide source. | ### `PipelineStatusEnum` | Value | Description | | ----- | ----------- | -| `CANCELED` | Pipeline was canceled before completion. | -| `CREATED` | Pipeline has been created. | -| `FAILED` | At least one stage of the pipeline failed. | -| `MANUAL` | Pipeline needs to be manually started. | -| `PENDING` | Pipeline has not started running yet. | -| `PREPARING` | Pipeline is preparing to run. | -| `RUNNING` | Pipeline is running. | -| `SCHEDULED` | Pipeline is scheduled to run. | -| `SKIPPED` | Pipeline was skipped. | -| `SUCCESS` | Pipeline completed successfully. | -| `WAITING_FOR_RESOURCE` | A resource (for example, a runner) that the pipeline requires to run is unavailable. | +| `CANCELED` | Pipeline was canceled before completion. | +| `CREATED` | Pipeline has been created. | +| `FAILED` | At least one stage of the pipeline failed. | +| `MANUAL` | Pipeline needs to be manually started. | +| `PENDING` | Pipeline has not started running yet. | +| `PREPARING` | Pipeline is preparing to run. | +| `RUNNING` | Pipeline is running. | +| `SCHEDULED` | Pipeline is scheduled to run. | +| `SKIPPED` | Pipeline was skipped. | +| `SUCCESS` | Pipeline completed successfully. | +| `WAITING_FOR_RESOURCE` | A resource (for example, a runner) that the pipeline requires to run is unavailable. | ### `ProjectMemberRelation` @@ -8375,10 +13530,10 @@ Project member relation. | Value | Description | | ----- | ----------- | -| `DESCENDANTS` | Descendants members. | -| `DIRECT` | Direct members. | -| `INHERITED` | Inherited members. | -| `INVITED_GROUPS` | Invited Groups members. | +| `DESCENDANTS` | Descendants members. | +| `DIRECT` | Direct members. | +| `INHERITED` | Inherited members. | +| `INVITED_GROUPS` | Invited Groups members. | ### `RegistryState` @@ -8386,10 +13541,10 @@ State of a Geo registry. | Value | Description | | ----- | ----------- | -| `FAILED` | Registry that failed to sync. | -| `PENDING` | Registry waiting to be synced. | -| `STARTED` | Registry currently syncing. | -| `SYNCED` | Registry that is synced. | +| `FAILED` | Registry that failed to sync. | +| `PENDING` | Registry waiting to be synced. | +| `STARTED` | Registry currently syncing. | +| `SYNCED` | Registry that is synced. | ### `ReleaseAssetLinkType` @@ -8397,10 +13552,10 @@ Type of the link: `other`, `runbook`, `image`, `package`. | Value | Description | | ----- | ----------- | -| `IMAGE` | Image link type. | -| `OTHER` | Other link type. | -| `PACKAGE` | Package link type. | -| `RUNBOOK` | Runbook link type. | +| `IMAGE` | Image link type. | +| `OTHER` | Other link type. | +| `PACKAGE` | Package link type. | +| `RUNBOOK` | Runbook link type. | ### `ReleaseSort` @@ -8408,10 +13563,10 @@ Values for sorting releases. | Value | Description | | ----- | ----------- | -| `CREATED_ASC` | Created at ascending order. | -| `CREATED_DESC` | Created at descending order. | -| `RELEASED_AT_ASC` | Released at by ascending order. | -| `RELEASED_AT_DESC` | Released at by descending order. | +| `CREATED_ASC` | Created at ascending order. | +| `CREATED_DESC` | Created at descending order. | +| `RELEASED_AT_ASC` | Released at by ascending order. | +| `RELEASED_AT_DESC` | Released at by descending order. | ### `RequirementState` @@ -8419,8 +13574,8 @@ State of a requirement. | Value | Description | | ----- | ----------- | -| `ARCHIVED` | | -| `OPENED` | | +| `ARCHIVED` | | +| `OPENED` | | ### `RequirementStatusFilter` @@ -8428,9 +13583,9 @@ Status of a requirement based on last test report. | Value | Description | | ----- | ----------- | -| `FAILED` | | -| `MISSING` | Requirements without any test report. | -| `PASSED` | | +| `FAILED` | | +| `MISSING` | Requirements without any test report. | +| `PASSED` | | ### `SastUiComponentSize` @@ -8438,21 +13593,21 @@ Size of UI component in SAST configuration page. | Value | Description | | ----- | ----------- | -| `LARGE` | The size of UI component in SAST configuration page is large. | -| `MEDIUM` | The size of UI component in SAST configuration page is medium. | -| `SMALL` | The size of UI component in SAST configuration page is small. | +| `LARGE` | The size of UI component in SAST configuration page is large. | +| `MEDIUM` | The size of UI component in SAST configuration page is medium. | +| `SMALL` | The size of UI component in SAST configuration page is small. | ### `SecurityReportTypeEnum` | Value | Description | | ----- | ----------- | -| `API_FUZZING` | API FUZZING scan report. | -| `CONTAINER_SCANNING` | CONTAINER SCANNING scan report. | -| `COVERAGE_FUZZING` | COVERAGE FUZZING scan report. | -| `DAST` | DAST scan report. | -| `DEPENDENCY_SCANNING` | DEPENDENCY SCANNING scan report. | -| `SAST` | SAST scan report. | -| `SECRET_DETECTION` | SECRET DETECTION scan report. | +| `API_FUZZING` | API FUZZING scan report. | +| `CONTAINER_SCANNING` | CONTAINER SCANNING scan report. | +| `COVERAGE_FUZZING` | COVERAGE FUZZING scan report. | +| `DAST` | DAST scan report. | +| `DEPENDENCY_SCANNING` | DEPENDENCY SCANNING scan report. | +| `SAST` | SAST scan report. | +| `SECRET_DETECTION` | SECRET DETECTION scan report. | ### `SecurityScannerType` @@ -8460,13 +13615,13 @@ The type of the security scanner. | Value | Description | | ----- | ----------- | -| `API_FUZZING` | | -| `CONTAINER_SCANNING` | | -| `COVERAGE_FUZZING` | | -| `DAST` | | -| `DEPENDENCY_SCANNING` | | -| `SAST` | | -| `SECRET_DETECTION` | | +| `API_FUZZING` | | +| `CONTAINER_SCANNING` | | +| `COVERAGE_FUZZING` | | +| `DAST` | | +| `DEPENDENCY_SCANNING` | | +| `SAST` | | +| `SECRET_DETECTION` | | ### `SentryErrorStatus` @@ -8474,50 +13629,50 @@ State of a Sentry error. | Value | Description | | ----- | ----------- | -| `IGNORED` | Error has been ignored. | -| `RESOLVED` | Error has been resolved. | -| `RESOLVED_IN_NEXT_RELEASE` | Error has been ignored until next release. | -| `UNRESOLVED` | Error is unresolved. | +| `IGNORED` | Error has been ignored. | +| `RESOLVED` | Error has been resolved. | +| `RESOLVED_IN_NEXT_RELEASE` | Error has been ignored until next release. | +| `UNRESOLVED` | Error is unresolved. | ### `ServiceType` | Value | Description | | ----- | ----------- | -| `ASANA_SERVICE` | AsanaService type. | -| `ASSEMBLA_SERVICE` | AssemblaService type. | -| `BAMBOO_SERVICE` | BambooService type. | -| `BUGZILLA_SERVICE` | BugzillaService type. | -| `BUILDKITE_SERVICE` | BuildkiteService type. | -| `CAMPFIRE_SERVICE` | CampfireService type. | -| `CONFLUENCE_SERVICE` | ConfluenceService type. | -| `CUSTOM_ISSUE_TRACKER_SERVICE` | CustomIssueTrackerService type. | -| `DATADOG_SERVICE` | DatadogService type. | -| `DISCORD_SERVICE` | DiscordService type. | -| `DRONE_CI_SERVICE` | DroneCiService type. | -| `EMAILS_ON_PUSH_SERVICE` | EmailsOnPushService type. | -| `EWM_SERVICE` | EwmService type. | -| `EXTERNAL_WIKI_SERVICE` | ExternalWikiService type. | -| `FLOWDOCK_SERVICE` | FlowdockService type. | -| `GITHUB_SERVICE` | GithubService type. | -| `HANGOUTS_CHAT_SERVICE` | HangoutsChatService type. | -| `IRKER_SERVICE` | IrkerService type. | -| `JENKINS_SERVICE` | JenkinsService type. | -| `JIRA_SERVICE` | JiraService type. | -| `MATTERMOST_SERVICE` | MattermostService type. | -| `MATTERMOST_SLASH_COMMANDS_SERVICE` | MattermostSlashCommandsService type. | -| `MICROSOFT_TEAMS_SERVICE` | MicrosoftTeamsService type. | -| `PACKAGIST_SERVICE` | PackagistService type. | -| `PIPELINES_EMAIL_SERVICE` | PipelinesEmailService type. | -| `PIVOTALTRACKER_SERVICE` | PivotaltrackerService type. | -| `PROMETHEUS_SERVICE` | PrometheusService type. | -| `PUSHOVER_SERVICE` | PushoverService type. | -| `REDMINE_SERVICE` | RedmineService type. | -| `SLACK_SERVICE` | SlackService type. | -| `SLACK_SLASH_COMMANDS_SERVICE` | SlackSlashCommandsService type. | -| `TEAMCITY_SERVICE` | TeamcityService type. | -| `UNIFY_CIRCUIT_SERVICE` | UnifyCircuitService type. | -| `WEBEX_TEAMS_SERVICE` | WebexTeamsService type. | -| `YOUTRACK_SERVICE` | YoutrackService type. | +| `ASANA_SERVICE` | AsanaService type. | +| `ASSEMBLA_SERVICE` | AssemblaService type. | +| `BAMBOO_SERVICE` | BambooService type. | +| `BUGZILLA_SERVICE` | BugzillaService type. | +| `BUILDKITE_SERVICE` | BuildkiteService type. | +| `CAMPFIRE_SERVICE` | CampfireService type. | +| `CONFLUENCE_SERVICE` | ConfluenceService type. | +| `CUSTOM_ISSUE_TRACKER_SERVICE` | CustomIssueTrackerService type. | +| `DATADOG_SERVICE` | DatadogService type. | +| `DISCORD_SERVICE` | DiscordService type. | +| `DRONE_CI_SERVICE` | DroneCiService type. | +| `EMAILS_ON_PUSH_SERVICE` | EmailsOnPushService type. | +| `EWM_SERVICE` | EwmService type. | +| `EXTERNAL_WIKI_SERVICE` | ExternalWikiService type. | +| `FLOWDOCK_SERVICE` | FlowdockService type. | +| `GITHUB_SERVICE` | GithubService type. | +| `HANGOUTS_CHAT_SERVICE` | HangoutsChatService type. | +| `IRKER_SERVICE` | IrkerService type. | +| `JENKINS_SERVICE` | JenkinsService type. | +| `JIRA_SERVICE` | JiraService type. | +| `MATTERMOST_SERVICE` | MattermostService type. | +| `MATTERMOST_SLASH_COMMANDS_SERVICE` | MattermostSlashCommandsService type. | +| `MICROSOFT_TEAMS_SERVICE` | MicrosoftTeamsService type. | +| `PACKAGIST_SERVICE` | PackagistService type. | +| `PIPELINES_EMAIL_SERVICE` | PipelinesEmailService type. | +| `PIVOTALTRACKER_SERVICE` | PivotaltrackerService type. | +| `PROMETHEUS_SERVICE` | PrometheusService type. | +| `PUSHOVER_SERVICE` | PushoverService type. | +| `REDMINE_SERVICE` | RedmineService type. | +| `SLACK_SERVICE` | SlackService type. | +| `SLACK_SLASH_COMMANDS_SERVICE` | SlackSlashCommandsService type. | +| `TEAMCITY_SERVICE` | TeamcityService type. | +| `UNIFY_CIRCUIT_SERVICE` | UnifyCircuitService type. | +| `WEBEX_TEAMS_SERVICE` | WebexTeamsService type. | +| `YOUTRACK_SERVICE` | YoutrackService type. | ### `SnippetBlobActionEnum` @@ -8525,10 +13680,10 @@ Type of a snippet blob input action. | Value | Description | | ----- | ----------- | -| `create` | | -| `delete` | | -| `move` | | -| `update` | | +| `create` | | +| `delete` | | +| `move` | | +| `update` | | ### `Sort` @@ -8536,23 +13691,23 @@ Common sort values. | Value | Description | | ----- | ----------- | -| `CREATED_ASC` | Created at ascending order. | -| `CREATED_DESC` | Created at descending order. | -| `UPDATED_ASC` | Updated at ascending order. | -| `UPDATED_DESC` | Updated at descending order. | -| `created_asc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `CREATED_ASC`. Deprecated in 13.5. | -| `created_desc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5. | -| `updated_asc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5. | -| `updated_desc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5. | +| `CREATED_ASC` | Created at ascending order. | +| `CREATED_DESC` | Created at descending order. | +| `UPDATED_ASC` | Updated at ascending order. | +| `UPDATED_DESC` | Updated at descending order. | +| `created_asc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `CREATED_ASC`. Deprecated in 13.5. | +| `created_desc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `CREATED_DESC`. Deprecated in 13.5. | +| `updated_asc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `UPDATED_ASC`. Deprecated in 13.5. | +| `updated_desc` **{warning-solid}** | **Deprecated:** This was renamed. Please use `UPDATED_DESC`. Deprecated in 13.5. | ### `TestCaseStatus` | Value | Description | | ----- | ----------- | -| `error` | Test case that has a status of error. | -| `failed` | Test case that has a status of failed. | -| `skipped` | Test case that has a status of skipped. | -| `success` | Test case that has a status of success. | +| `error` | Test case that has a status of error. | +| `failed` | Test case that has a status of failed. | +| `skipped` | Test case that has a status of skipped. | +| `success` | Test case that has a status of success. | ### `TestReportState` @@ -8560,47 +13715,47 @@ State of a test report. | Value | Description | | ----- | ----------- | -| `FAILED` | | -| `PASSED` | | +| `FAILED` | | +| `PASSED` | | ### `TodoActionEnum` | Value | Description | | ----- | ----------- | -| `approval_required` | User was set as an approver. | -| `assigned` | User was assigned. | -| `build_failed` | Build triggered by the user failed. | -| `directly_addressed` | User was directly addressed. | -| `marked` | User added a TODO. | -| `mentioned` | User was mentioned. | -| `merge_train_removed` | Merge request authored by the user was removed from the merge train. | -| `review_requested` | Review was requested from the user. | -| `unmergeable` | Merge request authored by the user could not be merged. | +| `approval_required` | User was set as an approver. | +| `assigned` | User was assigned. | +| `build_failed` | Build triggered by the user failed. | +| `directly_addressed` | User was directly addressed. | +| `marked` | User added a TODO. | +| `mentioned` | User was mentioned. | +| `merge_train_removed` | Merge request authored by the user was removed from the merge train. | +| `review_requested` | Review was requested from the user. | +| `unmergeable` | Merge request authored by the user could not be merged. | ### `TodoStateEnum` | Value | Description | | ----- | ----------- | -| `done` | The state of the todo is done. | -| `pending` | The state of the todo is pending. | +| `done` | The state of the todo is done. | +| `pending` | The state of the todo is pending. | ### `TodoTargetEnum` | Value | Description | | ----- | ----------- | -| `ALERT` | An Alert. | -| `COMMIT` | A Commit. | -| `DESIGN` | A Design. | -| `EPIC` | An Epic. | -| `ISSUE` | An Issue. | -| `MERGEREQUEST` | A MergeRequest. | +| `ALERT` | An Alert. | +| `COMMIT` | A Commit. | +| `DESIGN` | A Design. | +| `EPIC` | An Epic. | +| `ISSUE` | An Issue. | +| `MERGEREQUEST` | A MergeRequest. | ### `TypeEnum` | Value | Description | | ----- | ----------- | -| `personal` | | -| `project` | | +| `personal` | | +| `project` | | ### `UserCalloutFeatureNameEnum` @@ -8608,33 +13763,33 @@ Name of the feature that the callout is for. | Value | Description | | ----- | ----------- | -| `ACCOUNT_RECOVERY_REGULAR_CHECK` | Callout feature name for account_recovery_regular_check. | -| `ACTIVE_USER_COUNT_THRESHOLD` | Callout feature name for active_user_count_threshold. | -| `ADMIN_INTEGRATIONS_MOVED` | Callout feature name for admin_integrations_moved. | -| `BUY_PIPELINE_MINUTES_NOTIFICATION_DOT` | Callout feature name for buy_pipeline_minutes_notification_dot. | -| `CANARY_DEPLOYMENT` | Callout feature name for canary_deployment. | -| `CLUSTER_SECURITY_WARNING` | Callout feature name for cluster_security_warning. | -| `CUSTOMIZE_HOMEPAGE` | Callout feature name for customize_homepage. | -| `EOA_BRONZE_PLAN_BANNER` | Callout feature name for eoa_bronze_plan_banner. | -| `FEATURE_FLAGS_NEW_VERSION` | Callout feature name for feature_flags_new_version. | -| `GCP_SIGNUP_OFFER` | Callout feature name for gcp_signup_offer. | -| `GEO_ENABLE_HASHED_STORAGE` | Callout feature name for geo_enable_hashed_storage. | -| `GEO_MIGRATE_HASHED_STORAGE` | Callout feature name for geo_migrate_hashed_storage. | -| `GKE_CLUSTER_INTEGRATION` | Callout feature name for gke_cluster_integration. | -| `GOLD_TRIAL_BILLINGS` | Callout feature name for gold_trial_billings. | -| `NEW_USER_SIGNUPS_CAP_REACHED` | Callout feature name for new_user_signups_cap_reached. | -| `PERSONAL_ACCESS_TOKEN_EXPIRY` | Callout feature name for personal_access_token_expiry. | -| `PIPELINE_NEEDS_BANNER` | Callout feature name for pipeline_needs_banner. | -| `REGISTRATION_ENABLED_CALLOUT` | Callout feature name for registration_enabled_callout. | -| `SERVICE_TEMPLATES_DEPRECATED_CALLOUT` | Callout feature name for service_templates_deprecated_callout. | -| `SUGGEST_PIPELINE` | Callout feature name for suggest_pipeline. | -| `SUGGEST_POPOVER_DISMISSED` | Callout feature name for suggest_popover_dismissed. | -| `TABS_POSITION_HIGHLIGHT` | Callout feature name for tabs_position_highlight. | -| `THREAT_MONITORING_INFO` | Callout feature name for threat_monitoring_info. | -| `ULTIMATE_TRIAL` | Callout feature name for ultimate_trial. | -| `UNFINISHED_TAG_CLEANUP_CALLOUT` | Callout feature name for unfinished_tag_cleanup_callout. | -| `WEBHOOKS_MOVED` | Callout feature name for webhooks_moved. | -| `WEB_IDE_ALERT_DISMISSED` | Callout feature name for web_ide_alert_dismissed. | +| `ACCOUNT_RECOVERY_REGULAR_CHECK` | Callout feature name for account_recovery_regular_check. | +| `ACTIVE_USER_COUNT_THRESHOLD` | Callout feature name for active_user_count_threshold. | +| `ADMIN_INTEGRATIONS_MOVED` | Callout feature name for admin_integrations_moved. | +| `BUY_PIPELINE_MINUTES_NOTIFICATION_DOT` | Callout feature name for buy_pipeline_minutes_notification_dot. | +| `CANARY_DEPLOYMENT` | Callout feature name for canary_deployment. | +| `CLUSTER_SECURITY_WARNING` | Callout feature name for cluster_security_warning. | +| `CUSTOMIZE_HOMEPAGE` | Callout feature name for customize_homepage. | +| `EOA_BRONZE_PLAN_BANNER` | Callout feature name for eoa_bronze_plan_banner. | +| `FEATURE_FLAGS_NEW_VERSION` | Callout feature name for feature_flags_new_version. | +| `GCP_SIGNUP_OFFER` | Callout feature name for gcp_signup_offer. | +| `GEO_ENABLE_HASHED_STORAGE` | Callout feature name for geo_enable_hashed_storage. | +| `GEO_MIGRATE_HASHED_STORAGE` | Callout feature name for geo_migrate_hashed_storage. | +| `GKE_CLUSTER_INTEGRATION` | Callout feature name for gke_cluster_integration. | +| `GOLD_TRIAL_BILLINGS` | Callout feature name for gold_trial_billings. | +| `NEW_USER_SIGNUPS_CAP_REACHED` | Callout feature name for new_user_signups_cap_reached. | +| `PERSONAL_ACCESS_TOKEN_EXPIRY` | Callout feature name for personal_access_token_expiry. | +| `PIPELINE_NEEDS_BANNER` | Callout feature name for pipeline_needs_banner. | +| `REGISTRATION_ENABLED_CALLOUT` | Callout feature name for registration_enabled_callout. | +| `SERVICE_TEMPLATES_DEPRECATED_CALLOUT` | Callout feature name for service_templates_deprecated_callout. | +| `SUGGEST_PIPELINE` | Callout feature name for suggest_pipeline. | +| `SUGGEST_POPOVER_DISMISSED` | Callout feature name for suggest_popover_dismissed. | +| `TABS_POSITION_HIGHLIGHT` | Callout feature name for tabs_position_highlight. | +| `THREAT_MONITORING_INFO` | Callout feature name for threat_monitoring_info. | +| `ULTIMATE_TRIAL` | Callout feature name for ultimate_trial. | +| `UNFINISHED_TAG_CLEANUP_CALLOUT` | Callout feature name for unfinished_tag_cleanup_callout. | +| `WEBHOOKS_MOVED` | Callout feature name for webhooks_moved. | +| `WEB_IDE_ALERT_DISMISSED` | Callout feature name for web_ide_alert_dismissed. | ### `UserState` @@ -8642,25 +13797,25 @@ Possible states of a user. | Value | Description | | ----- | ----------- | -| `active` | The user is active and is able to use the system. | -| `blocked` | The user has been blocked and is prevented from using the system. | -| `deactivated` | The user is no longer active and is unable to use the system. | +| `active` | The user is active and is able to use the system. | +| `blocked` | The user has been blocked and is prevented from using the system. | +| `deactivated` | The user is no longer active and is unable to use the system. | ### `VisibilityLevelsEnum` | Value | Description | | ----- | ----------- | -| `internal` | Internal visibility level. | -| `private` | Private visibility level. | -| `public` | Public visibility level. | +| `internal` | Internal visibility level. | +| `private` | Private visibility level. | +| `public` | Public visibility level. | ### `VisibilityScopesEnum` | Value | Description | | ----- | ----------- | -| `internal` | | -| `private` | | -| `public` | | +| `internal` | | +| `private` | | +| `public` | | ### `VulnerabilityDismissalReason` @@ -8668,11 +13823,11 @@ The dismissal reason of the Vulnerability. | Value | Description | | ----- | ----------- | -| `ACCEPTABLE_RISK` | The vulnerability is known, and has not been remediated or mitigated, but is considered to be an acceptable business risk. | -| `FALSE_POSITIVE` | An error in reporting in which a test result incorrectly indicates the presence of a vulnerability in a system when the vulnerability is not present. | -| `MITIGATING_CONTROL` | A management, operational, or technical control (that is, safeguard or countermeasure) employed by an organization that provides equivalent or comparable protection for an information system. | -| `NOT_APPLICABLE` | The vulnerability is known, and has not been remediated or mitigated, but is considered to be in a part of the application that will not be updated. | -| `USED_IN_TESTS` | The finding is not a vulnerability because it is part of a test or is test data. | +| `ACCEPTABLE_RISK` | The vulnerability is known, and has not been remediated or mitigated, but is considered to be an acceptable business risk. | +| `FALSE_POSITIVE` | An error in reporting in which a test result incorrectly indicates the presence of a vulnerability in a system when the vulnerability is not present. | +| `MITIGATING_CONTROL` | A management, operational, or technical control (that is, safeguard or countermeasure) employed by an organization that provides equivalent or comparable protection for an information system. | +| `NOT_APPLICABLE` | The vulnerability is known, and has not been remediated or mitigated, but is considered to be in a part of the application that will not be updated. | +| `USED_IN_TESTS` | The finding is not a vulnerability because it is part of a test or is test data. | ### `VulnerabilityExternalIssueLinkExternalTracker` @@ -8680,7 +13835,7 @@ The external tracker of the external issue link related to a vulnerability. | Value | Description | | ----- | ----------- | -| `JIRA` | Jira external tracker. | +| `JIRA` | Jira external tracker. | ### `VulnerabilityExternalIssueLinkType` @@ -8688,7 +13843,7 @@ The type of the external issue link related to a vulnerability. | Value | Description | | ----- | ----------- | -| `CREATED` | Created link type. | +| `CREATED` | Created link type. | ### `VulnerabilityGrade` @@ -8696,11 +13851,11 @@ The grade of the vulnerable project. | Value | Description | | ----- | ----------- | -| `A` | | -| `B` | | -| `C` | | -| `D` | | -| `F` | | +| `A` | | +| `B` | | +| `C` | | +| `D` | | +| `F` | | ### `VulnerabilityIssueLinkType` @@ -8708,8 +13863,8 @@ The type of the issue link related to a vulnerability. | Value | Description | | ----- | ----------- | -| `CREATED` | | -| `RELATED` | | +| `CREATED` | | +| `RELATED` | | ### `VulnerabilityReportType` @@ -8717,13 +13872,13 @@ The type of the security scan that found the vulnerability. | Value | Description | | ----- | ----------- | -| `API_FUZZING` | | -| `CONTAINER_SCANNING` | | -| `COVERAGE_FUZZING` | | -| `DAST` | | -| `DEPENDENCY_SCANNING` | | -| `SAST` | | -| `SECRET_DETECTION` | | +| `API_FUZZING` | | +| `CONTAINER_SCANNING` | | +| `COVERAGE_FUZZING` | | +| `DAST` | | +| `DEPENDENCY_SCANNING` | | +| `SAST` | | +| `SECRET_DETECTION` | | ### `VulnerabilitySeverity` @@ -8731,12 +13886,12 @@ The severity of the vulnerability. | Value | Description | | ----- | ----------- | -| `CRITICAL` | | -| `HIGH` | | -| `INFO` | | -| `LOW` | | -| `MEDIUM` | | -| `UNKNOWN` | | +| `CRITICAL` | | +| `HIGH` | | +| `INFO` | | +| `LOW` | | +| `MEDIUM` | | +| `UNKNOWN` | | ### `VulnerabilitySort` @@ -8744,16 +13899,16 @@ Vulnerability sort values. | Value | Description | | ----- | ----------- | -| `detected_asc` | Detection timestamp in ascending order. | -| `detected_desc` | Detection timestamp in descending order. | -| `report_type_asc` | Report Type in ascending order. | -| `report_type_desc` | Report Type in descending order. | -| `severity_asc` | Severity in ascending order. | -| `severity_desc` | Severity in descending order. | -| `state_asc` | State in ascending order. | -| `state_desc` | State in descending order. | -| `title_asc` | Title in ascending order. | -| `title_desc` | Title in descending order. | +| `detected_asc` | Detection timestamp in ascending order. | +| `detected_desc` | Detection timestamp in descending order. | +| `report_type_asc` | Report Type in ascending order. | +| `report_type_desc` | Report Type in descending order. | +| `severity_asc` | Severity in ascending order. | +| `severity_desc` | Severity in descending order. | +| `state_asc` | State in ascending order. | +| `state_desc` | State in descending order. | +| `title_asc` | Title in ascending order. | +| `title_desc` | Title in descending order. | ### `VulnerabilityState` @@ -8761,10 +13916,10 @@ The state of the vulnerability. | Value | Description | | ----- | ----------- | -| `CONFIRMED` | | -| `DETECTED` | | -| `DISMISSED` | | -| `RESOLVED` | | +| `CONFIRMED` | | +| `DETECTED` | | +| `DISMISSED` | | +| `RESOLVED` | | ### `WeightWildcardId` @@ -8772,8 +13927,8 @@ Weight ID wildcard values. | Value | Description | | ----- | ----------- | -| `ANY` | Weight is assigned. | -| `NONE` | No weight is assigned. | +| `ANY` | Weight is assigned. | +| `NONE` | No weight is assigned. | ## Scalar types @@ -9263,15 +14418,17 @@ Implementations: - [`AlertManagementHttpIntegration`](#alertmanagementhttpintegration) - [`AlertManagementPrometheusIntegration`](#alertmanagementprometheusintegration) -| Field | Type | Description | -| ----- | ---- | ----------- | -| `active` | [`Boolean`](#boolean) | Whether the endpoint is currently accepting alerts. | -| `apiUrl` | [`String`](#string) | URL at which Prometheus metrics can be queried to populate the metrics dashboard. | -| `id` | [`ID!`](#id) | ID of the integration. | -| `name` | [`String`](#string) | Name of the integration. | -| `token` | [`String`](#string) | Token used to authenticate alert notification requests. | -| `type` | [`AlertManagementIntegrationType!`](#alertmanagementintegrationtype) | Type of integration. | -| `url` | [`String`](#string) | Endpoint which accepts alert notifications. | +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `active` | [`Boolean`](#boolean) | Whether the endpoint is currently accepting alerts. | +| `apiUrl` | [`String`](#string) | URL at which Prometheus metrics can be queried to populate the metrics dashboard. | +| `id` | [`ID!`](#id) | ID of the integration. | +| `name` | [`String`](#string) | Name of the integration. | +| `token` | [`String`](#string) | Token used to authenticate alert notification requests. | +| `type` | [`AlertManagementIntegrationType!`](#alertmanagementintegrationtype) | Type of integration. | +| `url` | [`String`](#string) | Endpoint which accepts alert notifications. | #### `CurrentUserTodos` @@ -9284,9 +14441,23 @@ Implementations: - [`Issue`](#issue) - [`MergeRequest`](#mergerequest) -| Field | Type | Description | -| ----- | ---- | ----------- | -| `currentUserTodos` | [`TodoConnection!`](#todoconnection) | To-do items for the current user. | +##### Fields with arguments + +###### `CurrentUserTodos.currentUserTodos` + +To-do items for the current user. + +Returns [`TodoConnection!`](#todoconnection). + +This field returns a [connection](#connections). It accepts the +four standard [pagination arguments](#connection-pagination-arguments): +`before: String`, `after: String`, `first: Int`, `last: Int`. + +####### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `state` | [`TodoStateEnum`](#todostateenum) | State of the to-do items. | #### `DesignFields` @@ -9295,18 +14466,20 @@ Implementations: - [`Design`](#design) - [`DesignAtVersion`](#designatversion) -| Field | Type | Description | -| ----- | ---- | ----------- | -| `diffRefs` | [`DiffRefs!`](#diffrefs) | The diff refs for this design. | -| `event` | [`DesignVersionEvent!`](#designversionevent) | How this design was changed in the current version. | -| `filename` | [`String!`](#string) | The filename of the design. | -| `fullPath` | [`String!`](#string) | The full path to the design file. | -| `id` | [`ID!`](#id) | The ID of this design. | -| `image` | [`String!`](#string) | The URL of the full-sized image. | -| `imageV432x230` | [`String`](#string) | The URL of the design resized to fit within the bounds of 432x230. This will be `null` if the image has not been generated. | -| `issue` | [`Issue!`](#issue) | The issue the design belongs to. | -| `notesCount` | [`Int!`](#int) | The total count of user-created notes for this design. | -| `project` | [`Project!`](#project) | The project the design belongs to. | +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `diffRefs` | [`DiffRefs!`](#diffrefs) | The diff refs for this design. | +| `event` | [`DesignVersionEvent!`](#designversionevent) | How this design was changed in the current version. | +| `filename` | [`String!`](#string) | The filename of the design. | +| `fullPath` | [`String!`](#string) | The full path to the design file. | +| `id` | [`ID!`](#id) | The ID of this design. | +| `image` | [`String!`](#string) | The URL of the full-sized image. | +| `imageV432x230` | [`String`](#string) | The URL of the design resized to fit within the bounds of 432x230. This will be `null` if the image has not been generated. | +| `issue` | [`Issue!`](#issue) | The issue the design belongs to. | +| `notesCount` | [`Int!`](#int) | The total count of user-created notes for this design. | +| `project` | [`Project!`](#project) | The project the design belongs to. | #### `Entry` @@ -9316,14 +14489,16 @@ Implementations: - [`Submodule`](#submodule) - [`TreeEntry`](#treeentry) -| Field | Type | Description | -| ----- | ---- | ----------- | -| `flatPath` | [`String!`](#string) | Flat path of the entry. | -| `id` | [`ID!`](#id) | ID of the entry. | -| `name` | [`String!`](#string) | Name of the entry. | -| `path` | [`String!`](#string) | Path of the entry. | -| `sha` | [`String!`](#string) | Last commit SHA for the entry. | -| `type` | [`EntryType!`](#entrytype) | Type of tree entry. | +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `flatPath` | [`String!`](#string) | Flat path of the entry. | +| `id` | [`ID!`](#id) | ID of the entry. | +| `name` | [`String!`](#string) | Name of the entry. | +| `path` | [`String!`](#string) | Path of the entry. | +| `sha` | [`String!`](#string) | Last commit SHA for the entry. | +| `type` | [`EntryType!`](#entrytype) | Type of tree entry. | #### `Eventable` @@ -9332,9 +14507,11 @@ Implementations: - [`BoardEpic`](#boardepic) - [`Epic`](#epic) -| Field | Type | Description | -| ----- | ---- | ----------- | -| `events` | [`EventConnection`](#eventconnection) | A list of events associated with the object. | +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `events` | [`EventConnection`](#eventconnection) | A list of events associated with the object. | #### `MemberInterface` @@ -9343,15 +14520,17 @@ Implementations: - [`GroupMember`](#groupmember) - [`ProjectMember`](#projectmember) -| Field | Type | Description | -| ----- | ---- | ----------- | -| `accessLevel` | [`AccessLevel`](#accesslevel) | GitLab::Access level. | -| `createdAt` | [`Time`](#time) | Date and time the membership was created. | -| `createdBy` | [`User`](#user) | User that authorized membership. | -| `expiresAt` | [`Time`](#time) | Date and time the membership expires. | -| `id` | [`ID!`](#id) | ID of the member. | -| `updatedAt` | [`Time`](#time) | Date and time the membership was last updated. | -| `user` | [`User!`](#user) | User that is associated with the member object. | +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `accessLevel` | [`AccessLevel`](#accesslevel) | GitLab::Access level. | +| `createdAt` | [`Time`](#time) | Date and time the membership was created. | +| `createdBy` | [`User`](#user) | User that authorized membership. | +| `expiresAt` | [`Time`](#time) | Date and time the membership expires. | +| `id` | [`ID!`](#id) | ID of the member. | +| `updatedAt` | [`Time`](#time) | Date and time the membership was last updated. | +| `user` | [`User!`](#user) | User that is associated with the member object. | #### `Noteable` @@ -9367,10 +14546,12 @@ Implementations: - [`Snippet`](#snippet) - [`Vulnerability`](#vulnerability) -| Field | Type | Description | -| ----- | ---- | ----------- | -| `discussions` | [`DiscussionConnection!`](#discussionconnection) | All discussions on this noteable. | -| `notes` | [`NoteConnection!`](#noteconnection) | All notes on this noteable. | +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `discussions` | [`DiscussionConnection!`](#discussionconnection) | All discussions on this noteable. | +| `notes` | [`NoteConnection!`](#noteconnection) | All notes on this noteable. | #### `PackageFileMetadata` @@ -9380,10 +14561,12 @@ Implementations: - [`ConanFileMetadata`](#conanfilemetadata) -| Field | Type | Description | -| ----- | ---- | ----------- | -| `createdAt` | [`Time!`](#time) | Date of creation. | -| `updatedAt` | [`Time!`](#time) | Date of most recent update. | +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `createdAt` | [`Time!`](#time) | Date of creation. | +| `updatedAt` | [`Time!`](#time) | Date of most recent update. | #### `ResolvableInterface` @@ -9392,12 +14575,14 @@ Implementations: - [`Discussion`](#discussion) - [`Note`](#note) -| Field | Type | Description | -| ----- | ---- | ----------- | -| `resolvable` | [`Boolean!`](#boolean) | Indicates if the object can be resolved. | -| `resolved` | [`Boolean!`](#boolean) | Indicates if the object is resolved. | -| `resolvedAt` | [`Time`](#time) | Timestamp of when the object was resolved. | -| `resolvedBy` | [`User`](#user) | User who resolved the object. | +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `resolvable` | [`Boolean!`](#boolean) | Indicates if the object can be resolved. | +| `resolved` | [`Boolean!`](#boolean) | Indicates if the object is resolved. | +| `resolvedAt` | [`Time`](#time) | Timestamp of when the object was resolved. | +| `resolvedBy` | [`User`](#user) | User who resolved the object. | #### `Service` @@ -9406,10 +14591,12 @@ Implementations: - [`BaseService`](#baseservice) - [`JiraService`](#jiraservice) -| Field | Type | Description | -| ----- | ---- | ----------- | -| `active` | [`Boolean`](#boolean) | Indicates if the service is active. | -| `type` | [`String`](#string) | Class name of the service. | +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `active` | [`Boolean`](#boolean) | Indicates if the service is active. | +| `type` | [`String`](#string) | Class name of the service. | #### `TimeboxReportInterface` @@ -9418,6 +14605,357 @@ Implementations: - [`Iteration`](#iteration) - [`Milestone`](#milestone) -| Field | Type | Description | -| ----- | ---- | ----------- | -| `report` | [`TimeboxReport`](#timeboxreport) | Historically accurate report about the timebox. | +##### Fields + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `report` | [`TimeboxReport`](#timeboxreport) | Historically accurate report about the timebox. | + +## Input types + +Types that may be used as arguments (all scalar types may also +be used as arguments). + +Only general use input types are listed here. For mutation input types, +see the associated mutation type above. + +### `AlertManagementPayloadAlertFieldInput` + +Field that are available while modifying the custom mapping attributes for an HTTP integration. + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `fieldName` | [`AlertManagementPayloadAlertFieldName!`](#alertmanagementpayloadalertfieldname) | A GitLab alert field name. | +| `label` | [`String`](#string) | Human-readable label of the payload path. | +| `path` | [`[PayloadAlertFieldPathSegment!]!`](#payloadalertfieldpathsegment) | Path to value inside payload JSON. | +| `type` | [`AlertManagementPayloadAlertFieldType!`](#alertmanagementpayloadalertfieldtype) | Type of the parsed value. | + +### `BoardIssueInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `assigneeUsername` | [`[String]`](#string) | Filter by assignee username. | +| `assigneeWildcardId` | [`AssigneeWildcardId`](#assigneewildcardid) | Filter by assignee wildcard. Incompatible with assigneeUsername. | +| `authorUsername` | [`String`](#string) | Filter by author username. | +| `epicId` | [`EpicID`](#epicid) | Filter by epic ID. Incompatible with epicWildcardId. | +| `epicWildcardId` | [`EpicWildcardId`](#epicwildcardid) | Filter by epic ID wildcard. Incompatible with epicId. | +| `iids` | [`[String!]`](#string) | List of IIDs of issues. For example ["1", "2"]. | +| `iterationId` | [`[IterationID!]`](#iterationid) | Filter by a list of iteration IDs. Incompatible with iterationWildcardId. | +| `iterationTitle` | [`String`](#string) | Filter by iteration title. | +| `iterationWildcardId` | [`IterationWildcardId`](#iterationwildcardid) | Filter by iteration ID wildcard. | +| `labelName` | [`[String]`](#string) | Filter by label name. | +| `milestoneTitle` | [`String`](#string) | Filter by milestone title. | +| `myReactionEmoji` | [`String`](#string) | Filter by reaction emoji applied by the current user. | +| `not` | [`NegatedBoardIssueInput`](#negatedboardissueinput) | List of negated arguments. Warning: this argument is experimental and a subject to change in future. | +| `releaseTag` | [`String`](#string) | Filter by release tag. | +| `search` | [`String`](#string) | Search query for issue title or description. | +| `weight` | [`String`](#string) | Filter by weight. | +| `weightWildcardId` | [`WeightWildcardId`](#weightwildcardid) | Filter by weight ID wildcard. Incompatible with weight. | + +### `CommitAction` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `action` | [`CommitActionMode!`](#commitactionmode) | The action to perform, create, delete, move, update, chmod. | +| `content` | [`String`](#string) | Content of the file. | +| `encoding` | [`CommitEncoding`](#commitencoding) | Encoding of the file. Default is text. | +| `executeFilemode` | [`Boolean`](#boolean) | Enables/disables the execute flag on the file. | +| `filePath` | [`String!`](#string) | Full path to the file. | +| `lastCommitId` | [`String`](#string) | Last known file commit ID. | +| `previousPath` | [`String`](#string) | Original full path to the file being moved. | + +### `ComplianceFrameworkInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `color` | [`String`](#string) | New color representation of the compliance framework in hex format. e.g. #FCA121. | +| `description` | [`String`](#string) | New description for the compliance framework. | +| `name` | [`String`](#string) | New name for the compliance framework. | +| `pipelineConfigurationFullPath` | [`String`](#string) | Full path of the compliance pipeline configuration stored in a project repository, such as `.gitlab/.compliance-gitlab-ci.yml@compliance/hipaa` **(ULTIMATE)**. | + +### `DastSiteProfileAuthInput` + +Input type for DastSiteProfile authentication. + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `enabled` | [`Boolean`](#boolean) | Indicates whether authentication is enabled. | +| `password` | [`String`](#string) | The password to authenticate with on the target website. | +| `passwordField` | [`String`](#string) | The name of password field at the sign-in HTML form. | +| `url` | [`String`](#string) | The URL of the page containing the sign-in HTML form on the target website. | +| `username` | [`String`](#string) | The username to authenticate with on the target website. | +| `usernameField` | [`String`](#string) | The name of username field at the sign-in HTML form. | + +### `DiffImagePositionInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `baseSha` | [`String`](#string) | Merge base of the branch the comment was made on. | +| `headSha` | [`String!`](#string) | SHA of the HEAD at the time the comment was made. | +| `height` | [`Int!`](#int) | Total height of the image. | +| `paths` | [`DiffPathsInput!`](#diffpathsinput) | The paths of the file that was changed. Both of the properties of this input are optional, but at least one of them is required. | +| `startSha` | [`String!`](#string) | SHA of the branch being compared against. | +| `width` | [`Int!`](#int) | Total width of the image. | +| `x` | [`Int!`](#int) | X position of the note. | +| `y` | [`Int!`](#int) | Y position of the note. | + +### `DiffPathsInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `newPath` | [`String`](#string) | The path of the file on the head sha. | +| `oldPath` | [`String`](#string) | The path of the file on the start sha. | + +### `DiffPositionInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `baseSha` | [`String`](#string) | Merge base of the branch the comment was made on. | +| `headSha` | [`String!`](#string) | SHA of the HEAD at the time the comment was made. | +| `newLine` | [`Int`](#int) | Line on HEAD SHA that was changed. | +| `oldLine` | [`Int`](#int) | Line on start SHA that was changed. | +| `paths` | [`DiffPathsInput!`](#diffpathsinput) | The paths of the file that was changed. Both of the properties of this input are optional, but at least one of them is required. | +| `startSha` | [`String!`](#string) | SHA of the branch being compared against. | + +### `EpicFilters` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `authorUsername` | [`String`](#string) | Filter by author username. | +| `labelName` | [`[String]`](#string) | Filter by label name. | +| `myReactionEmoji` | [`String`](#string) | Filter by reaction emoji applied by the current user. | +| `not` | [`NegatedEpicBoardIssueInput`](#negatedepicboardissueinput) | Negated epic arguments. Warning: this argument is experimental and a subject to change in the future. | +| `search` | [`String`](#string) | Search query for epic title or description. | + +### `EpicTreeNodeFieldsInputType` + +A node of an epic tree. + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `adjacentReferenceId` | [`EpicTreeSortingID`](#epictreesortingid) | The ID of the epic_issue or issue that the actual epic or issue is switched with. | +| `id` | [`EpicTreeSortingID!`](#epictreesortingid) | The ID of the epic_issue or epic that is being moved. | +| `newParentId` | [`EpicID`](#epicid) | ID of the new parent epic. | +| `relativePosition` | [`MoveType`](#movetype) | The type of the switch, after or before allowed. | + +### `JiraUsersMappingInputType` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `gitlabId` | [`Int`](#int) | ID of the GitLab user. | +| `jiraAccountId` | [`String!`](#string) | Jira account ID of the user. | + +### `MergeRequestsResolverNegatedParams` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `labels` | [`[String!]`](#string) | Array of label names. All resolved merge requests will not have these labels. | +| `milestoneTitle` | [`String`](#string) | Title of the milestone. | + +### `NegatedBoardIssueInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `assigneeUsername` | [`[String]`](#string) | Filter by assignee username. | +| `authorUsername` | [`String`](#string) | Filter by author username. | +| `epicId` | [`EpicID`](#epicid) | Filter by epic ID. Incompatible with epicWildcardId. | +| `iids` | [`[String!]`](#string) | List of IIDs of issues. For example ["1", "2"]. | +| `iterationId` | [`[IterationID!]`](#iterationid) | Filter by a list of iteration IDs. Incompatible with iterationWildcardId. | +| `iterationTitle` | [`String`](#string) | Filter by iteration title. | +| `iterationWildcardId` | [`NegatedIterationWildcardId`](#negatediterationwildcardid) | Filter by iteration ID wildcard. | +| `labelName` | [`[String]`](#string) | Filter by label name. | +| `milestoneTitle` | [`String`](#string) | Filter by milestone title. | +| `myReactionEmoji` | [`String`](#string) | Filter by reaction emoji applied by the current user. | +| `releaseTag` | [`String`](#string) | Filter by release tag. | +| `weight` | [`String`](#string) | Filter by weight. | + +### `NegatedEpicBoardIssueInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `authorUsername` | [`String`](#string) | Filter by author username. | +| `labelName` | [`[String]`](#string) | Filter by label name. | +| `myReactionEmoji` | [`String`](#string) | Filter by reaction emoji applied by the current user. | + +### `NegatedIssueFilterInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `assigneeId` | [`String`](#string) | ID of a user not assigned to the issues. | +| `assigneeUsernames` | [`[String!]`](#string) | Usernames of users not assigned to the issue. | +| `epicId` | [`String`](#string) | ID of an epic not associated with the issues. | +| `iids` | [`[String!]`](#string) | List of IIDs of issues to exclude. For example, [1, 2]. | +| `iterationId` | [`[ID!]`](#id) | List of iteration Global IDs not applied to the issue. | +| `iterationWildcardId` | [`IterationWildcardId`](#iterationwildcardid) | Filter by negated iteration ID wildcard. | +| `labelName` | [`[String!]`](#string) | Labels not applied to this issue. | +| `milestoneTitle` | [`[String!]`](#string) | Milestone not applied to this issue. | +| `weight` | [`String`](#string) | Weight not applied to the issue. | + +### `OncallRotationActivePeriodInputType` + +Active period time range for on-call rotation. + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `endTime` | [`String!`](#string) | The end of the rotation active period in 24 hour format, for example "18:30". | +| `startTime` | [`String!`](#string) | The start of the rotation active period in 24 hour format, for example "18:30". | + +### `OncallRotationDateInputType` + +Date input type for on-call rotation. + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `date` | [`String!`](#string) | The date component of the date in YYYY-MM-DD format. | +| `time` | [`String!`](#string) | The time component of the date in 24hr HH:MM format. | + +### `OncallRotationLengthInputType` + +The rotation length of the on-call rotation. + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `length` | [`Int!`](#int) | The rotation length of the on-call rotation. | +| `unit` | [`OncallRotationUnitEnum!`](#oncallrotationunitenum) | The unit of the rotation length of the on-call rotation. | + +### `OncallUserInputType` + +The rotation user and color palette. + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `colorPalette` | [`DataVisualizationColorEnum`](#datavisualizationcolorenum) | A value of DataVisualizationColorEnum. The color from the palette to assign to the on-call user. | +| `colorWeight` | [`DataVisualizationWeightEnum`](#datavisualizationweightenum) | A value of DataVisualizationWeightEnum. The color weight to assign to for the on-call user. Note: To view on-call schedules in GitLab, do not provide a value below 500. A value between 500 and 950 ensures sufficient contrast. | +| `username` | [`String!`](#string) | The username of the user to participate in the on-call rotation, such as `user_one`. | + +### `ReleaseAssetLinkInput` + +Fields that are available when modifying a release asset link. + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `directAssetPath` | [`String`](#string) | Relative path for a direct asset link. | +| `linkType` | [`ReleaseAssetLinkType`](#releaseassetlinktype) | The type of the asset link. | +| `name` | [`String!`](#string) | Name of the asset link. | +| `url` | [`String!`](#string) | URL of the asset link. | + +### `ReleaseAssetsInput` + +Fields that are available when modifying release assets. + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `links` | [`[ReleaseAssetLinkInput!]`](#releaseassetlinkinput) | A list of asset links to associate to the release. | + +### `SastCiConfigurationAnalyzersEntityInput` + +Represents the analyzers entity in SAST CI configuration. + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `enabled` | [`Boolean!`](#boolean) | State of the analyzer. | +| `name` | [`String!`](#string) | Name of analyzer. | +| `variables` | [`[SastCiConfigurationEntityInput!]`](#sastciconfigurationentityinput) | List of variables for the analyzer. | + +### `SastCiConfigurationEntityInput` + +Represents an entity in SAST CI configuration. + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `defaultValue` | [`String!`](#string) | Default value that is used if value is empty. | +| `field` | [`String!`](#string) | CI keyword of entity. | +| `value` | [`String!`](#string) | Current value of the entity. | + +### `SastCiConfigurationInput` + +Represents a CI configuration of SAST. + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `analyzers` | [`[SastCiConfigurationAnalyzersEntityInput!]`](#sastciconfigurationanalyzersentityinput) | List of analyzers and related variables for the SAST configuration. | +| `global` | [`[SastCiConfigurationEntityInput!]`](#sastciconfigurationentityinput) | List of global entities related to SAST configuration. | +| `pipeline` | [`[SastCiConfigurationEntityInput!]`](#sastciconfigurationentityinput) | List of pipeline entities related to SAST configuration. | + +### `SnippetBlobActionInputType` + +Represents an action to perform over a snippet file. + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `action` | [`SnippetBlobActionEnum!`](#snippetblobactionenum) | Type of input action. | +| `content` | [`String`](#string) | Snippet file content. | +| `filePath` | [`String!`](#string) | Path of the snippet file. | +| `previousPath` | [`String`](#string) | Previous path of the snippet file. | + +### `Timeframe` + +A time-frame defined as a closed inclusive range of two dates. + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `end` | [`Date!`](#date) | The end of the range. | +| `start` | [`Date!`](#date) | The start of the range. | + +### `UpdateDiffImagePositionInput` + +#### Arguments + +| Name | Type | Description | +| ---- | ---- | ----------- | +| `height` | [`Int`](#int) | Total height of the image. | +| `width` | [`Int`](#int) | Total width of the image. | +| `x` | [`Int`](#int) | X position of the note. | +| `y` | [`Int`](#int) | Y position of the note. | diff --git a/doc/api/vulnerabilities.md b/doc/api/vulnerabilities.md index a7412ca97f1..5ec769df08c 100644 --- a/doc/api/vulnerabilities.md +++ b/doc/api/vulnerabilities.md @@ -18,7 +18,7 @@ WARNING: This API is in the process of being deprecated and considered unstable. The response payload may be subject to change or breakage across GitLab releases. Please use the -[GraphQL API](graphql/reference/index.md#vulnerabilities) +[GraphQL API](graphql/reference/index.md#queryvulnerabilities) instead. Every API call to vulnerabilities must be [authenticated](README.md#authentication). diff --git a/doc/architecture/blueprints/graphql_api/index.md b/doc/architecture/blueprints/graphql_api/index.md index 99047eb5964..b856f7d96ad 100644 --- a/doc/architecture/blueprints/graphql_api/index.md +++ b/doc/architecture/blueprints/graphql_api/index.md @@ -143,11 +143,17 @@ state synchronization mechanisms and hooking into existing ones. ## Iterations -1. [Build comprehensive Grafana dashboard for GraphQL](https://gitlab.com/groups/gitlab-com/-/epics/1343) -1. [Improve logging of GraphQL requests in Elastic](https://gitlab.com/groups/gitlab-org/-/epics/4646) +### In the scope of the blueprint + +1. [GraphQL API architecture](https://gitlab.com/groups/gitlab-org/-/epics/5842) + 1. [Build comprehensive Grafana dashboard for GraphQL](https://gitlab.com/groups/gitlab-org/-/epics/5841) + 1. [Improve logging of GraphQL requests in Elastic](https://gitlab.com/groups/gitlab-org/-/epics/4646) + 1. [Build GraphQL query correlation mechanisms](https://gitlab.com/groups/gitlab-org/-/epics/5320) + 1. [Design a better data-informed deprecation policy](https://gitlab.com/groups/gitlab-org/-/epics/5321) + +### Future iterations + 1. [Build a scalable state synchronization for GraphQL](https://gitlab.com/groups/gitlab-org/-/epics/5319) -1. [Build GraphQL feature-to-query correlation mechanisms](https://gitlab.com/groups/gitlab-org/-/epics/5320) -1. [Design a better data-informed deprecation policy](https://gitlab.com/groups/gitlab-org/-/epics/5321) 1. [Add support for direct uploads for GraphQL](https://gitlab.com/gitlab-org/gitlab/-/issues/280819) 1. [Review GraphQL design choices related to security](https://gitlab.com/gitlab-org/security/gitlab/-/issues/339) @@ -179,6 +185,11 @@ DRIs: | Leadership | Darva Satcher | | Product | Patrick Deuley | | Engineering | Paul Slaughter | + +Domain Experts: + +| Area | Who +|------------------------------|------------------------| | Domain Expert / GraphQL | Charlie Ablett | | Domain Expert / GraphQL | Alex Kalderimis | | Domain Expert / GraphQL | Natalia Tepluhina | diff --git a/doc/development/usage_ping/dictionary.md b/doc/development/usage_ping/dictionary.md index 8f6b37105e3..a01dd71a643 100644 --- a/doc/development/usage_ping/dictionary.md +++ b/doc/development/usage_ping/dictionary.md @@ -1042,7 +1042,7 @@ Tiers: `premium`, `ultimate` ### `counts.grafana_integrated_projects` -Missing description +Total Grafana integrations attached to projects [YAML definition](https://gitlab.com/gitlab-org/gitlab/-/blob/master/config/metrics/counts_all/20210216180927_grafana_integrated_projects.yml) diff --git a/jest.config.base.js b/jest.config.base.js index ef7802ff724..997f3c254b4 100644 --- a/jest.config.base.js +++ b/jest.config.base.js @@ -101,7 +101,7 @@ module.exports = (path, options = {}) => { '^.+\\.(md|zip|png)$': 'jest-raw-loader', }, transformIgnorePatterns: [ - 'node_modules/(?!(@gitlab/ui|@gitlab/favicon-overlay|bootstrap-vue|three|monaco-editor|monaco-yaml|fast-mersenne-twister)/)', + 'node_modules/(?!(@gitlab/ui|@gitlab/favicon-overlay|bootstrap-vue|three|monaco-editor|monaco-yaml|fast-mersenne-twister|prosemirror-markdown)/)', ], timers: 'fake', testEnvironment: '/spec/frontend/environment.js', diff --git a/lib/banzai/filter/references/abstract_reference_filter.rb b/lib/banzai/filter/references/abstract_reference_filter.rb index 7109373dbce..2763e084de9 100644 --- a/lib/banzai/filter/references/abstract_reference_filter.rb +++ b/lib/banzai/filter/references/abstract_reference_filter.rb @@ -16,22 +16,9 @@ module Banzai REFERENCE_PLACEHOLDER = "_reference_#{SecureRandom.hex(16)}_" REFERENCE_PLACEHOLDER_PATTERN = %r{#{REFERENCE_PLACEHOLDER}(\d+)}.freeze - def self.object_class - # Implement in child class - # Example: MergeRequest - end - - def self.object_name - @object_name ||= object_class.name.underscore - end - - def self.object_sym - @object_sym ||= object_name.to_sym - end - # Public: Find references in text (like `!123` for merge requests) # - # AnyReferenceFilter.references_in(text) do |match, id, project_ref, matches| + # references_in(text) do |match, id, project_ref, matches| # object = find_object(project_ref, id) # "#{object.to_reference}" # end @@ -42,7 +29,7 @@ module Banzai # of the external project reference, and all of the matchdata. # # Returns a String replaced with the return of the block. - def self.references_in(text, pattern = object_class.reference_pattern) + def references_in(text, pattern = object_class.reference_pattern) text.gsub(pattern) do |match| if ident = identifier($~) yield match, ident, $~[:project], $~[:namespace], $~ @@ -52,17 +39,13 @@ module Banzai end end - def self.identifier(match_data) + def identifier(match_data) symbol = symbol_from_match(match_data) parse_symbol(symbol, match_data) if object_class.reference_valid?(symbol) end - def identifier(match_data) - self.class.identifier(match_data) - end - - def self.symbol_from_match(match) + def symbol_from_match(match) key = object_sym match[key] if match.names.include?(key.to_s) end @@ -72,7 +55,7 @@ module Banzai # # This method has the contract that if a string `ref` refers to a # record `record`, then `parse_symbol(ref) == record_identifier(record)`. - def self.parse_symbol(symbol, match_data) + def parse_symbol(symbol, match_data) symbol.to_i end @@ -84,21 +67,10 @@ module Banzai record.id end - def object_class - self.class.object_class - end - - def object_sym - self.class.object_sym - end - - def references_in(*args, &block) - self.class.references_in(*args, &block) - end - # Implement in child class # Example: project.merge_requests.find def find_object(parent_object, id) + raise NotImplementedError, "#{self.class} must implement method: #{__callee__}" end # Override if the link reference pattern produces a different ID (global @@ -110,6 +82,7 @@ module Banzai # Implement in child class # Example: project_merge_request_url def url_for_object(object, parent_object) + raise NotImplementedError, "#{self.class} must implement method: #{__callee__}" end def find_object_cached(parent_object, id) @@ -139,7 +112,7 @@ module Banzai def call return doc unless project || group || user - ref_pattern = object_class.reference_pattern + ref_pattern = object_reference_pattern link_pattern = object_class.link_reference_pattern # Compile often used regexps only once outside of the loop @@ -425,14 +398,6 @@ module Banzai group_ref end - def unescape_html_entities(text) - CGI.unescapeHTML(text.to_s) - end - - def escape_html_entities(text) - CGI.escapeHTML(text.to_s) - end - def escape_with_placeholders(text, placeholder_data) escaped = escape_html_entities(text) diff --git a/lib/banzai/filter/references/alert_reference_filter.rb b/lib/banzai/filter/references/alert_reference_filter.rb index 90fef536605..512d4028520 100644 --- a/lib/banzai/filter/references/alert_reference_filter.rb +++ b/lib/banzai/filter/references/alert_reference_filter.rb @@ -5,12 +5,9 @@ module Banzai module References class AlertReferenceFilter < IssuableReferenceFilter self.reference_type = :alert + self.object_class = AlertManagement::Alert - def self.object_class - AlertManagement::Alert - end - - def self.object_sym + def object_sym :alert end diff --git a/lib/banzai/filter/references/commit_range_reference_filter.rb b/lib/banzai/filter/references/commit_range_reference_filter.rb index ad79f8a173c..df7f42eaa70 100644 --- a/lib/banzai/filter/references/commit_range_reference_filter.rb +++ b/lib/banzai/filter/references/commit_range_reference_filter.rb @@ -8,12 +8,9 @@ module Banzai # This filter supports cross-project references. class CommitRangeReferenceFilter < AbstractReferenceFilter self.reference_type = :commit_range + self.object_class = CommitRange - def self.object_class - CommitRange - end - - def self.references_in(text, pattern = CommitRange.reference_pattern) + def references_in(text, pattern = object_reference_pattern) text.gsub(pattern) do |match| yield match, $~[:commit_range], $~[:project], $~[:namespace], $~ end diff --git a/lib/banzai/filter/references/commit_reference_filter.rb b/lib/banzai/filter/references/commit_reference_filter.rb index 457921bd07d..1baafeccbd9 100644 --- a/lib/banzai/filter/references/commit_reference_filter.rb +++ b/lib/banzai/filter/references/commit_reference_filter.rb @@ -8,12 +8,9 @@ module Banzai # This filter supports cross-project references. class CommitReferenceFilter < AbstractReferenceFilter self.reference_type = :commit + self.object_class = Commit - def self.object_class - Commit - end - - def self.references_in(text, pattern = Commit.reference_pattern) + def references_in(text, pattern = object_reference_pattern) text.gsub(pattern) do |match| yield match, $~[:commit], $~[:project], $~[:namespace], $~ end @@ -39,7 +36,7 @@ module Banzai end # The default behaviour is `#to_i` - we just pass the hash through. - def self.parse_symbol(sha_hash, _match) + def parse_symbol(sha_hash, _match) sha_hash end diff --git a/lib/banzai/filter/references/design_reference_filter.rb b/lib/banzai/filter/references/design_reference_filter.rb index 61234e61c15..de8d58de72f 100644 --- a/lib/banzai/filter/references/design_reference_filter.rb +++ b/lib/banzai/filter/references/design_reference_filter.rb @@ -33,6 +33,7 @@ module Banzai end self.reference_type = :design + self.object_class = ::DesignManagement::Design def find_object(project, identifier) records_per_parent[project][identifier] @@ -76,15 +77,11 @@ module Banzai super.merge(issue: design.issue_id) end - def self.object_class - ::DesignManagement::Design - end - - def self.object_sym + def object_sym :design end - def self.parse_symbol(raw, match_data) + def parse_symbol(raw, match_data) filename = match_data[:url_filename] iid = match_data[:issue].to_i Identifier.new(filename: CGI.unescape(filename), issue_iid: iid) diff --git a/lib/banzai/filter/references/external_issue_reference_filter.rb b/lib/banzai/filter/references/external_issue_reference_filter.rb index 247e20967df..1061a9917dd 100644 --- a/lib/banzai/filter/references/external_issue_reference_filter.rb +++ b/lib/banzai/filter/references/external_issue_reference_filter.rb @@ -10,10 +10,11 @@ module Banzai # This filter does not support cross-project references. class ExternalIssueReferenceFilter < ReferenceFilter self.reference_type = :external_issue + self.object_class = ExternalIssue # Public: Find `JIRA-123` issue references in text # - # ExternalIssueReferenceFilter.references_in(text, pattern) do |match, issue| + # references_in(text, pattern) do |match, issue| # "##{issue}" # end # @@ -22,7 +23,7 @@ module Banzai # Yields the String match and the String issue reference. # # Returns a String replaced with the return of the block. - def self.references_in(text, pattern) + def references_in(text, pattern = object_reference_pattern) text.gsub(pattern) do |match| yield match, $~[:issue] end @@ -32,27 +33,7 @@ module Banzai # Early return if the project isn't using an external tracker return doc if project.nil? || default_issues_tracker? - ref_pattern = issue_reference_pattern - ref_start_pattern = /\A#{ref_pattern}\z/ - - nodes.each_with_index do |node, index| - if text_node?(node) - replace_text_when_pattern_matches(node, index, ref_pattern) do |content| - issue_link_filter(content) - end - - elsif element_node?(node) - yield_valid_link(node) do |link, inner_html| - if link =~ ref_start_pattern - replace_link_node_with_href(node, index, link) do - issue_link_filter(link, link_content: inner_html) - end - end - end - end - end - - doc + super end private @@ -65,8 +46,8 @@ module Banzai # # Returns a String with `JIRA-123` references replaced with links. All # links have `gfm` and `gfm-issue` class names attached for styling. - def issue_link_filter(text, link_content: nil) - self.class.references_in(text, issue_reference_pattern) do |match, id| + def object_link_filter(text, pattern, link_content: nil, link_reference: false) + references_in(text) do |match, id| url = url_for_issue(id) klass = reference_class(:issue) data = data_attribute(project: project.id, external_issue: id) @@ -97,14 +78,10 @@ module Banzai external_issues_cached(:default_issues_tracker?) end - def issue_reference_pattern + def object_reference_pattern external_issues_cached(:external_issue_reference_pattern) end - def project - context[:project] - end - def issue_title "Issue in #{project.external_issue_tracker.title}" end diff --git a/lib/banzai/filter/references/feature_flag_reference_filter.rb b/lib/banzai/filter/references/feature_flag_reference_filter.rb index be9ded1ff43..0fb2b1b3b24 100644 --- a/lib/banzai/filter/references/feature_flag_reference_filter.rb +++ b/lib/banzai/filter/references/feature_flag_reference_filter.rb @@ -5,12 +5,9 @@ module Banzai module References class FeatureFlagReferenceFilter < IssuableReferenceFilter self.reference_type = :feature_flag + self.object_class = Operations::FeatureFlag - def self.object_class - Operations::FeatureFlag - end - - def self.object_sym + def object_sym :feature_flag end diff --git a/lib/banzai/filter/references/issue_reference_filter.rb b/lib/banzai/filter/references/issue_reference_filter.rb index eacf261b15f..1053501de7b 100644 --- a/lib/banzai/filter/references/issue_reference_filter.rb +++ b/lib/banzai/filter/references/issue_reference_filter.rb @@ -13,10 +13,7 @@ module Banzai # to reference issues from other GitLab projects. class IssueReferenceFilter < IssuableReferenceFilter self.reference_type = :issue - - def self.object_class - Issue - end + self.object_class = Issue def url_for_object(issue, project) return issue_path(issue, project) if only_path? diff --git a/lib/banzai/filter/references/iteration_reference_filter.rb b/lib/banzai/filter/references/iteration_reference_filter.rb index cf3d446147f..4d260983d98 100644 --- a/lib/banzai/filter/references/iteration_reference_filter.rb +++ b/lib/banzai/filter/references/iteration_reference_filter.rb @@ -6,10 +6,7 @@ module Banzai # The actual filter is implemented in the EE mixin class IterationReferenceFilter < AbstractReferenceFilter self.reference_type = :iteration - - def self.object_class - Iteration - end + self.object_class = Iteration end end end diff --git a/lib/banzai/filter/references/label_reference_filter.rb b/lib/banzai/filter/references/label_reference_filter.rb index a6a5eec5d9a..f9668d22d40 100644 --- a/lib/banzai/filter/references/label_reference_filter.rb +++ b/lib/banzai/filter/references/label_reference_filter.rb @@ -6,10 +6,7 @@ module Banzai # HTML filter that replaces label references with links. class LabelReferenceFilter < AbstractReferenceFilter self.reference_type = :label - - def self.object_class - Label - end + self.object_class = Label def find_object(parent_object, id) find_labels(parent_object).find(id) diff --git a/lib/banzai/filter/references/merge_request_reference_filter.rb b/lib/banzai/filter/references/merge_request_reference_filter.rb index 872c33f6873..6c5ad83d9ae 100644 --- a/lib/banzai/filter/references/merge_request_reference_filter.rb +++ b/lib/banzai/filter/references/merge_request_reference_filter.rb @@ -9,10 +9,7 @@ module Banzai # This filter supports cross-project references. class MergeRequestReferenceFilter < IssuableReferenceFilter self.reference_type = :merge_request - - def self.object_class - MergeRequest - end + self.object_class = MergeRequest def url_for_object(mr, project) h = Gitlab::Routing.url_helpers diff --git a/lib/banzai/filter/references/milestone_reference_filter.rb b/lib/banzai/filter/references/milestone_reference_filter.rb index 49110194ddc..c7e4b8b35a2 100644 --- a/lib/banzai/filter/references/milestone_reference_filter.rb +++ b/lib/banzai/filter/references/milestone_reference_filter.rb @@ -8,10 +8,7 @@ module Banzai include Gitlab::Utils::StrongMemoize self.reference_type = :milestone - - def self.object_class - Milestone - end + self.object_class = Milestone # Links to project milestones contain the IID, but when we're handling # 'regular' references, we need to use the global ID to disambiguate diff --git a/lib/banzai/filter/references/project_reference_filter.rb b/lib/banzai/filter/references/project_reference_filter.rb index 522c6e0f5f3..678d2aa3468 100644 --- a/lib/banzai/filter/references/project_reference_filter.rb +++ b/lib/banzai/filter/references/project_reference_filter.rb @@ -6,10 +6,11 @@ module Banzai # HTML filter that replaces project references with links. class ProjectReferenceFilter < ReferenceFilter self.reference_type = :project + self.object_class = Project # Public: Find `namespace/project>` project references in text # - # ProjectReferenceFilter.references_in(text) do |match, project| + # references_in(text) do |match, project| # "#{project}>" # end # @@ -18,33 +19,16 @@ module Banzai # Yields the String match, and the String project name. # # Returns a String replaced with the return of the block. - def self.references_in(text) - text.gsub(Project.markdown_reference_pattern) do |match| + def references_in(text, pattern = object_reference_pattern) + text.gsub(pattern) do |match| yield match, "#{$~[:namespace]}/#{$~[:project]}" end end - def call - ref_pattern = Project.markdown_reference_pattern - ref_pattern_start = /\A#{ref_pattern}\z/ + private - nodes.each_with_index do |node, index| - if text_node?(node) - replace_text_when_pattern_matches(node, index, ref_pattern) do |content| - project_link_filter(content) - end - elsif element_node?(node) - yield_valid_link(node) do |link, inner_html| - if link =~ ref_pattern_start - replace_link_node_with_href(node, index, link) do - project_link_filter(link, link_content: inner_html) - end - end - end - end - end - - doc + def object_reference_pattern + @object_reference_pattern ||= Project.markdown_reference_pattern end # Replace `namespace/project>` project references in text with links to the referenced @@ -55,8 +39,8 @@ module Banzai # # Returns a String with `namespace/project>` references replaced with links. All links # have `gfm` and `gfm-project` class names attached for styling. - def project_link_filter(text, link_content: nil) - self.class.references_in(text) do |match, project_path| + def object_link_filter(text, pattern, link_content: nil, link_reference: false) + references_in(text) do |match, project_path| cached_call(:banzai_url_for_object, match, path: [Project, project_path.downcase]) do if project = projects_hash[project_path.downcase] link_to_project(project, link_content: link_content) || match @@ -92,8 +76,6 @@ module Banzai refs.to_a end - private - def urls Gitlab::Routing.url_helpers end diff --git a/lib/banzai/filter/references/reference_filter.rb b/lib/banzai/filter/references/reference_filter.rb index dd15c43f5d8..a83cb12afd3 100644 --- a/lib/banzai/filter/references/reference_filter.rb +++ b/lib/banzai/filter/references/reference_filter.rb @@ -16,8 +16,14 @@ module Banzai include OutputSafety class << self + # Implement in child class + # Example: self.reference_type = :merge_request attr_accessor :reference_type + # Implement in child class + # Example: self.object_class = MergeRequest + attr_accessor :object_class + def call(doc, context = nil, result = nil) new(doc, context, result).call_and_update_nodes end @@ -34,6 +40,65 @@ module Banzai with_update_nodes { call } end + def call + ref_pattern_start = /\A#{object_reference_pattern}\z/ + + nodes.each_with_index do |node, index| + if text_node?(node) + replace_text_when_pattern_matches(node, index, object_reference_pattern) do |content| + object_link_filter(content, object_reference_pattern) + end + elsif element_node?(node) + yield_valid_link(node) do |link, inner_html| + if link =~ ref_pattern_start + replace_link_node_with_href(node, index, link) do + object_link_filter(link, object_reference_pattern, link_content: inner_html) + end + end + end + end + end + + doc + end + + # Public: Find references in text (like `!123` for merge requests) + # + # references_in(text) do |match, id, project_ref, matches| + # object = find_object(project_ref, id) + # "#{object.to_reference}" + # end + # + # text - String text to search. + # + # Yields the String match, the Integer referenced object ID, an optional String + # of the external project reference, and all of the matchdata. + # + # Returns a String replaced with the return of the block. + def references_in(text, pattern = object_reference_pattern) + raise NotImplementedError, "#{self.class} must implement method: #{__callee__}" + end + + # Iterates over all and text() nodes in a document. + # + # Nodes are skipped whenever their ancestor is one of the nodes returned + # by `ignore_ancestor_query`. Link tags are not processed if they have a + # "gfm" class or the "href" attribute is empty. + def each_node + return to_enum(__method__) unless block_given? + + doc.xpath(query).each do |node| + yield node + end + end + + # Returns an Array containing all HTML nodes. + def nodes + @nodes ||= each_node.to_a + end + + private + # Returns a data attribute String to attach to a reference link # # attributes - Hash, where the key becomes the data attribute name and the @@ -69,6 +134,13 @@ module Banzai end end + # Ensure that a :project key exists in context + # + # Note that while the key might exist, its value could be nil! + def validate + needs :project unless skip_project_check? + end + def project context[:project] end @@ -93,31 +165,6 @@ module Banzai "#{gfm_klass} has-tooltip" end - # Ensure that a :project key exists in context - # - # Note that while the key might exist, its value could be nil! - def validate - needs :project unless skip_project_check? - end - - # Iterates over all and text() nodes in a document. - # - # Nodes are skipped whenever their ancestor is one of the nodes returned - # by `ignore_ancestor_query`. Link tags are not processed if they have a - # "gfm" class or the "href" attribute is empty. - def each_node - return to_enum(__method__) unless block_given? - - doc.xpath(query).each do |node| - yield node - end - end - - # Returns an Array containing all HTML nodes. - def nodes - @nodes ||= each_node.to_a - end - # Yields the link's URL and inner HTML whenever the node is a valid tag. def yield_valid_link(node) link = unescape_link(node.attr('href').to_s) @@ -132,6 +179,14 @@ module Banzai CGI.unescape(href) end + def unescape_html_entities(text) + CGI.unescapeHTML(text.to_s) + end + + def escape_html_entities(text) + CGI.escapeHTML(text.to_s) + end + def replace_text_when_pattern_matches(node, index, pattern) return unless node.text =~ pattern @@ -161,7 +216,25 @@ module Banzai node.is_a?(Nokogiri::XML::Element) end - private + def object_class + self.class.object_class + end + + def object_reference_pattern + @object_reference_pattern ||= object_class.reference_pattern + end + + def object_name + @object_name ||= object_class.name.underscore + end + + def object_sym + @object_sym ||= object_name.to_sym + end + + def object_link_filter(text, pattern, link_content: nil, link_reference: false) + raise NotImplementedError, "#{self.class} must implement method: #{__callee__}" + end def query @query ||= %Q{descendant-or-self::text()[not(#{ignore_ancestor_query})] diff --git a/lib/banzai/filter/references/snippet_reference_filter.rb b/lib/banzai/filter/references/snippet_reference_filter.rb index bf7e0f78609..a2971e28de6 100644 --- a/lib/banzai/filter/references/snippet_reference_filter.rb +++ b/lib/banzai/filter/references/snippet_reference_filter.rb @@ -9,10 +9,7 @@ module Banzai # This filter supports cross-project references. class SnippetReferenceFilter < AbstractReferenceFilter self.reference_type = :snippet - - def self.object_class - Snippet - end + self.object_class = Snippet def find_object(project, id) return unless project.is_a?(Project) diff --git a/lib/banzai/filter/references/user_reference_filter.rb b/lib/banzai/filter/references/user_reference_filter.rb index 04665973f51..1709b607c2e 100644 --- a/lib/banzai/filter/references/user_reference_filter.rb +++ b/lib/banzai/filter/references/user_reference_filter.rb @@ -8,10 +8,11 @@ module Banzai # A special `@all` reference is also supported. class UserReferenceFilter < ReferenceFilter self.reference_type = :user + self.object_class = User # Public: Find `@user` user references in text # - # UserReferenceFilter.references_in(text) do |match, username| + # references_in(text) do |match, username| # "@#{user}" # end # @@ -20,8 +21,8 @@ module Banzai # Yields the String match, and the String user name. # # Returns a String replaced with the return of the block. - def self.references_in(text) - text.gsub(User.reference_pattern) do |match| + def references_in(text, pattern = object_reference_pattern) + text.gsub(pattern) do |match| yield match, $~[:user] end end @@ -29,28 +30,11 @@ module Banzai def call return doc if project.nil? && group.nil? && !skip_project_check? - ref_pattern = User.reference_pattern - ref_pattern_start = /\A#{ref_pattern}\z/ - - nodes.each_with_index do |node, index| - if text_node?(node) - replace_text_when_pattern_matches(node, index, ref_pattern) do |content| - user_link_filter(content) - end - elsif element_node?(node) - yield_valid_link(node) do |link, inner_html| - if link =~ ref_pattern_start - replace_link_node_with_href(node, index, link) do - user_link_filter(link, link_content: inner_html) - end - end - end - end - end - - doc + super end + private + # Replace `@user` user references in text with links to the referenced # user's profile page. # @@ -59,8 +43,8 @@ module Banzai # # Returns a String with `@user` references replaced with links. All links # have `gfm` and `gfm-project_member` class names attached for styling. - def user_link_filter(text, link_content: nil) - self.class.references_in(text) do |match, username| + def object_link_filter(text, pattern, link_content: nil, link_reference: false) + references_in(text, pattern) do |match, username| if username == 'all' && !skip_project_check? link_to_all(link_content: link_content) else @@ -100,8 +84,6 @@ module Banzai refs.to_a end - private - def urls Gitlab::Routing.url_helpers end diff --git a/lib/banzai/filter/references/vulnerability_reference_filter.rb b/lib/banzai/filter/references/vulnerability_reference_filter.rb index e5f2408eda4..ce484667fc0 100644 --- a/lib/banzai/filter/references/vulnerability_reference_filter.rb +++ b/lib/banzai/filter/references/vulnerability_reference_filter.rb @@ -6,16 +6,7 @@ module Banzai # The actual filter is implemented in the EE mixin class VulnerabilityReferenceFilter < IssuableReferenceFilter self.reference_type = :vulnerability - - def self.object_class - Vulnerability - end - - private - - def project - context[:project] - end + self.object_class = Vulnerability end end end diff --git a/lib/gitlab/graphql/deprecation.rb b/lib/gitlab/graphql/deprecation.rb index e0176e2d6e0..8b73eeb4e52 100644 --- a/lib/gitlab/graphql/deprecation.rb +++ b/lib/gitlab/graphql/deprecation.rb @@ -41,7 +41,7 @@ module Gitlab parts = [ "#{deprecated_in(format: :markdown)}.", reason_text, - replacement.then { |r| "Use: `#{r}`." if r } + replacement.then { |r| "Use: [`#{r}`](##{r.downcase.tr('.', '')})." if r } ].compact case context diff --git a/lib/gitlab/graphql/docs/helper.rb b/lib/gitlab/graphql/docs/helper.rb index f4173e26224..ce5fb575b54 100644 --- a/lib/gitlab/graphql/docs/helper.rb +++ b/lib/gitlab/graphql/docs/helper.rb @@ -5,11 +5,52 @@ return if Rails.env.production? module Gitlab module Graphql module Docs + # We assume a few things about the schema. We use the graphql-ruby gem, which enforces: + # - All mutations have a single input field named 'input' + # - All mutations have a payload type, named after themselves + # - All mutations have an input type, named after themselves + # If these things change, then some of this code will break. Such places + # are guarded with an assertion that our assumptions are not violated. + ViolatedAssumption = Class.new(StandardError) + + SUGGESTED_ACTION = <<~MSG + We expect it to be impossible to violate our assumptions about + how mutation arguments work. + + If that is not the case, then something has probably changed in the + way we generate our schema, perhaps in the library we use: graphql-ruby + + Please ask for help in the #f_graphql or #backend channels. + MSG + + CONNECTION_ARGS = %w[after before first last].to_set + + FIELD_HEADER = <<~MD + #### Fields + + | Name | Type | Description | + | ---- | ---- | ----------- | + MD + + ARG_HEADER = <<~MD + # Arguments + + | Name | Type | Description | + | ---- | ---- | ----------- | + MD + + CONNECTION_NOTE = <<~MD + This field returns a [connection](#connections). It accepts the + four standard [pagination arguments](#connection-pagination-arguments): + `before: String`, `after: String`, `first: Int`, `last: Int`. + MD + # Helper with functions to be used by HAML templates # This includes graphql-docs gem helpers class. # You can check the included module on: https://github.com/gjtorikian/graphql-docs/blob/v1.6.0/lib/graphql-docs/helpers.rb module Helper include GraphQLDocs::Helpers + include Gitlab::Utils::StrongMemoize def auto_generated_comment <<-MD.strip_heredoc @@ -30,44 +71,52 @@ module Gitlab # Template methods: # Methods that return chunks of Markdown for insertion into the document + def render_full_field(field, heading_level: 3, owner: nil) + conn = connection?(field) + args = field[:arguments].reject { |arg| conn && CONNECTION_ARGS.include?(arg[:name]) } + arg_owner = [owner, field[:name]] + + chunks = [ + render_name_and_description(field, level: heading_level, owner: owner), + render_return_type(field), + render_input_type(field), + render_connection_note(field), + render_argument_table(heading_level, args, arg_owner), + render_return_fields(field, owner: owner) + ] + + join(:block, chunks) + end + + def render_argument_table(level, args, owner) + arg_header = ('#' * level) + ARG_HEADER + render_field_table(arg_header, args, owner) + end + def render_name_and_description(object, owner: nil, level: 3) content = [] - content << "#{'#' * level} `#{object[:name]}`" + heading = '#' * level + name = [owner, object[:name]].compact.join('.') - if object[:description].present? - desc = object[:description].strip - desc += '.' unless desc.ends_with?('.') - end + content << "#{heading} `#{name}`" + content << render_description(object, owner, :block) - if object[:is_deprecated] - owner = Array.wrap(owner) - deprecation = schema_deprecation(owner, object[:name]) - content << (deprecation&.original_description || desc) - content << render_deprecation(object, owner, :block) - else - content << desc - end - - content.compact.join("\n\n") + join(:block, content) end - def render_return_type(query) - "Returns #{render_field_type(query[:type])}.\n" - end + def render_object_fields(fields, owner:, level_bump: 0) + return if fields.blank? - def sorted_by_name(objects) - return [] unless objects.present? + (with_args, no_args) = fields.partition { |f| args?(f) } + type_name = owner[:name] if owner + header_prefix = '#' * level_bump + sections = [ + render_simple_fields(no_args, type_name, header_prefix), + render_fields_with_arguments(with_args, type_name, header_prefix) + ] - objects.sort_by { |o| o[:name] } - end - - def render_field(field, owner) - render_row( - render_name(field, owner), - render_field_type(field[:type]), - render_description(field, owner, :inline) - ) + join(:block, sections) end def render_enum_value(enum, value) @@ -82,104 +131,278 @@ module Gitlab # Methods that return parts of the schema, or related information: - # We are ignoring connections and built in types for now, - # they should be added when queries are generated. - def objects - object_types = graphql_object_types.select do |object_type| - !object_type[:name]["__"] - end + def connection_object_types + objects.select { |t| t[:is_edge] || t[:is_connection] } + end - object_types.each do |type| - type[:fields] += type[:connections] + def object_types + objects.reject { |t| t[:is_edge] || t[:is_connection] || t[:is_payload] } + end + + def interfaces + graphql_interface_types.map { |t| t.merge(fields: t[:fields] + t[:connections]) } + end + + def fields_of(type_name) + graphql_operation_types + .find { |type| type[:name] == type_name } + .values_at(:fields, :connections) + .flatten + .then { |fields| sorted_by_name(fields) } + end + + # Place the arguments of the input types on the mutation itself. + # see: `#input_types` - this method must not call `#input_types` to avoid mutual recursion + def mutations + @mutations ||= sorted_by_name(graphql_mutation_types).map do |t| + inputs = t[:input_fields] + input = inputs.first + name = t[:name] + + assert!(inputs.one?, "Expected exactly 1 input field named #{name}. Found #{inputs.count} instead.") + assert!(input[:name] == 'input', "Expected the input of #{name} to be named 'input'") + + input_type_name = input[:type][:name] + input_type = graphql_input_object_types.find { |t| t[:name] == input_type_name } + assert!(input_type.present?, "Cannot find #{input_type_name} for #{name}.input") + + arguments = input_type[:input_fields] + seen_type!(input_type_name) + t.merge(arguments: arguments) end end - def queries - graphql_operation_types.find { |type| type[:name] == 'Query' }.to_h.values_at(:fields, :connections).flatten + # We assume that the mutations have been processed first, marking their + # inputs as `seen_type?` + def input_types + mutations # ensure that mutations have seen their inputs first + graphql_input_object_types.reject { |t| seen_type?(t[:name]) } end - # We ignore the built-in enum types. + # We ignore the built-in enum types, and sort values by name def enums - graphql_enum_types.select do |enum_type| - !enum_type[:name].in?(%w[__DirectiveLocation __TypeKind]) - end + graphql_enum_types + .reject { |type| type[:values].empty? } + .reject { |enum_type| enum_type[:name].start_with?('__') } + .map { |type| type.merge(values: sorted_by_name(type[:values])) } end private # DO NOT CALL THESE METHODS IN TEMPLATES # Template methods + def render_return_type(query) + return unless query[:type] # for example, mutations + + "Returns #{render_field_type(query[:type])}." + end + + def render_simple_fields(fields, type_name, header_prefix) + render_field_table(header_prefix + FIELD_HEADER, fields, type_name) + end + + def render_fields_with_arguments(fields, type_name, header_prefix) + return if fields.empty? + + level = 5 + header_prefix.length + sections = sorted_by_name(fields).map do |f| + render_full_field(f, heading_level: level, owner: type_name) + end + + <<~MD.chomp + #{header_prefix}#### Fields with arguments + + #{join(:block, sections)} + MD + end + + def render_field_table(header, fields, owner) + return if fields.empty? + + fields = sorted_by_name(fields) + header + join(:table, fields.map { |f| render_field(f, owner) }) + end + + def render_field(field, owner) + render_row( + render_name(field, owner), + render_field_type(field[:type]), + render_description(field, owner, :inline) + ) + end + + def render_return_fields(mutation, owner:) + fields = mutation[:return_fields] + return if fields.blank? + + name = owner.to_s + mutation[:name] + render_object_fields(fields, owner: { name: name }) + end + + def render_connection_note(field) + return unless connection?(field) + + CONNECTION_NOTE.chomp + end + def render_row(*values) "| #{values.map { |val| val.to_s.squish }.join(' | ')} |" end def render_name(object, owner = nil) rendered_name = "`#{object[:name]}`" - rendered_name += ' **{warning-solid}**' if object[:is_deprecated] - rendered_name + rendered_name += ' **{warning-solid}**' if deprecated?(object, owner) + + return rendered_name unless owner + + owner = Array.wrap(owner).join('') + id = (owner + object[:name]).downcase + + %() + rendered_name end # Returns the object description. If the object has been deprecated, # the deprecation reason will be returned in place of the description. def render_description(object, owner = nil, context = :block) - owner = Array.wrap(owner) - return render_deprecation(object, owner, context) if object[:is_deprecated] - return if object[:description].blank? + if deprecated?(object, owner) + render_deprecation(object, owner, context) + else + render_description_of(object) + end + end + + def deprecated?(object, owner) + return true if object[:is_deprecated] # only populated for fields, not arguments! + + key = [*Array.wrap(owner), object[:name]].join('.') + deprecations.key?(key) + end + + def render_description_of(object) + desc = if object[:is_edge] + base = object[:name].chomp('Edge') + "The edge type for [`#{base}`](##{base.downcase})." + elsif object[:is_connection] + base = object[:name].chomp('Connection') + "The connection type for [`#{base}`](##{base.downcase})." + else + object[:description]&.strip + end + + return if desc.blank? - desc = object[:description].strip desc += '.' unless desc.ends_with?('.') desc end def render_deprecation(object, owner, context) + buff = [] deprecation = schema_deprecation(owner, object[:name]) - return deprecation.markdown(context: context) if deprecation - reason = object[:deprecation_reason] || 'Use of this is deprecated.' - "**Deprecated:** #{reason}" + buff << (deprecation&.original_description || render_description_of(object)) if context == :block + buff << if deprecation + deprecation.markdown(context: context) + else + "**Deprecated:** #{object[:deprecation_reason]}" + end + + join(context, buff) end def render_field_type(type) "[`#{type[:info]}`](##{type[:name].downcase})" end + def join(context, chunks) + chunks.compact! + return if chunks.blank? + + case context + when :block + chunks.join("\n\n") + when :inline + chunks.join(" ").squish.presence + when :table + chunks.join("\n") + end + end + # Queries + def sorted_by_name(objects) + return [] unless objects.present? + + objects.sort_by { |o| o[:name] } + end + + def connection?(field) + type_name = field.dig(:type, :name) + type_name.present? && type_name.ends_with?('Connection') + end + + # We are ignoring connections and built in types for now, + # they should be added when queries are generated. + def objects + strong_memoize(:objects) do + mutations = schema.mutation&.fields&.keys&.to_set || [] + + graphql_object_types + .reject { |object_type| object_type[:name]["__"] } # We ignore introspection types. + .map do |type| + name = type[:name] + type.merge( + is_edge: name.ends_with?('Edge'), + is_connection: name.ends_with?('Connection'), + is_payload: name.ends_with?('Payload') && mutations.include?(name.chomp('Payload').camelcase(:lower)), + fields: type[:fields] + type[:connections] + ) + end + end + end + + def args?(field) + args = field[:arguments] + return false if args.blank? + return true unless connection?(field) + + args.any? { |arg| CONNECTION_ARGS.exclude?(arg[:name]) } + end + # returns the deprecation information for a field or argument # See: Gitlab::Graphql::Deprecation def schema_deprecation(type_name, field_name) - schema_member(type_name, field_name)&.deprecation + key = [*Array.wrap(type_name), field_name].join('.') + deprecations[key] end - # Return a part of the schema. - # - # This queries the Schema by owner and name to find: - # - # - fields (e.g. `schema_member('Query', 'currentUser')`) - # - arguments (e.g. `schema_member(['Query', 'project], 'fullPath')`) - def schema_member(type_name, field_name) - type_name = Array.wrap(type_name) - if type_name.size == 2 - arg_name = field_name - type_name, field_name = type_name - else - type_name = type_name.first - arg_name = nil + def render_input_type(query) + input_field = query[:input_fields]&.first + return unless input_field + + "Input type: `#{input_field[:type][:name]}`" + end + + def deprecations + strong_memoize(:deprecations) do + mapping = {} + + schema.types.each do |type_name, type| + next unless type.kind.fields? + + type.fields.each do |field_name, field| + mapping["#{type_name}.#{field_name}"] = field.try(:deprecation) + field.arguments.each do |arg_name, arg| + mapping["#{type_name}.#{field_name}.#{arg_name}"] = arg.try(:deprecation) + end + end + end + + mapping.compact end + end - return if type_name.nil? || field_name.nil? - - type = schema.types[type_name] - return unless type && type.kind.fields? - - field = type.fields[field_name] - return field if arg_name.nil? - - args = field.arguments - is_mutation = field.mutation && field.mutation <= ::Mutations::BaseMutation - args = args['input'].type.unwrap.arguments if is_mutation - - args[arg_name] + def assert!(claim, message) + raise ViolatedAssumption, "#{message}\n#{SUGGESTED_ACTION}" unless claim end end end diff --git a/lib/gitlab/graphql/docs/renderer.rb b/lib/gitlab/graphql/docs/renderer.rb index 497567f9389..ae0898e6198 100644 --- a/lib/gitlab/graphql/docs/renderer.rb +++ b/lib/gitlab/graphql/docs/renderer.rb @@ -24,6 +24,7 @@ module Gitlab @layout = Haml::Engine.new(File.read(template)) @parsed_schema = GraphQLDocs::Parser.new(schema.graphql_definition, {}).parse @schema = schema + @seen = Set.new end def contents @@ -37,6 +38,16 @@ module Gitlab FileUtils.mkdir_p(@output_dir) File.write(filename, contents) end + + private + + def seen_type?(name) + @seen.include?(name) + end + + def seen_type!(name) + @seen << name + end end end end diff --git a/lib/gitlab/graphql/docs/templates/default.md.haml b/lib/gitlab/graphql/docs/templates/default.md.haml index fe73297d0d9..57f4409d76f 100644 --- a/lib/gitlab/graphql/docs/templates/default.md.haml +++ b/lib/gitlab/graphql/docs/templates/default.md.haml @@ -26,17 +26,81 @@ The `Query` type contains the API's top-level entry points for all executable queries. \ -- sorted_by_name(queries).each do |query| - = render_name_and_description(query, owner: 'Query') +- fields_of('Query').each do |field| + = render_full_field(field, heading_level: 3, owner: 'Query') + \ + +:plain + ## `Mutation` type + + The `Mutation` type contains all the mutations you can execute. + + All mutations receive their arguments in a single input object named `input`, and all mutations + support at least a return field `errors` containing a list of error messages. + + All input objects may have a `clientMutationId: String` field, identifying the mutation. + + For example: + + ```graphql + mutation($id: NoteableID!, $body: String!) { + createNote(input: { noteableId: $id, body: $body }) { + errors + } + } + ``` +\ + +- mutations.each do |field| + = render_full_field(field, heading_level: 3, owner: 'Mutation') + \ + +:plain + ## Connections + + Some types in our schema are `Connection` types - they represent a paginated + collection of edges between two nodes in the graph. These follow the + [Relay cursor connections specification](https://relay.dev/graphql/connections.htm). + + ### Pagination arguments {#connection-pagination-arguments} + + All connection fields support the following pagination arguments: + + | Name | Type | Description | + |------|------|-------------| + | `after` | [`String`](#string) | Returns the elements in the list that come after the specified cursor. | + | `before` | [`String`](#string) | Returns the elements in the list that come before the specified cursor. | + | `first` | [`Int`](#int) | Returns the first _n_ elements from the list. | + | `last` | [`Int`](#int) | Returns the last _n_ elements from the list. | + + Since these arguments are common to all connection fields, they are not repeated for each connection. + + ### Connection fields + + All connections have at least the following fields: + + | Name | Type | Description | + |------|------|-------------| + | `pageInfo` | [`PageInfo!`](#pageinfo) | Pagination information. | + | `edges` | `[edge!]` | The edges. | + | `nodes` | `[item!]` | The items in the current page. | + + The precise type of `Edge` and `Item` depends on the kind of connection. A + [`UserConnection`](#userconnection) will have nodes that have the type + [`[User!]`](#user), and edges that have the type [`UserEdge`](#useredge). + + ### Connection types + + Some of the types in the schema exist solely to model connections. Each connection + has a distinct, named type, with a distinct named edge type. These are listed separately + below. +\ + +- connection_object_types.each do |type| + = render_name_and_description(type, level: 4) + \ + = render_object_fields(type[:fields], owner: type, level_bump: 1) \ - = render_return_type(query) - - unless query[:arguments].empty? - ~ "#### Arguments\n" - ~ "| Name | Type | Description |" - ~ "| ---- | ---- | ----------- |" - - sorted_by_name(query[:arguments]).each do |argument| - = render_field(argument, query[:type][:name]) - \ :plain ## Object types @@ -44,22 +108,20 @@ Object types represent the resources that the GitLab GraphQL API can return. They contain _fields_. Each field has its own type, which will either be one of the basic GraphQL [scalar types](https://graphql.org/learn/schema/#scalar-types) - (e.g.: `String` or `Boolean`) or other object types. + (e.g.: `String` or `Boolean`) or other object types. Fields may have arguments. + Fields with arguments are exactly like top-level queries, and are listed beneath + the table of fields for each object type. For more information, see [Object Types and Fields](https://graphql.org/learn/schema/#object-types-and-fields) on `graphql.org`. \ -- objects.each do |type| - - unless type[:fields].empty? - = render_name_and_description(type) - \ - ~ "| Field | Type | Description |" - ~ "| ----- | ---- | ----------- |" - - sorted_by_name(type[:fields]).each do |field| - = render_field(field, type[:name]) - \ +- object_types.each do |type| + = render_name_and_description(type) + \ + = render_object_fields(type[:fields], owner: type) + \ :plain ## Enumeration types @@ -73,14 +135,13 @@ \ - enums.each do |enum| - - unless enum[:values].empty? - = render_name_and_description(enum) - \ - ~ "| Value | Description |" - ~ "| ----- | ----------- |" - - sorted_by_name(enum[:values]).each do |value| - = render_enum_value(enum, value) - \ + = render_name_and_description(enum) + \ + ~ "| Value | Description |" + ~ "| ----- | ----------- |" + - enum[:values].each do |value| + = render_enum_value(enum, value) + \ :plain ## Scalar types @@ -133,7 +194,7 @@ ### Interfaces \ -- graphql_interface_types.each do |type| +- interfaces.each do |type| = render_name_and_description(type, level: 4) \ Implementations: @@ -141,8 +202,21 @@ - type[:implemented_by].each do |type_name| ~ "- [`#{type_name}`](##{type_name.downcase})" \ - ~ "| Field | Type | Description |" - ~ "| ----- | ---- | ----------- |" - - sorted_by_name(type[:fields] + type[:connections]).each do |field| - = render_field(field, type[:name]) + = render_object_fields(type[:fields], owner: type, level_bump: 1) + \ + +:plain + ## Input types + + Types that may be used as arguments (all scalar types may also + be used as arguments). + + Only general use input types are listed here. For mutation input types, + see the associated mutation type above. +\ + +- input_types.each do |type| + = render_name_and_description(type) + \ + = render_argument_table(3, type[:input_fields], type[:name]) \ diff --git a/locale/gitlab.pot b/locale/gitlab.pot index a6e1c5ae782..865a6413e20 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -15064,9 +15064,15 @@ msgstr "" msgid "Go to metrics" msgstr "" +msgid "Go to next page" +msgstr "" + msgid "Go to parent" msgstr "" +msgid "Go to previous page" +msgstr "" + msgid "Go to project" msgstr "" @@ -32460,6 +32466,9 @@ msgstr "" msgid "This project is archived and cannot be commented on." msgstr "" +msgid "This project is licensed under the %{strong_start}%{license_name}%{strong_end}." +msgstr "" + msgid "This project manages its dependencies using %{strong_start}%{manager_name}%{strong_end}" msgstr "" @@ -37878,9 +37887,6 @@ msgstr "" msgid "no approvers" msgstr "" -msgid "no contributions" -msgstr "" - msgid "no expiration" msgstr "" diff --git a/spec/controllers/admin/users_controller_spec.rb b/spec/controllers/admin/users_controller_spec.rb index 6faec315eb6..6d64ef86452 100644 --- a/spec/controllers/admin/users_controller_spec.rb +++ b/spec/controllers/admin/users_controller_spec.rb @@ -34,6 +34,29 @@ RSpec.describe Admin::UsersController do let(:target_id) { 'i_analytics_cohorts' } let(:request_params) { { tab: 'cohorts' } } end + + context 'pagination' do + context 'when number of users is over the pagination limit' do + before do + stub_const('Admin::UsersController::PAGINATION_WITH_COUNT_LIMIT', 5) + allow(Gitlab::Database::Count).to receive(:approximate_counts).with([User]).and_return({ User => 6 }) + end + + it 'marks the relation for pagination without counts' do + get :index + + expect(assigns(:users)).to be_a(Kaminari::PaginatableWithoutCount) + end + end + + context 'when number of users is below the pagination limit' do + it 'marks the relation for pagination with counts' do + get :index + + expect(assigns(:users)).not_to be_a(Kaminari::PaginatableWithoutCount) + end + end + end end describe 'GET :id' do diff --git a/spec/controllers/projects/settings/ci_cd_controller_spec.rb b/spec/controllers/projects/settings/ci_cd_controller_spec.rb index d953249c139..4c7ae02ed50 100644 --- a/spec/controllers/projects/settings/ci_cd_controller_spec.rb +++ b/spec/controllers/projects/settings/ci_cd_controller_spec.rb @@ -14,6 +14,10 @@ RSpec.describe Projects::Settings::CiCdController do end describe 'GET show' do + let_it_be(:parent_group) { create(:group) } + let_it_be(:group) { create(:group, parent: parent_group) } + let_it_be(:other_project) { create(:project, group: group) } + it 'renders show with 200 status code' do get :show, params: { namespace_id: project.namespace, project_id: project } @@ -22,12 +26,9 @@ RSpec.describe Projects::Settings::CiCdController do end context 'with group runners' do - let(:parent_group) { create(:group) } - let(:group) { create(:group, parent: parent_group) } - let(:group_runner) { create(:ci_runner, :group, groups: [group]) } - let(:other_project) { create(:project, group: group) } - let!(:project_runner) { create(:ci_runner, :project, projects: [other_project]) } - let!(:shared_runner) { create(:ci_runner, :instance) } + let_it_be(:group_runner) { create(:ci_runner, :group, groups: [group]) } + let_it_be(:project_runner) { create(:ci_runner, :project, projects: [other_project]) } + let_it_be(:shared_runner) { create(:ci_runner, :instance) } it 'sets assignable project runners only' do group.add_maintainer(user) @@ -37,6 +38,33 @@ RSpec.describe Projects::Settings::CiCdController do expect(assigns(:assignable_runners)).to contain_exactly(project_runner) end end + + context 'prevents N+1 queries for tags' do + render_views + + def show + get :show, params: { namespace_id: project.namespace, project_id: project } + end + + it 'has the same number of queries with one tag or with many tags', :request_store do + group.add_maintainer(user) + + show # warmup + + # with one tag + create(:ci_runner, :instance, tag_list: %w(shared_runner)) + create(:ci_runner, :project, projects: [other_project], tag_list: %w(project_runner)) + create(:ci_runner, :group, groups: [group], tag_list: %w(group_runner)) + control = ActiveRecord::QueryRecorder.new { show } + + # with several tags + create(:ci_runner, :instance, tag_list: %w(shared_runner tag2 tag3)) + create(:ci_runner, :project, projects: [other_project], tag_list: %w(project_runner tag2 tag3)) + create(:ci_runner, :group, groups: [group], tag_list: %w(group_runner tag2 tag3)) + + expect { show }.not_to exceed_query_limit(control) + end + end end describe '#reset_cache' do diff --git a/spec/experiments/concerns/project_commit_count_spec.rb b/spec/experiments/concerns/project_commit_count_spec.rb new file mode 100644 index 00000000000..5616f167cb4 --- /dev/null +++ b/spec/experiments/concerns/project_commit_count_spec.rb @@ -0,0 +1,41 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe ProjectCommitCount do + let(:klass) { Class.include(ProjectCommitCount) } + let(:instance) { klass.new } + + describe '#commit_count_for' do + subject { instance.commit_count_for(project, default_count: 42, caller_info: :identifiable) } + + let(:project) { create(:project, :repository) } + + context 'when a root_ref exists' do + it 'returns commit count from GitlayClient' do + allow(Gitlab::GitalyClient).to receive(:call).and_call_original + allow(Gitlab::GitalyClient).to receive(:call).with(anything, :commit_service, :count_commits, anything, anything) + .and_return(double(count: 4)) + + expect(subject).to eq(4) + end + end + + context 'when a root_ref does not exist' do + let(:project) { create(:project, :empty_repo) } + + it 'returns the default_count' do + expect(subject).to eq(42) + end + end + + it "handles exceptions by logging them with exception_details and returns the default_count" do + allow(Gitlab::GitalyClient).to receive(:call).and_call_original + allow(Gitlab::GitalyClient).to receive(:call).with(anything, :commit_service, :count_commits, anything, anything).and_raise(e = StandardError.new('_message_')) + + expect(Gitlab::ErrorTracking).to receive(:track_exception).with(e, caller_info: :identifiable) + + expect(subject).to eq(42) + end + end +end diff --git a/spec/experiments/empty_repo_upload_experiment_spec.rb b/spec/experiments/empty_repo_upload_experiment_spec.rb new file mode 100644 index 00000000000..0ab42375a5f --- /dev/null +++ b/spec/experiments/empty_repo_upload_experiment_spec.rb @@ -0,0 +1,43 @@ +# frozen_string_literal: true + +require 'spec_helper' + +RSpec.describe EmptyRepoUploadExperiment, :experiment do + subject { described_class.new(project: project) } + + let(:project) { create(:project, :repository) } + + describe '#track_initial_write' do + it "tracks an event for the first commit on a project" do + expect(subject).to receive(:commit_count_for).with(project, max_count: described_class::INITIAL_COMMIT_COUNT, experiment: 'empty_repo_upload').and_return(1) + + expect(subject).to receive(:track).with(:initial_write, project: project).and_call_original + + subject.track_initial_write + end + + it "doesn't track an event for projects with a commit count more than 1" do + expect(subject).to receive(:commit_count_for).and_return(2) + + expect(subject).not_to receive(:track) + + subject.track_initial_write + end + + it "doesn't track when we generally shouldn't" do + allow(subject).to receive(:should_track?).and_return(false) + + expect(subject).not_to receive(:track) + + subject.track_initial_write + end + + it "doesn't track if the project is older" do + expect(project).to receive(:created_at).and_return(described_class::TRACKING_START_DATE - 1.minute) + + expect(subject).not_to receive(:track) + + subject.track_initial_write + end + end +end diff --git a/spec/experiments/new_project_readme_experiment_spec.rb b/spec/experiments/new_project_readme_experiment_spec.rb index 87446394bff..ac82c1d71eb 100644 --- a/spec/experiments/new_project_readme_experiment_spec.rb +++ b/spec/experiments/new_project_readme_experiment_spec.rb @@ -29,24 +29,15 @@ RSpec.describe NewProjectReadmeExperiment, :experiment do context "when tracking initial writes" do let!(:project) { create(:project, :repository) } - def stub_gitaly_count(count = 1) - allow(Gitlab::GitalyClient).to receive(:call).and_call_original - allow(Gitlab::GitalyClient).to receive(:call).with(anything, :commit_service, :count_commits, anything, anything) - .and_return(double(count: count)) - end - - before do - stub_gitaly_count - end - it "tracks an event for the first commit on a project with a repository" do + expect(subject).to receive(:commit_count_for).with(project, default_count: described_class::INITIAL_WRITE_LIMIT, max_count: described_class::INITIAL_WRITE_LIMIT, experiment: 'new_project_readme').and_return(1) expect(subject).to receive(:track).with(:write, property: project.created_at.to_s, value: 1).and_call_original subject.track_initial_writes(project) end it "tracks an event for the second commit on a project with a repository" do - stub_gitaly_count(2) + allow(subject).to receive(:commit_count_for).and_return(2) expect(subject).to receive(:track).with(:write, property: project.created_at.to_s, value: 2).and_call_original @@ -54,7 +45,7 @@ RSpec.describe NewProjectReadmeExperiment, :experiment do end it "doesn't track if the repository has more then 2 commits" do - stub_gitaly_count(3) + allow(subject).to receive(:commit_count_for).and_return(3) expect(subject).not_to receive(:track) @@ -76,14 +67,5 @@ RSpec.describe NewProjectReadmeExperiment, :experiment do subject.track_initial_writes(project) end - - it "handles exceptions by logging them" do - allow(Gitlab::GitalyClient).to receive(:call).with(anything, :commit_service, :count_commits, anything, anything) - .and_raise(e = StandardError.new('_message_')) - - expect(Gitlab::ErrorTracking).to receive(:track_exception).with(e, experiment: 'new_project_readme') - - subject.track_initial_writes(project) - end end end diff --git a/spec/frontend/environments/environment_table_spec.js b/spec/frontend/environments/environment_table_spec.js index 863c4526bb9..b08fa8d5117 100644 --- a/spec/frontend/environments/environment_table_spec.js +++ b/spec/frontend/environments/environment_table_spec.js @@ -359,7 +359,7 @@ describe('Environment table', () => { }, }, { - name: 'review/master', + name: 'review/main', last_deployment: { created_at: '2019-02-17T16:26:15.125Z', }, @@ -374,7 +374,7 @@ describe('Environment table', () => { }, ]; const [production, review, staging] = mockItems; - const [addcibuildstatus, master] = mockItems[1].children; + const [addcibuildstatus, main] = mockItems[1].children; factory({ propsData: { @@ -390,7 +390,7 @@ describe('Environment table', () => { production.name, ]); - expect(wrapper.vm.sortedEnvironments[0].children).toEqual([master, addcibuildstatus]); + expect(wrapper.vm.sortedEnvironments[0].children).toEqual([main, addcibuildstatus]); }); }); }); diff --git a/spec/frontend/environments/mock_data.js b/spec/frontend/environments/mock_data.js index 4ad005f55c3..9ba71b78c2f 100644 --- a/spec/frontend/environments/mock_data.js +++ b/spec/frontend/environments/mock_data.js @@ -76,8 +76,8 @@ const environment = { iid: 6, sha: '500aabcb17c97bdcf2d0c410b70cb8556f0362dd', ref: { - name: 'master', - ref_url: 'root/ci-folders/tree/master', + name: 'main', + ref_url: 'root/ci-folders/tree/main', }, tag: true, 'last?': true, @@ -130,8 +130,8 @@ const environment = { iid: 27, sha: '1132df044b73943943c949e7ac2c2f120a89bf59', ref: { - name: 'master', - ref_path: '/root/environment-test/-/tree/master', + name: 'main', + ref_path: '/root/environment-test/-/tree/main', }, status: 'running', created_at: '2020-12-04T19:57:49.514Z', diff --git a/spec/frontend/members/components/table/members_table_spec.js b/spec/frontend/members/components/table/members_table_spec.js index 5cf1f40a8f4..5308d7651a3 100644 --- a/spec/frontend/members/components/table/members_table_spec.js +++ b/spec/frontend/members/components/table/members_table_spec.js @@ -1,4 +1,4 @@ -import { GlBadge, GlTable } from '@gitlab/ui'; +import { GlBadge, GlPagination, GlTable } from '@gitlab/ui'; import { getByText as getByTextHelper, getByTestId as getByTestIdHelper, @@ -6,6 +6,7 @@ import { } from '@testing-library/dom'; import { mount, createLocalVue, createWrapper } from '@vue/test-utils'; import Vuex from 'vuex'; +import { extendedWrapper } from 'helpers/vue_test_utils_helper'; import CreatedAt from '~/members/components/table/created_at.vue'; import ExpirationDatepicker from '~/members/components/table/expiration_datepicker.vue'; import ExpiresAt from '~/members/components/table/expires_at.vue'; @@ -16,7 +17,13 @@ import MembersTable from '~/members/components/table/members_table.vue'; import RoleDropdown from '~/members/components/table/role_dropdown.vue'; import { MEMBER_TYPES } from '~/members/constants'; import * as initUserPopovers from '~/user_popovers'; -import { member as memberMock, directMember, invite, accessRequest } from '../../mock_data'; +import { + member as memberMock, + directMember, + invite, + accessRequest, + pagination, +} from '../../mock_data'; const localVue = createLocalVue(); localVue.use(Vuex); @@ -36,6 +43,7 @@ describe('MembersTable', () => { table: { 'data-qa-selector': 'members_list' }, tr: { 'data-qa-selector': 'member_row' }, }, + pagination, ...state, }, }, @@ -66,6 +74,8 @@ describe('MembersTable', () => { }); }; + const url = 'https://localhost/foo-bar/-/project_members'; + const getByText = (text, options) => createWrapper(getByTextHelper(wrapper.element, text, options)); @@ -78,6 +88,14 @@ describe('MembersTable', () => { `[data-label="${tableCellLabel}"][role="cell"]`, ); + const findPagination = () => extendedWrapper(wrapper.find(GlPagination)); + + const expectCorrectLinkToPage2 = () => { + expect(findPagination().findByText('2', { selector: 'a' }).attributes('href')).toBe( + `${url}?page=2`, + ); + }; + afterEach(() => { wrapper.destroy(); wrapper = null; @@ -219,4 +237,80 @@ describe('MembersTable', () => { expect(findTable().find('tbody tr').attributes('data-qa-selector')).toBe('member_row'); }); + + describe('when required pagination data is provided', () => { + beforeEach(() => { + delete window.location; + }); + + it('renders `gl-pagination` component with correct props', () => { + window.location = new URL(url); + + createComponent(); + + const glPagination = findPagination(); + + expect(glPagination.exists()).toBe(true); + expect(glPagination.props()).toMatchObject({ + value: pagination.currentPage, + perPage: pagination.perPage, + totalItems: pagination.totalItems, + prevText: 'Prev', + nextText: 'Next', + labelNextPage: 'Go to next page', + labelPrevPage: 'Go to previous page', + align: 'center', + }); + }); + + it('uses `pagination.paramName` to generate the pagination links', () => { + window.location = new URL(url); + + createComponent({ + pagination: { + currentPage: 1, + perPage: 5, + totalItems: 10, + paramName: 'page', + }, + }); + + expectCorrectLinkToPage2(); + }); + + it('removes any url params defined as `null` in the `params` attribute', () => { + window.location = new URL(`${url}?search_groups=foo`); + + createComponent({ + pagination: { + currentPage: 1, + perPage: 5, + totalItems: 10, + paramName: 'page', + params: { search_groups: null }, + }, + }); + + expectCorrectLinkToPage2(); + }); + }); + + describe.each` + attribute | value + ${'paramName'} | ${null} + ${'currentPage'} | ${null} + ${'perPage'} | ${null} + ${'totalItems'} | ${0} + `('when pagination.$attribute is $value', ({ attribute, value }) => { + it('does not render `gl-pagination`', () => { + createComponent({ + pagination: { + ...pagination, + [attribute]: value, + }, + }); + + expect(findPagination().exists()).toBe(false); + }); + }); }); diff --git a/spec/frontend/members/index_spec.js b/spec/frontend/members/index_spec.js index 8b645d9b059..751c4674a60 100644 --- a/spec/frontend/members/index_spec.js +++ b/spec/frontend/members/index_spec.js @@ -2,7 +2,7 @@ import { createWrapper } from '@vue/test-utils'; import MembersApp from '~/members/components/app.vue'; import { MEMBER_TYPES } from '~/members/constants'; import { initMembersApp } from '~/members/index'; -import { membersJsonString, members } from './mock_data'; +import { membersJsonString, members, paginationJsonString, pagination } from './mock_data'; describe('initMembersApp', () => { let el; @@ -24,6 +24,7 @@ describe('initMembersApp', () => { beforeEach(() => { el = document.createElement('div'); el.setAttribute('data-members', membersJsonString); + el.setAttribute('data-pagination', paginationJsonString); el.setAttribute('data-source-id', '234'); el.setAttribute('data-can-manage-members', 'true'); el.setAttribute('data-member-path', '/groups/foo-bar/-/group_members/:id'); @@ -50,6 +51,12 @@ describe('initMembersApp', () => { expect(vm.$store.state[MEMBER_TYPES.user].members).toEqual(members); }); + it('parses and sets `pagination` in Vuex store', () => { + setup(); + + expect(vm.$store.state[MEMBER_TYPES.user].pagination).toEqual(pagination); + }); + it('sets `tableFields` in Vuex store', () => { setup(); diff --git a/spec/frontend/members/mock_data.js b/spec/frontend/members/mock_data.js index a47b7ab2118..6e1ee979839 100644 --- a/spec/frontend/members/mock_data.js +++ b/spec/frontend/members/mock_data.js @@ -79,3 +79,19 @@ export const directMember = { ...member, isDirectMember: true }; export const inheritedMember = { ...member, isDirectMember: false }; export const member2faEnabled = { ...member, user: { ...member.user, twoFactorEnabled: true } }; + +export const paginationJsonString = JSON.stringify({ + current_page: 1, + per_page: 5, + total_items: 10, + param_name: 'page', + params: { search_groups: null }, +}); + +export const pagination = { + currentPage: 1, + perPage: 5, + totalItems: 10, + paramName: 'page', + params: { search_groups: null }, +}; diff --git a/spec/frontend/members/utils_spec.js b/spec/frontend/members/utils_spec.js index bfb5a4bc7d3..91e99876238 100644 --- a/spec/frontend/members/utils_spec.js +++ b/spec/frontend/members/utils_spec.js @@ -22,6 +22,8 @@ import { invite, membersJsonString, members, + paginationJsonString, + pagination, } from './mock_data'; const IS_CURRENT_USER_ID = 123; @@ -259,6 +261,7 @@ describe('Members Utils', () => { beforeEach(() => { el = document.createElement('div'); el.setAttribute('data-members', membersJsonString); + el.setAttribute('data-pagination', paginationJsonString); el.setAttribute('data-source-id', '234'); el.setAttribute('data-can-manage-members', 'true'); }); @@ -270,6 +273,7 @@ describe('Members Utils', () => { it('correctly parses the data attributes', () => { expect(parseDataAttributes(el)).toEqual({ members, + pagination, sourceId: 234, canManageMembers: true, }); diff --git a/spec/frontend/pipeline_new/components/pipeline_new_form_spec.js b/spec/frontend/pipeline_new/components/pipeline_new_form_spec.js index 7ec5818010a..dc70db42b4a 100644 --- a/spec/frontend/pipeline_new/components/pipeline_new_form_spec.js +++ b/spec/frontend/pipeline_new/components/pipeline_new_form_spec.js @@ -17,7 +17,7 @@ const projectRefsEndpoint = '/root/project/refs'; const pipelinesPath = '/root/project/-/pipelines'; const configVariablesPath = '/root/project/-/pipelines/config_variables'; const newPipelinePostResponse = { id: 1 }; -const defaultBranch = 'master'; +const defaultBranch = 'main'; describe('Pipeline New Form', () => { let wrapper; @@ -187,13 +187,13 @@ describe('Pipeline New Form', () => { await waitForPromises(); }); it('variables persist between ref changes', async () => { - selectBranch('master'); + selectBranch('main'); await waitForPromises(); - const masterInput = findKeyInputs().at(0); - masterInput.element.value = 'build_var'; - masterInput.trigger('change'); + const mainInput = findKeyInputs().at(0); + mainInput.element.value = 'build_var'; + mainInput.trigger('change'); await wrapper.vm.$nextTick(); @@ -207,7 +207,7 @@ describe('Pipeline New Form', () => { await wrapper.vm.$nextTick(); - selectBranch('master'); + selectBranch('main'); await waitForPromises(); diff --git a/spec/frontend/pipeline_new/components/refs_dropdown_spec.js b/spec/frontend/pipeline_new/components/refs_dropdown_spec.js index 8dafbf230f9..826f2826d3c 100644 --- a/spec/frontend/pipeline_new/components/refs_dropdown_spec.js +++ b/spec/frontend/pipeline_new/components/refs_dropdown_spec.js @@ -10,8 +10,8 @@ import RefsDropdown from '~/pipeline_new/components/refs_dropdown.vue'; import { mockRefs, mockFilteredRefs } from '../mock_data'; const projectRefsEndpoint = '/root/project/refs'; -const refShortName = 'master'; -const refFullName = 'refs/heads/master'; +const refShortName = 'main'; +const refFullName = 'refs/heads/main'; jest.mock('~/flash'); diff --git a/spec/frontend/pipeline_new/mock_data.js b/spec/frontend/pipeline_new/mock_data.js index 4fb58cb8e62..2a677f109da 100644 --- a/spec/frontend/pipeline_new/mock_data.js +++ b/spec/frontend/pipeline_new/mock_data.js @@ -1,5 +1,5 @@ export const mockRefs = { - Branches: ['master', 'branch-1', 'branch-2'], + Branches: ['main', 'branch-1', 'branch-2'], Tags: ['1.0.0', '1.1.0', '1.2.0'], }; @@ -40,6 +40,6 @@ export const mockError = { total_warnings: 7, }; -export const mockBranchRefs = ['master', 'dev', 'release']; +export const mockBranchRefs = ['main', 'dev', 'release']; export const mockTagRefs = ['1.0.0', '1.1.0', '1.2.0']; diff --git a/spec/frontend/pipeline_new/utils/format_refs_spec.js b/spec/frontend/pipeline_new/utils/format_refs_spec.js index 405a747c3ba..71190f55c16 100644 --- a/spec/frontend/pipeline_new/utils/format_refs_spec.js +++ b/spec/frontend/pipeline_new/utils/format_refs_spec.js @@ -5,7 +5,7 @@ import { mockBranchRefs, mockTagRefs } from '../mock_data'; describe('Format refs util', () => { it('formats branch ref correctly', () => { expect(formatRefs(mockBranchRefs, BRANCH_REF_TYPE)).toEqual([ - { fullName: 'refs/heads/master', shortName: 'master' }, + { fullName: 'refs/heads/main', shortName: 'main' }, { fullName: 'refs/heads/dev', shortName: 'dev' }, { fullName: 'refs/heads/release', shortName: 'release' }, ]); diff --git a/spec/frontend/pipelines/components/pipelines_filtered_search_spec.js b/spec/frontend/pipelines/components/pipelines_filtered_search_spec.js index e43aa2a02f5..d2a3b134845 100644 --- a/spec/frontend/pipelines/components/pipelines_filtered_search_spec.js +++ b/spec/frontend/pipelines/components/pipelines_filtered_search_spec.js @@ -138,7 +138,7 @@ describe('Pipelines filtered search', () => { describe('Url query params', () => { const params = { username: 'deja.green', - ref: 'master', + ref: 'main', }; beforeEach(() => { diff --git a/spec/frontend/pipelines/graph/linked_pipelines_mock_data.js b/spec/frontend/pipelines/graph/linked_pipelines_mock_data.js index 5756a666ff3..eb05669463b 100644 --- a/spec/frontend/pipelines/graph/linked_pipelines_mock_data.js +++ b/spec/frontend/pipelines/graph/linked_pipelines_mock_data.js @@ -3727,8 +3727,8 @@ export default { scheduled_actions: [], }, ref: { - name: 'master', - path: '/h5bp/html5-boilerplate/commits/master', + name: 'main', + path: '/h5bp/html5-boilerplate/commits/main', tag: false, branch: true, merge_request: false, diff --git a/spec/frontend/pipelines/graph/mock_data_legacy.js b/spec/frontend/pipelines/graph/mock_data_legacy.js index a4a5d78f906..e1c8b027121 100644 --- a/spec/frontend/pipelines/graph/mock_data_legacy.js +++ b/spec/frontend/pipelines/graph/mock_data_legacy.js @@ -221,22 +221,22 @@ export default { cancelable: false, }, ref: { - name: 'master', - path: '/root/ci-mock/tree/master', + name: 'main', + path: '/root/ci-mock/tree/main', tag: false, branch: true, }, commit: { id: '798e5f902592192afaba73f4668ae30e56eae492', short_id: '798e5f90', - title: "Merge branch 'new-branch' into 'master'\r", + title: "Merge branch 'new-branch' into 'main'\r", created_at: '2017-04-13T10:25:17.000+01:00', parent_ids: [ '54d483b1ed156fbbf618886ddf7ab023e24f8738', 'c8e2d38a6c538822e81c57022a6e3a0cfedebbcc', ], message: - "Merge branch 'new-branch' into 'master'\r\n\r\nAdd new file\r\n\r\nSee merge request !1", + "Merge branch 'new-branch' into 'main'\r\n\r\nAdd new file\r\n\r\nSee merge request !1", author_name: 'Root', author_email: 'admin@example.com', authored_date: '2017-04-13T10:25:17.000+01:00', diff --git a/spec/frontend/pipelines/mock_data.js b/spec/frontend/pipelines/mock_data.js index 337838c41b3..16f15b20824 100644 --- a/spec/frontend/pipelines/mock_data.js +++ b/spec/frontend/pipelines/mock_data.js @@ -387,7 +387,7 @@ export const tags = [ protected: false, }, { - name: 'master-tag', + name: 'main-tag', message: '', target: '66673b07efef254dab7d537f0433a40e61cf84fe', commit: { @@ -413,10 +413,10 @@ export const tags = [ export const mockSearch = [ { type: 'username', value: { data: 'root', operator: '=' } }, - { type: 'ref', value: { data: 'master', operator: '=' } }, + { type: 'ref', value: { data: 'main', operator: '=' } }, { type: 'status', value: { data: 'pending', operator: '=' } }, ]; export const mockBranchesAfterMap = ['branch-1', 'branch-10', 'branch-11']; -export const mockTagsAfterMap = ['tag-3', 'tag-2', 'tag-1', 'master-tag']; +export const mockTagsAfterMap = ['tag-3', 'tag-2', 'tag-1', 'main-tag']; diff --git a/spec/frontend/pipelines/pipelines_ci_templates_spec.js b/spec/frontend/pipelines/pipelines_ci_templates_spec.js index d4cf6027ff7..0c37bf2d84a 100644 --- a/spec/frontend/pipelines/pipelines_ci_templates_spec.js +++ b/spec/frontend/pipelines/pipelines_ci_templates_spec.js @@ -2,7 +2,7 @@ import { shallowMount } from '@vue/test-utils'; import ExperimentTracking from '~/experimentation/experiment_tracking'; import PipelinesCiTemplate from '~/pipelines/components/pipelines_list/pipelines_ci_templates.vue'; -const addCiYmlPath = "/-/new/master?commit_message='Add%20.gitlab-ci.yml'"; +const addCiYmlPath = "/-/new/main?commit_message='Add%20.gitlab-ci.yml'"; const suggestedCiTemplates = [ { name: 'Android', logo: '/assets/illustrations/logos/android.svg' }, { name: 'Bash', logo: '/assets/illustrations/logos/bash.svg' }, diff --git a/spec/frontend/pipelines/pipelines_spec.js b/spec/frontend/pipelines/pipelines_spec.js index 84a25f42201..b5b19b55f0d 100644 --- a/spec/frontend/pipelines/pipelines_spec.js +++ b/spec/frontend/pipelines/pipelines_spec.js @@ -289,7 +289,7 @@ describe('Pipelines', () => { page: '1', scope: 'all', username: 'root', - ref: 'master', + ref: 'main', status: 'pending', }; @@ -321,7 +321,7 @@ describe('Pipelines', () => { expect(window.history.pushState).toHaveBeenCalledWith( expect.anything(), expect.anything(), - `${window.location.pathname}?page=1&scope=all&username=root&ref=master&status=pending`, + `${window.location.pathname}?page=1&scope=all&username=root&ref=main&status=pending`, ); }); }); diff --git a/spec/frontend/pipelines/test_reports/test_case_details_spec.js b/spec/frontend/pipelines/test_reports/test_case_details_spec.js index e866586a2c3..64c6f08dce0 100644 --- a/spec/frontend/pipelines/test_reports/test_case_details_spec.js +++ b/spec/frontend/pipelines/test_reports/test_case_details_spec.js @@ -13,7 +13,7 @@ describe('Test case details', () => { formattedTime: '10.04ms', recent_failures: { count: 2, - base_branch: 'master', + base_branch: 'main', }, system_output: 'Line 42 is broken', }; diff --git a/spec/frontend/pipelines/tokens/pipeline_branch_name_token_spec.js b/spec/frontend/pipelines/tokens/pipeline_branch_name_token_spec.js index 2e32d62b4bd..2e44f40eda4 100644 --- a/spec/frontend/pipelines/tokens/pipeline_branch_name_token_spec.js +++ b/spec/frontend/pipelines/tokens/pipeline_branch_name_token_spec.js @@ -89,7 +89,7 @@ describe('Pipeline Branch Name Token', () => { }); it('renders only the branch searched for', () => { - const mockBranches = ['master']; + const mockBranches = ['main']; createComponent({ stubs }, { branches: mockBranches, loading: false }); expect(findAllFilteredSearchSuggestions()).toHaveLength(mockBranches.length); diff --git a/spec/frontend/pipelines/tokens/pipeline_tag_name_token_spec.js b/spec/frontend/pipelines/tokens/pipeline_tag_name_token_spec.js index 42c9dfc9ff0..b03dbb73b95 100644 --- a/spec/frontend/pipelines/tokens/pipeline_tag_name_token_spec.js +++ b/spec/frontend/pipelines/tokens/pipeline_tag_name_token_spec.js @@ -89,7 +89,7 @@ describe('Pipeline Branch Name Token', () => { }); it('renders only the tag searched for', () => { - const mockTags = ['master-tag']; + const mockTags = ['main-tag']; createComponent({ stubs }, { tags: mockTags, loading: false }); expect(findAllFilteredSearchSuggestions()).toHaveLength(mockTags.length); diff --git a/spec/frontend/vue_mr_widget/components/mr_widget_header_spec.js b/spec/frontend/vue_mr_widget/components/mr_widget_header_spec.js index eadf07e54fb..115f21d8b35 100644 --- a/spec/frontend/vue_mr_widget/components/mr_widget_header_spec.js +++ b/spec/frontend/vue_mr_widget/components/mr_widget_header_spec.js @@ -34,7 +34,7 @@ describe('MRWidgetHeader', () => { divergedCommitsCount: 12, sourceBranch: 'mr-widget-refactor', sourceBranchLink: 'Link', - targetBranch: 'master', + targetBranch: 'main', statusPath: 'abc', }, }); @@ -48,7 +48,7 @@ describe('MRWidgetHeader', () => { divergedCommitsCount: 0, sourceBranch: 'mr-widget-refactor', sourceBranchLink: 'Link', - targetBranch: 'master', + targetBranch: 'main', statusPath: 'abc', }, }); @@ -64,14 +64,14 @@ describe('MRWidgetHeader', () => { divergedCommitsCount: 1, sourceBranch: 'mr-widget-refactor', sourceBranchLink: 'Link', - targetBranch: 'master', - targetBranchPath: '/foo/bar/master', + targetBranch: 'main', + targetBranchPath: '/foo/bar/main', statusPath: 'abc', }, }); expect(wrapper.vm.commitsBehindText).toBe( - 'The source branch is 1 commit behind the target branch', + 'The source branch is 1 commit behind the target branch', ); }); @@ -81,14 +81,14 @@ describe('MRWidgetHeader', () => { divergedCommitsCount: 2, sourceBranch: 'mr-widget-refactor', sourceBranchLink: 'Link', - targetBranch: 'master', - targetBranchPath: '/foo/bar/master', + targetBranch: 'main', + targetBranchPath: '/foo/bar/main', statusPath: 'abc', }, }); expect(wrapper.vm.commitsBehindText).toBe( - 'The source branch is 2 commits behind the target branch', + 'The source branch is 2 commits behind the target branch', ); }); }); @@ -105,7 +105,7 @@ describe('MRWidgetHeader', () => { sourceBranchRemoved: false, targetBranchPath: 'foo/bar/commits-path', targetBranchTreePath: 'foo/bar/tree/path', - targetBranch: 'master', + targetBranch: 'main', isOpen: true, emailPatchesPath: '/mr/email-patches', plainDiffPath: '/mr/plainDiffPath', @@ -125,7 +125,7 @@ describe('MRWidgetHeader', () => { }); it('renders target branch', () => { - expect(wrapper.find('.js-target-branch').text().trim()).toBe('master'); + expect(wrapper.find('.js-target-branch').text().trim()).toBe('main'); }); }); @@ -138,7 +138,7 @@ describe('MRWidgetHeader', () => { sourceBranchRemoved: false, targetBranchPath: 'foo/bar/commits-path', targetBranchTreePath: 'foo/bar/tree/path', - targetBranch: 'master', + targetBranch: 'main', isOpen: true, canPushToSourceBranch: true, emailPatchesPath: '/mr/email-patches', @@ -227,7 +227,7 @@ describe('MRWidgetHeader', () => { sourceBranchRemoved: false, targetBranchPath: 'foo/bar/commits-path', targetBranchTreePath: 'foo/bar/tree/path', - targetBranch: 'master', + targetBranch: 'main', isOpen: false, emailPatchesPath: '/mr/email-patches', plainDiffPath: '/mr/plainDiffPath', @@ -257,7 +257,7 @@ describe('MRWidgetHeader', () => { sourceBranchRemoved: false, targetBranchPath: 'foo/bar/commits-path', targetBranchTreePath: 'foo/bar/tree/path', - targetBranch: 'master', + targetBranch: 'main', isOpen: true, emailPatchesPath: '/mr/email-patches', plainDiffPath: '/mr/plainDiffPath', @@ -281,7 +281,7 @@ describe('MRWidgetHeader', () => { sourceBranchRemoved: false, targetBranchPath: 'foo/bar/commits-path', targetBranchTreePath: 'foo/bar/tree/path', - targetBranch: 'master', + targetBranch: 'main', isOpen: true, emailPatchesPath: '/mr/email-patches', plainDiffPath: '/mr/plainDiffPath', diff --git a/spec/frontend/vue_mr_widget/components/states/mr_widget_commits_header_spec.js b/spec/frontend/vue_mr_widget/components/states/mr_widget_commits_header_spec.js index e4123b2ca83..b31a75f30d3 100644 --- a/spec/frontend/vue_mr_widget/components/states/mr_widget_commits_header_spec.js +++ b/spec/frontend/vue_mr_widget/components/states/mr_widget_commits_header_spec.js @@ -8,7 +8,7 @@ describe('Commits header component', () => { wrapper = shallowMount(CommitsHeader, { propsData: { isSquashEnabled: false, - targetBranch: 'master', + targetBranch: 'main', commitsCount: 5, isFastForwardEnabled: false, ...props, @@ -94,7 +94,7 @@ describe('Commits header component', () => { it('has correct target branch displayed', () => { createComponent(); - expect(findTargetBranchMessage().text()).toBe('master'); + expect(findTargetBranchMessage().text()).toBe('main'); }); it('does has merge commit part of the message', () => { diff --git a/spec/frontend/vue_mr_widget/components/states/mr_widget_ready_to_merge_spec.js b/spec/frontend/vue_mr_widget/components/states/mr_widget_ready_to_merge_spec.js index 983e4a35078..7202f327683 100644 --- a/spec/frontend/vue_mr_widget/components/states/mr_widget_ready_to_merge_spec.js +++ b/spec/frontend/vue_mr_widget/components/states/mr_widget_ready_to_merge_spec.js @@ -42,7 +42,7 @@ const createTestMr = (customConfig) => { commitMessageWithDescription, shouldRemoveSourceBranch: true, canRemoveSourceBranch: false, - targetBranch: 'master', + targetBranch: 'main', preferredAutoMergeStrategy: MWPS_MERGE_STRATEGY, availableAutoMergeStrategies: [MWPS_MERGE_STRATEGY], mergeImmediatelyDocsPath: 'path/to/merge/immediately/docs', diff --git a/spec/frontend/vue_mr_widget/deployment/deployment_mock_data.js b/spec/frontend/vue_mr_widget/deployment/deployment_mock_data.js index ff29022b75d..2083dc88681 100644 --- a/spec/frontend/vue_mr_widget/deployment/deployment_mock_data.js +++ b/spec/frontend/vue_mr_widget/deployment/deployment_mock_data.js @@ -45,15 +45,15 @@ const deploymentMockData = { changes: [ { path: 'index.html', - external_url: 'http://root-master-patch-91341.volatile-watch.surge.sh/index.html', + external_url: 'http://root-main-patch-91341.volatile-watch.surge.sh/index.html', }, { path: 'imgs/gallery.html', - external_url: 'http://root-master-patch-91341.volatile-watch.surge.sh/imgs/gallery.html', + external_url: 'http://root-main-patch-91341.volatile-watch.surge.sh/imgs/gallery.html', }, { path: 'about/', - external_url: 'http://root-master-patch-91341.volatile-watch.surge.sh/about/', + external_url: 'http://root-main-patch-91341.volatile-watch.surge.sh/about/', }, ], }; diff --git a/spec/frontend/vue_mr_widget/mock_data.js b/spec/frontend/vue_mr_widget/mock_data.js index aa2345abccf..8e36a9225d6 100644 --- a/spec/frontend/vue_mr_widget/mock_data.js +++ b/spec/frontend/vue_mr_widget/mock_data.js @@ -48,7 +48,7 @@ export default { source_branch_link: 'daaaa', source_project_id: 19, source_project_full_path: '/group1/project1', - target_branch: 'master', + target_branch: 'main', target_project_id: 19, target_project_full_path: '/group2/project2', merge_request_add_ci_config_path: '/group2/project2/new/pipeline', @@ -83,7 +83,7 @@ export default { diff_head_sha: '104096c51715e12e7ae41f9333e9fa35b73f385d', diff_head_commit_short_id: '104096c5', default_merge_commit_message: - "Merge branch 'daaaa' into 'master'\n\nUpdate README.md\n\nSee merge request !22", + "Merge branch 'daaaa' into 'main'\n\nUpdate README.md\n\nSee merge request !22", pipeline: { id: 172, user: { @@ -173,8 +173,8 @@ export default { title: 'Update README.md', source_branch: 'feature-1', source_branch_path: '/root/detached-merge-request-pipelines/branches/feature-1', - target_branch: 'master', - target_branch_path: '/root/detached-merge-request-pipelines/branches/master', + target_branch: 'main', + target_branch_path: '/root/detached-merge-request-pipelines/branches/main', }, commit: { id: '104096c51715e12e7ae41f9333e9fa35b73f385d', @@ -243,7 +243,7 @@ export default { head_path: 'blob_path', }, codequality_help_path: 'code_quality.html', - target_branch_path: '/root/acets-app/branches/master', + target_branch_path: '/root/acets-app/branches/main', source_branch_path: '/root/acets-app/branches/daaaa', conflict_resolution_ui_path: '/root/acets-app/-/merge_requests/22/conflicts', remove_wip_path: '/root/acets-app/-/merge_requests/22/remove_wip', @@ -264,7 +264,7 @@ export default { ci_environments_status_url: '/root/acets-app/-/merge_requests/22/ci_environments_status', project_archived: false, default_merge_commit_message_with_description: - "Merge branch 'daaaa' into 'master'\n\nUpdate README.md\n\nSee merge request !22", + "Merge branch 'daaaa' into 'main'\n\nUpdate README.md\n\nSee merge request !22", default_squash_commit_message: 'Test squash commit message', diverged_commits_count: 0, only_allow_merge_if_pipeline_succeeds: false, diff --git a/spec/frontend/vue_mr_widget/mr_widget_options_spec.js b/spec/frontend/vue_mr_widget/mr_widget_options_spec.js index c4962b608e1..3ed9172eeb7 100644 --- a/spec/frontend/vue_mr_widget/mr_widget_options_spec.js +++ b/spec/frontend/vue_mr_widget/mr_widget_options_spec.js @@ -559,15 +559,15 @@ describe('MrWidgetOptions', () => { const changes = [ { path: 'index.html', - external_url: 'http://root-master-patch-91341.volatile-watch.surge.sh/index.html', + external_url: 'http://root-main-patch-91341.volatile-watch.surge.sh/index.html', }, { path: 'imgs/gallery.html', - external_url: 'http://root-master-patch-91341.volatile-watch.surge.sh/imgs/gallery.html', + external_url: 'http://root-main-patch-91341.volatile-watch.surge.sh/imgs/gallery.html', }, { path: 'about/', - external_url: 'http://root-master-patch-91341.volatile-watch.surge.sh/about/', + external_url: 'http://root-main-patch-91341.volatile-watch.surge.sh/about/', }, ]; const deploymentMockData = { @@ -688,22 +688,22 @@ describe('MrWidgetOptions', () => { scheduled_actions: [], }, ref: { - name: 'master', - path: '/root/ci-web-terminal/commits/master', + name: 'main', + path: '/root/ci-web-terminal/commits/main', tag: false, branch: true, }, commit: { id: 'aa1939133d373c94879becb79d91828a892ee319', short_id: 'aa193913', - title: "Merge branch 'master-test' into 'master'", + title: "Merge branch 'main-test' into 'main'", created_at: '2018-10-22T11:41:33.000Z', parent_ids: [ '4622f4dd792468993003caf2e3be978798cbe096', '76598df914cdfe87132d0c3c40f80db9fa9396a4', ], message: - "Merge branch 'master-test' into 'master'\n\nUpdate .gitlab-ci.yml\n\nSee merge request root/ci-web-terminal!1", + "Merge branch 'main-test' into 'main'\n\nUpdate .gitlab-ci.yml\n\nSee merge request root/ci-web-terminal!1", author_name: 'Administrator', author_email: 'admin@example.com', authored_date: '2018-10-22T11:41:33.000Z', @@ -751,17 +751,16 @@ describe('MrWidgetOptions', () => { changes: [ { path: 'index.html', - external_url: - 'http://root-master-patch-91341.volatile-watch.surge.sh/index.html', + external_url: 'http://root-main-patch-91341.volatile-watch.surge.sh/index.html', }, { path: 'imgs/gallery.html', external_url: - 'http://root-master-patch-91341.volatile-watch.surge.sh/imgs/gallery.html', + 'http://root-main-patch-91341.volatile-watch.surge.sh/imgs/gallery.html', }, { path: 'about/', - external_url: 'http://root-master-patch-91341.volatile-watch.surge.sh/about/', + external_url: 'http://root-main-patch-91341.volatile-watch.surge.sh/about/', }, ], status: 'success', diff --git a/spec/helpers/gitlab_routing_helper_spec.rb b/spec/helpers/gitlab_routing_helper_spec.rb index 0df04d2a8a7..c3f8ac76ef5 100644 --- a/spec/helpers/gitlab_routing_helper_spec.rb +++ b/spec/helpers/gitlab_routing_helper_spec.rb @@ -113,6 +113,24 @@ RSpec.describe GitlabRoutingHelper do end end + describe 'members helpers' do + describe '#source_members_url' do + it 'returns a url to the memberships page for a group membership' do + membership = build_stubbed(:group_member) + group_members_url = "http://test.host/groups/#{membership.source.full_path}/-/group_members" + + expect(source_members_url(membership)).to eq(group_members_url) + end + + it 'returns a url to the memberships page for a project membership' do + membership = build_stubbed(:project_member) + project_members_url = "http://test.host/#{membership.source.full_path}/-/project_members" + + expect(source_members_url(membership)).to eq(project_members_url) + end + end + end + context 'artifacts' do let_it_be(:project) { create(:project) } let_it_be(:job) { create(:ci_build, project: project, name: 'test:job', artifacts_expire_at: 1.hour.from_now) } diff --git a/spec/helpers/groups/group_members_helper_spec.rb b/spec/helpers/groups/group_members_helper_spec.rb index 99efc7963e6..19b3ced2304 100644 --- a/spec/helpers/groups/group_members_helper_spec.rb +++ b/spec/helpers/groups/group_members_helper_spec.rb @@ -70,7 +70,7 @@ RSpec.describe Groups::GroupMembersHelper do end describe '#group_members_list_data_attributes' do - let(:group_member) { create(:group_member, group: group, created_by: current_user) } + let_it_be(:group_members) { create_list(:group_member, 2, group: group, created_by: current_user) } before do allow(helper).to receive(:group_group_member_path).with(group, ':id').and_return('/groups/foo-bar/-/group_members/:id') @@ -78,13 +78,45 @@ RSpec.describe Groups::GroupMembersHelper do end it 'returns expected hash' do - expect(helper.group_members_list_data_attributes(group, present_members([group_member]))).to include({ - members: helper.members_data_json(group, present_members([group_member])), + expect(helper.group_members_list_data_attributes(group, present_members(group_members))).to include({ + members: helper.members_data_json(group, present_members(group_members)), member_path: '/groups/foo-bar/-/group_members/:id', source_id: group.id, can_manage_members: 'true' }) end + + context 'when pagination is not available' do + it 'sets `pagination` attribute to expected json' do + expect(helper.group_members_list_data_attributes(group, present_members(group_members))[:pagination]).to match({ + current_page: nil, + per_page: nil, + total_items: 2, + param_name: nil, + params: {} + }.to_json) + end + end + + context 'when pagination is available' do + let(:collection) { Kaminari.paginate_array(group_members).page(1).per(1) } + + it 'sets `pagination` attribute to expected json' do + expect( + helper.group_members_list_data_attributes( + group, + present_members(collection), + { param_name: :page, params: { search_groups: nil } } + )[:pagination] + ).to match({ + current_page: 1, + per_page: 1, + total_items: 2, + param_name: :page, + params: { search_groups: nil } + }.to_json) + end + end end describe '#group_group_links_list_data_attributes' do @@ -96,6 +128,13 @@ RSpec.describe Groups::GroupMembersHelper do it 'returns expected hash' do expect(helper.group_group_links_list_data_attributes(shared_group)).to include({ + pagination: { + current_page: nil, + per_page: nil, + total_items: 1, + param_name: nil, + params: {} + }.to_json, members: helper.group_group_links_data_json(shared_group.shared_with_group_links), member_path: '/groups/foo-bar/-/group_links/:id', source_id: shared_group.id diff --git a/spec/helpers/projects/project_members_helper_spec.rb b/spec/helpers/projects/project_members_helper_spec.rb index 0e08a18f912..03e67afc372 100644 --- a/spec/helpers/projects/project_members_helper_spec.rb +++ b/spec/helpers/projects/project_members_helper_spec.rb @@ -147,7 +147,7 @@ RSpec.describe Projects::ProjectMembersHelper do end describe 'project members' do - let_it_be(:project_members) { create_list(:project_member, 1, project: project) } + let_it_be(:project_members) { create_list(:project_member, 2, project: project) } describe '#project_members_data_json' do it 'matches json schema' do @@ -170,6 +170,38 @@ RSpec.describe Projects::ProjectMembersHelper do can_manage_members: 'true' }) end + + context 'when pagination is not available' do + it 'sets `pagination` attribute to expected json' do + expect(helper.project_members_list_data_attributes(project, present_members(project_members))[:pagination]).to match({ + current_page: nil, + per_page: nil, + total_items: 2, + param_name: nil, + params: {} + }.to_json) + end + end + + context 'when pagination is available' do + let(:collection) { Kaminari.paginate_array(project_members).page(1).per(1) } + + it 'sets `pagination` attribute to expected json' do + expect( + helper.project_members_list_data_attributes( + project, + present_members(collection), + { param_name: :page, params: { search_groups: nil } } + )[:pagination] + ).to match({ + current_page: 1, + per_page: 1, + total_items: 2, + param_name: :page, + params: { search_groups: nil } + }.to_json) + end + end end end @@ -193,6 +225,13 @@ RSpec.describe Projects::ProjectMembersHelper do it 'returns expected hash' do expect(helper.project_group_links_list_data_attributes(project, project_group_links)).to include({ members: helper.project_group_links_data_json(project_group_links), + pagination: { + current_page: nil, + per_page: nil, + total_items: 1, + param_name: nil, + params: {} + }.to_json, member_path: '/foo-bar/-/group_links/:id', source_id: project.id, can_manage_members: 'true' diff --git a/spec/lib/banzai/filter/references/abstract_reference_filter_spec.rb b/spec/lib/banzai/filter/references/abstract_reference_filter_spec.rb index 076c112ac87..d10b52bf7d0 100644 --- a/spec/lib/banzai/filter/references/abstract_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/abstract_reference_filter_spec.rb @@ -61,13 +61,13 @@ RSpec.describe Banzai::Filter::References::AbstractReferenceFilter do .to eq([project]) end - context "when no project with that path exists" do - it "returns no value" do + context 'when no project with that path exists' do + it 'returns no value' do expect(filter.find_for_paths(['nonexistent/project'])) .to eq([]) end - it "adds the ref to the project refs cache" do + it 'adds the ref to the project refs cache' do project_refs_cache = {} allow(filter).to receive(:refs_cache).and_return(project_refs_cache) @@ -99,4 +99,18 @@ RSpec.describe Banzai::Filter::References::AbstractReferenceFilter do expect(filter.current_parent_path).to eq(project.full_path) end end + + context 'abstract methods' do + describe '#find_object' do + it 'raises NotImplementedError' do + expect { filter.find_object(nil, nil) }.to raise_error(NotImplementedError) + end + end + + describe '#url_for_object' do + it 'raises NotImplementedError' do + expect { filter.url_for_object(nil, nil) }.to raise_error(NotImplementedError) + end + end + end end diff --git a/spec/lib/banzai/filter/references/design_reference_filter_spec.rb b/spec/lib/banzai/filter/references/design_reference_filter_spec.rb index 52514ad17fc..cb1f3d520a4 100644 --- a/spec/lib/banzai/filter/references/design_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/design_reference_filter_spec.rb @@ -104,7 +104,7 @@ RSpec.describe Banzai::Filter::References::DesignReferenceFilter do let(:pattern) { described_class.object_class.link_reference_pattern } let(:parsed) do m = pattern.match(url) - described_class.identifier(m) if m + described_class.new('', project: nil).identifier(m) if m end it 'can parse the reference' do @@ -119,9 +119,11 @@ RSpec.describe Banzai::Filter::References::DesignReferenceFilter do describe 'static properties' do specify do expect(described_class).to have_attributes( - object_sym: :design, + reference_type: :design, object_class: ::DesignManagement::Design ) + + expect(described_class.new('', project: nil).object_sym).to eq :design end end diff --git a/spec/lib/banzai/filter/references/issue_reference_filter_spec.rb b/spec/lib/banzai/filter/references/issue_reference_filter_spec.rb index b849355f6db..0e1cb1ade74 100644 --- a/spec/lib/banzai/filter/references/issue_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/issue_reference_filter_spec.rb @@ -493,19 +493,19 @@ RSpec.describe Banzai::Filter::References::IssueReferenceFilter do it 'yields valid references' do expect do |b| - described_class.references_in(issue.to_reference, &b) + described_class.new('', project: nil).references_in(issue.to_reference, &b) end.to yield_with_args(issue.to_reference, issue.iid, nil, nil, MatchData) end it "doesn't yield invalid references" do expect do |b| - described_class.references_in('#0', &b) + described_class.new('', project: nil).references_in('#0', &b) end.not_to yield_control end it "doesn't yield unsupported references" do expect do |b| - described_class.references_in(merge_request.to_reference, &b) + described_class.new('', project: nil).references_in(merge_request.to_reference, &b) end.not_to yield_control end end diff --git a/spec/lib/banzai/filter/references/project_reference_filter_spec.rb b/spec/lib/banzai/filter/references/project_reference_filter_spec.rb index 7a77d57cd42..63a5a9184c1 100644 --- a/spec/lib/banzai/filter/references/project_reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/project_reference_filter_spec.rb @@ -85,7 +85,7 @@ RSpec.describe Banzai::Filter::References::ProjectReferenceFilter do document = Nokogiri::HTML.fragment("

#{get_reference(project)}

") filter = described_class.new(document, project: project) - expect(filter.projects_hash).to eq({ project.full_path => project }) + expect(filter.send(:projects_hash)).to eq({ project.full_path => project }) end end @@ -94,7 +94,7 @@ RSpec.describe Banzai::Filter::References::ProjectReferenceFilter do document = Nokogiri::HTML.fragment("

#{get_reference(project)}

") filter = described_class.new(document, project: project) - expect(filter.projects).to eq([project.full_path]) + expect(filter.send(:projects)).to eq([project.full_path]) end end end diff --git a/spec/lib/banzai/filter/references/reference_filter_spec.rb b/spec/lib/banzai/filter/references/reference_filter_spec.rb index 4bcb41ef2a9..b14b9374364 100644 --- a/spec/lib/banzai/filter/references/reference_filter_spec.rb +++ b/spec/lib/banzai/filter/references/reference_filter_spec.rb @@ -155,7 +155,7 @@ RSpec.describe Banzai::Filter::References::ReferenceFilter do let(:nodes) { [node] } it 'skips node' do - expect { |b| filter.replace_text_when_pattern_matches(filter.nodes[0], 0, ref_pattern, &b) }.not_to yield_control + expect { |b| filter.send(:replace_text_when_pattern_matches, filter.nodes[0], 0, ref_pattern, &b) }.not_to yield_control end end @@ -183,12 +183,12 @@ RSpec.describe Banzai::Filter::References::ReferenceFilter do end end - describe "#call_and_update_nodes" do + describe '#call_and_update_nodes' do include_context 'new nodes' let(:document) { Nokogiri::HTML.fragment('foo') } let(:filter) { described_class.new(document, project: project) } - it "updates all new nodes", :aggregate_failures do + it 'updates all new nodes', :aggregate_failures do filter.instance_variable_set('@nodes', nodes) expect(filter).to receive(:call) { filter.instance_variable_set('@new_nodes', new_nodes) } @@ -201,14 +201,14 @@ RSpec.describe Banzai::Filter::References::ReferenceFilter do end end - describe ".call" do + describe '.call' do include_context 'new nodes' let(:document) { Nokogiri::HTML.fragment('foo') } let(:result) { { reference_filter_nodes: nodes } } - it "updates all nodes", :aggregate_failures do + it 'updates all nodes', :aggregate_failures do expect_next_instance_of(described_class) do |filter| expect(filter).to receive(:call_and_update_nodes).and_call_original expect(filter).to receive(:with_update_nodes).and_call_original @@ -221,4 +221,21 @@ RSpec.describe Banzai::Filter::References::ReferenceFilter do expect(result[:reference_filter_nodes]).to eq(expected_nodes) end end + + context 'abstract methods' do + let(:document) { Nokogiri::HTML.fragment('foo') } + let(:filter) { described_class.new(document, project: project) } + + describe '#references_in' do + it 'raises NotImplementedError' do + expect { filter.references_in('foo', %r{(? ns }) + expect(filter.send(:namespaces)).to eq({ ns.path => ns }) end end @@ -198,7 +198,7 @@ RSpec.describe Banzai::Filter::References::UserReferenceFilter do document = Nokogiri::HTML.fragment("

#{get_reference(user)}

") filter = described_class.new(document, project: project) - expect(filter.usernames).to eq([user.username]) + expect(filter.send(:usernames)).to eq([user.username]) end end end diff --git a/spec/lib/gitlab/graphql/deprecation_spec.rb b/spec/lib/gitlab/graphql/deprecation_spec.rb index 8b41145b855..2931e28a6ee 100644 --- a/spec/lib/gitlab/graphql/deprecation_spec.rb +++ b/spec/lib/gitlab/graphql/deprecation_spec.rb @@ -164,7 +164,7 @@ RSpec.describe ::Gitlab::Graphql::Deprecation do context 'when the context is :inline' do it 'renders on one line' do - expectation = '**Deprecated** in 10.10. This was renamed. Use: `X.y`.' + expectation = '**Deprecated** in 10.10. This was renamed. Use: [`X.y`](#xy).' expect(deprecation.markdown).to eq(expectation) expect(deprecation.markdown(context: :inline)).to eq(expectation) @@ -177,7 +177,7 @@ RSpec.describe ::Gitlab::Graphql::Deprecation do WARNING: **Deprecated** in 10.10. This was renamed. - Use: `X.y`. + Use: [`X.y`](#xy). MD expect(deprecation.markdown(context: :block)).to eq(expectation) diff --git a/spec/lib/gitlab/graphql/docs/renderer_spec.rb b/spec/lib/gitlab/graphql/docs/renderer_spec.rb index 8c0f7aac081..a23579c63a0 100644 --- a/spec/lib/gitlab/graphql/docs/renderer_spec.rb +++ b/spec/lib/gitlab/graphql/docs/renderer_spec.rb @@ -1,10 +1,20 @@ # frozen_string_literal: true -require 'fast_spec_helper' +require 'spec_helper' RSpec.describe Gitlab::Graphql::Docs::Renderer do describe '#contents' do + shared_examples 'renders correctly as GraphQL documentation' do + it 'contains the expected section' do + # duplicative - but much better error messages! + section.lines.each { |line| expect(contents).to include(line) } + expect(contents).to include(section) + end + end + let(:template) { Rails.root.join('lib/gitlab/graphql/docs/templates/default.md.haml') } + let(:field_description) { 'List of objects.' } + let(:type) { ::GraphQL::INT_TYPE } let(:query_type) do Class.new(Types::BaseObject) { graphql_name 'Query' }.tap do |t| @@ -15,6 +25,13 @@ RSpec.describe Gitlab::Graphql::Docs::Renderer do end end + let(:mutation_root) do + Class.new(::Types::BaseObject) do + include ::Gitlab::Graphql::MountMutation + graphql_name 'Mutation' + end + end + let(:mock_schema) do Class.new(GraphQL::Schema) do def resolve_type(obj, ctx) @@ -23,10 +40,9 @@ RSpec.describe Gitlab::Graphql::Docs::Renderer do end end - let(:field_description) { 'List of objects.' } - subject(:contents) do mock_schema.query(query_type) + mock_schema.mutation(mutation_root) if mutation_root.fields.any? described_class.new( mock_schema, @@ -36,17 +52,18 @@ RSpec.describe Gitlab::Graphql::Docs::Renderer do end describe 'headings' do - let(:type) { ::GraphQL::INT_TYPE } - it 'contains the expected sections' do expect(contents.lines.map(&:chomp)).to include( '## `Query` type', + '## `Mutation` type', + '## Connections', '## Object types', '## Enumeration types', '## Scalar types', '## Abstract types', '### Unions', - '### Interfaces' + '### Interfaces', + '## Input types' ) end end @@ -66,9 +83,11 @@ RSpec.describe Gitlab::Graphql::Docs::Renderer do expectation = <<~DOC ### `ArrayTest` - | Field | Type | Description | - | ----- | ---- | ----------- | - | `foo` | [`#{type_name}`](##{inner_type}) | A description. | + #### Fields + + | Name | Type | Description | + | ---- | ---- | ----------- | + | `foo` | [`#{type_name}`](##{inner_type}) | A description. | DOC is_expected.to include(expectation) @@ -77,7 +96,7 @@ RSpec.describe Gitlab::Graphql::Docs::Renderer do describe 'a top level query field' do let(:expectation) do <<~DOC - ### `foo` + ### `Query.foo` List of objects. @@ -87,7 +106,7 @@ RSpec.describe Gitlab::Graphql::Docs::Renderer do | Name | Type | Description | | ---- | ---- | ----------- | - | `id` | [`ID`](#id) | ID of the object. | + | `id` | [`ID`](#id) | ID of the object. | DOC end @@ -119,20 +138,60 @@ RSpec.describe Gitlab::Graphql::Docs::Renderer do expectation = <<~DOC ### `OrderingTest` - | Field | Type | Description | - | ----- | ---- | ----------- | - | `bar` | [`String!`](#string) | A description of bar field. | - | `foo` | [`String!`](#string) | A description of foo field. | + #### Fields + + | Name | Type | Description | + | ---- | ---- | ----------- | + | `bar` | [`String!`](#string) | A description of bar field. | + | `foo` | [`String!`](#string) | A description of foo field. | DOC is_expected.to include(expectation) end end + context 'when an argument is deprecated' do + let(:type) do + Class.new(Types::BaseObject) do + graphql_name 'DeprecatedTest' + description 'A thing we used to use, but no longer support' + + field :foo, + type: GraphQL::STRING_TYPE, + null: false, + description: 'A description.' do + argument :foo_arg, GraphQL::STRING_TYPE, + required: false, + description: 'The argument.', + deprecated: { reason: 'Bad argument', milestone: '101.2' } + end + end + end + + let(:section) do + <<~DOC + ##### `DeprecatedTest.foo` + + A description. + + Returns [`String!`](#string). + + ###### Arguments + + | Name | Type | Description | + | ---- | ---- | ----------- | + | `fooArg` **{warning-solid}** | [`String`](#string) | **Deprecated** in 101.2. Bad argument. | + DOC + end + + it_behaves_like 'renders correctly as GraphQL documentation' + end + context 'when a field is deprecated' do let(:type) do Class.new(Types::BaseObject) do graphql_name 'DeprecatedTest' + description 'A thing we used to use, but no longer support' field :foo, type: GraphQL::STRING_TYPE, @@ -142,9 +201,9 @@ RSpec.describe Gitlab::Graphql::Docs::Renderer do field :foo_with_args, type: GraphQL::STRING_TYPE, null: false, - deprecated: { reason: 'Do not use', milestone: '1.10' }, + deprecated: { reason: 'Do not use', milestone: '1.10', replacement: 'X.y' }, description: 'A description.' do - argument :fooity, ::GraphQL::INT_TYPE, required: false, description: 'X' + argument :arg, GraphQL::INT_TYPE, required: false, description: 'Argity' end field :bar, type: GraphQL::STRING_TYPE, @@ -158,24 +217,44 @@ RSpec.describe Gitlab::Graphql::Docs::Renderer do end end - it 'includes the deprecation' do - expectation = <<~DOC + let(:section) do + <<~DOC ### `DeprecatedTest` - | Field | Type | Description | - | ----- | ---- | ----------- | - | `bar` **{warning-solid}** | [`String!`](#string) | **Deprecated** in 1.10. This was renamed. Use: `Query.boom`. | - | `foo` **{warning-solid}** | [`String!`](#string) | **Deprecated** in 1.10. This is deprecated. | - | `fooWithArgs` **{warning-solid}** | [`String!`](#string) | **Deprecated** in 1.10. Do not use. | - DOC + A thing we used to use, but no longer support. - is_expected.to include(expectation) + #### Fields + + | Name | Type | Description | + | ---- | ---- | ----------- | + | `bar` **{warning-solid}** | [`String!`](#string) | **Deprecated** in 1.10. This was renamed. Use: [`Query.boom`](#queryboom). | + | `foo` **{warning-solid}** | [`String!`](#string) | **Deprecated** in 1.10. This is deprecated. | + + #### Fields with arguments + + ##### `DeprecatedTest.fooWithArgs` + + A description. + + WARNING: + **Deprecated** in 1.10. + Do not use. + Use: [`X.y`](#xy). + + Returns [`String!`](#string). + + ###### Arguments + + | Name | Type | Description | + | ---- | ---- | ----------- | + | `arg` | [`Int`](#int) | Argity. | + DOC end + + it_behaves_like 'renders correctly as GraphQL documentation' end context 'when a Query.field is deprecated' do - let(:type) { ::GraphQL::INT_TYPE } - before do query_type.field( name: :bar, @@ -186,28 +265,30 @@ RSpec.describe Gitlab::Graphql::Docs::Renderer do ) end - it 'includes the deprecation' do - expectation = <<~DOC - ### `bar` + let(:type) { ::GraphQL::INT_TYPE } + let(:section) do + <<~DOC + ### `Query.bar` A bar. WARNING: **Deprecated** in 10.11. This was renamed. - Use: `Query.foo`. + Use: [`Query.foo`](#queryfoo). Returns [`Int`](#int). DOC - - is_expected.to include(expectation) end + + it_behaves_like 'renders correctly as GraphQL documentation' end context 'when a field has an Enumeration type' do let(:type) do enum_type = Class.new(Types::BaseEnum) do graphql_name 'MyEnum' + description 'A test of an enum.' value 'BAZ', description: 'A description of BAZ.' @@ -223,18 +304,20 @@ RSpec.describe Gitlab::Graphql::Docs::Renderer do end end - it 'includes the description of the Enumeration' do - expectation = <<~DOC + let(:section) do + <<~DOC ### `MyEnum` + A test of an enum. + | Value | Description | | ----- | ----------- | - | `BAR` **{warning-solid}** | **Deprecated:** This is deprecated. Deprecated in 1.10. | - | `BAZ` | A description of BAZ. | + | `BAR` **{warning-solid}** | **Deprecated:** This is deprecated. Deprecated in 1.10. | + | `BAZ` | A description of BAZ. | DOC - - is_expected.to include(expectation) end + + it_behaves_like 'renders correctly as GraphQL documentation' end context 'when a field has a global ID type' do @@ -247,27 +330,150 @@ RSpec.describe Gitlab::Graphql::Docs::Renderer do end end - it 'includes the field and the description of the ID, so we can link to it' do - type_section = <<~DOC - ### `IDTest` + describe 'section for IDTest' do + let(:section) do + <<~DOC + ### `IDTest` - A test for rendering IDs. + A test for rendering IDs. - | Field | Type | Description | - | ----- | ---- | ----------- | - | `foo` | [`UserID`](#userid) | A user foo. | - DOC + #### Fields - id_section = <<~DOC - ### `UserID` + | Name | Type | Description | + | ---- | ---- | ----------- | + | `foo` | [`UserID`](#userid) | A user foo. | + DOC + end - A `UserID` is a global ID. It is encoded as a string. - - An example `UserID` is: `"gid://gitlab/User/1"`. - DOC - - is_expected.to include(type_section, id_section) + it_behaves_like 'renders correctly as GraphQL documentation' end + + describe 'section for UserID' do + let(:section) do + <<~DOC + ### `UserID` + + A `UserID` is a global ID. It is encoded as a string. + + An example `UserID` is: `"gid://gitlab/User/1"`. + DOC + end + + it_behaves_like 'renders correctly as GraphQL documentation' + end + end + + context 'when there is a mutation' do + let(:mutation) do + mutation = Class.new(::Mutations::BaseMutation) + + mutation.graphql_name 'MakeItPretty' + mutation.description 'Make everything very pretty.' + + mutation.argument :prettiness_factor, + type: GraphQL::FLOAT_TYPE, + required: true, + description: 'How much prettier?' + + mutation.argument :pulchritude, + type: GraphQL::FLOAT_TYPE, + required: false, + description: 'How much prettier?', + deprecated: { + reason: :renamed, + replacement: 'prettinessFactor', + milestone: '72.34' + } + + mutation.field :everything, + type: GraphQL::STRING_TYPE, + null: true, + description: 'What we made prettier.' + + mutation.field :omnis, + type: GraphQL::STRING_TYPE, + null: true, + description: 'What we made prettier.', + deprecated: { + reason: :renamed, + replacement: 'everything', + milestone: '72.34' + } + + mutation + end + + before do + mutation_root.mount_mutation mutation + end + + it_behaves_like 'renders correctly as GraphQL documentation' do + let(:section) do + <<~DOC + ### `Mutation.makeItPretty` + + Make everything very pretty. + + Input type: `MakeItPrettyInput` + + #### Arguments + + | Name | Type | Description | + | ---- | ---- | ----------- | + | `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | + | `prettinessFactor` | [`Float!`](#float) | How much prettier?. | + | `pulchritude` **{warning-solid}** | [`Float`](#float) | **Deprecated:** This was renamed. Please use `prettinessFactor`. Deprecated in 72.34. | + + #### Fields + + | Name | Type | Description | + | ---- | ---- | ----------- | + | `clientMutationId` | [`String`](#string) | A unique identifier for the client performing the mutation. | + | `errors` | [`[String!]!`](#string) | Errors encountered during execution of the mutation. | + | `everything` | [`String`](#string) | What we made prettier. | + | `omnis` **{warning-solid}** | [`String`](#string) | **Deprecated:** This was renamed. Please use `everything`. Deprecated in 72.34. | + DOC + end + end + + it 'does not render the automatically generated payload type' do + expect(contents).not_to include('MakeItPrettyPayload') + end + + it 'does not render the automatically generated input type as its own section' do + expect(contents).not_to include('# `MakeItPrettyInput`') + end + end + + context 'when there is an input type' do + let(:type) do + Class.new(::Types::BaseObject) do + graphql_name 'Foo' + field :wibble, type: ::GraphQL::INT_TYPE, null: true do + argument :date_range, + type: ::Types::TimeframeInputType, + required: true, + description: 'When the foo happened.' + end + end + end + + let(:section) do + <<~DOC + ### `Timeframe` + + A time-frame defined as a closed inclusive range of two dates. + + #### Arguments + + | Name | Type | Description | + | ---- | ---- | ----------- | + | `end` | [`Date!`](#date) | The end of the range. | + | `start` | [`Date!`](#date) | The start of the range. | + DOC + end + + it_behaves_like 'renders correctly as GraphQL documentation' end context 'when there is an interface and a union' do @@ -297,7 +503,7 @@ RSpec.describe Gitlab::Graphql::Docs::Renderer do interface.orphan_types african_swallow Class.new(::Types::BaseObject) do - graphql_name 'AbstactTypeTest' + graphql_name 'AbstractTypeTest' description 'A test for abstract types.' field :foo, union, null: true, description: 'The foo.' @@ -307,14 +513,16 @@ RSpec.describe Gitlab::Graphql::Docs::Renderer do it 'lists the fields correctly, and includes descriptions of all the types' do type_section = <<~DOC - ### `AbstactTypeTest` + ### `AbstractTypeTest` A test for abstract types. - | Field | Type | Description | - | ----- | ---- | ----------- | - | `flying` | [`Flying`](#flying) | A flying thing. | - | `foo` | [`UserOrGroup`](#userorgroup) | The foo. | + #### Fields + + | Name | Type | Description | + | ---- | ---- | ----------- | + | `flying` | [`Flying`](#flying) | A flying thing. | + | `foo` | [`UserOrGroup`](#userorgroup) | The foo. | DOC union_section = <<~DOC @@ -337,9 +545,11 @@ RSpec.describe Gitlab::Graphql::Docs::Renderer do - [`AfricanSwallow`](#africanswallow) - | Field | Type | Description | - | ----- | ---- | ----------- | - | `flightSpeed` | [`Int`](#int) | Speed in mph. | + ##### Fields + + | Name | Type | Description | + | ---- | ---- | ----------- | + | `flightSpeed` | [`Int`](#int) | Speed in mph. | DOC implementation_section = <<~DOC @@ -347,9 +557,11 @@ RSpec.describe Gitlab::Graphql::Docs::Renderer do A swallow from Africa. - | Field | Type | Description | - | ----- | ---- | ----------- | - | `flightSpeed` | [`Int`](#int) | Speed in mph. | + #### Fields + + | Name | Type | Description | + | ---- | ---- | ----------- | + | `flightSpeed` | [`Int`](#int) | Speed in mph. | DOC is_expected.to include( diff --git a/spec/models/concerns/cascading_namespace_setting_attribute_spec.rb b/spec/models/concerns/cascading_namespace_setting_attribute_spec.rb index ddff9ce32b4..1a6ce64c0a5 100644 --- a/spec/models/concerns/cascading_namespace_setting_attribute_spec.rb +++ b/spec/models/concerns/cascading_namespace_setting_attribute_spec.rb @@ -142,7 +142,7 @@ RSpec.describe NamespaceSetting, 'CascadingNamespaceSettingAttribute' do end it 'does not allow the local value to be saved' do - subgroup_settings.delayed_project_removal = nil + subgroup_settings.delayed_project_removal = false expect { subgroup_settings.save! } .to raise_error(ActiveRecord::RecordInvalid, /Delayed project removal cannot be changed because it is locked by an ancestor/) @@ -164,6 +164,19 @@ RSpec.describe NamespaceSetting, 'CascadingNamespaceSettingAttribute' do end end + describe '#delayed_project_removal=' do + before do + subgroup_settings.update!(delayed_project_removal: nil) + group_settings.update!(delayed_project_removal: true) + end + + it 'does not save the value locally when it matches the cascaded value' do + subgroup_settings.update!(delayed_project_removal: true) + + expect(subgroup_settings.read_attribute(:delayed_project_removal)).to eq(nil) + end + end + describe '#delayed_project_removal_locked?' do shared_examples 'not locked' do it 'is not locked by an ancestor' do @@ -277,6 +290,13 @@ RSpec.describe NamespaceSetting, 'CascadingNamespaceSettingAttribute' do expect { subgroup_settings.save! } .to raise_error(ActiveRecord::RecordInvalid, /Delayed project removal cannot be nil when locking the attribute/) end + + it 'copies the cascaded value when locking the attribute if the local value is nil', :aggregate_failures do + subgroup_settings.delayed_project_removal = nil + subgroup_settings.lock_delayed_project_removal = true + + expect(subgroup_settings.read_attribute(:delayed_project_removal)).to eq(false) + end end context 'when application settings locks the attribute' do diff --git a/spec/policies/project_member_policy_spec.rb b/spec/policies/project_member_policy_spec.rb index ab8f8b83e7f..aebbe685bb3 100644 --- a/spec/policies/project_member_policy_spec.rb +++ b/spec/policies/project_member_policy_spec.rb @@ -16,12 +16,22 @@ RSpec.describe ProjectMemberPolicy do context 'with regular member' do let(:member_user) { create(:user) } + it { is_expected.to be_allowed(:read_project) } it { is_expected.to be_allowed(:update_project_member) } it { is_expected.to be_allowed(:destroy_project_member) } it { is_expected.not_to be_allowed(:destroy_project_bot_member) } end + context 'when user is project owner' do + let(:member_user) { project.owner } + let(:member) { project.members.find_by!(user: member_user) } + + it { is_expected.to be_allowed(:read_project) } + it { is_expected.to be_disallowed(:update_project_member) } + it { is_expected.to be_disallowed(:destroy_project_member) } + end + context 'with a bot member' do let(:member_user) { create(:user, :project_bot) } diff --git a/spec/requests/api/graphql/project/project_members_spec.rb b/spec/requests/api/graphql/project/project_members_spec.rb index 984a0adb8c6..c08bb8dc0a0 100644 --- a/spec/requests/api/graphql/project/project_members_spec.rb +++ b/spec/requests/api/graphql/project/project_members_spec.rb @@ -78,6 +78,22 @@ RSpec.describe 'getting project members information' do .to include('path' => %w[query project projectMembers relations], 'message' => a_string_including('invalid value ([OBLIQUE])')) end + + context 'when project is owned by a member' do + let_it_be(:project) { create(:project, namespace: user.namespace) } + + before_all do + project.add_guest(child_user) + project.add_guest(invited_user) + end + + it 'returns the owner in the response' do + fetch_members(project: project) + + expect(graphql_errors).to be_nil + expect_array_response(user, child_user, invited_user) + end + end end context 'when unauthenticated' do diff --git a/spec/workers/post_receive_spec.rb b/spec/workers/post_receive_spec.rb index f7fd1b1a0a7..a468c8c3482 100644 --- a/spec/workers/post_receive_spec.rb +++ b/spec/workers/post_receive_spec.rb @@ -94,30 +94,12 @@ RSpec.describe PostReceive do perform end - it 'tracks an event for the empty_repo_upload experiment', :snowplow do - allow_next_instance_of(ApplicationExperiment) do |e| - allow(e).to receive(:should_track?).and_return(true) - allow(e).to receive(:track_initial_writes) + it 'tracks an event for the empty_repo_upload experiment', :experiment do + expect_next_instance_of(EmptyRepoUploadExperiment) do |e| + expect(e).to receive(:track_initial_write) end perform - - expect_snowplow_event(category: 'empty_repo_upload', action: 'initial_write', context: [{ - schema: 'iglu:com.gitlab/gitlab_experiment/jsonschema/1-0-0', - data: anything - }]) - end - - it 'does not track an event for the empty_repo_upload experiment when project is not empty', :snowplow do - allow(empty_project).to receive(:empty_repo?).and_return(false) - allow_next_instance_of(ApplicationExperiment) do |e| - allow(e).to receive(:should_track?).and_return(true) - allow(e).to receive(:track_initial_writes) - end - - perform - - expect_no_snowplow_event end end