diff options
86 files changed, 10278 insertions, 196 deletions
diff --git a/app/assets/javascripts/issues/list/components/issues_list_app.vue b/app/assets/javascripts/issues/list/components/issues_list_app.vue index 0caf97a9f0c..ce4eafe7c8d 100644 --- a/app/assets/javascripts/issues/list/components/issues_list_app.vue +++ b/app/assets/javascripts/issues/list/components/issues_list_app.vue @@ -14,6 +14,7 @@ import CsvImportExportButtons from '~/issuable/components/csv_import_export_butt import IssuableByEmail from '~/issuable/components/issuable_by_email.vue'; import { IssuableStatus } from '~/issues/constants'; import axios from '~/lib/utils/axios_utils'; +import { fetchPolicies } from '~/lib/graphql'; import { isPositiveInteger } from '~/lib/utils/number_utils'; import { scrollUp } from '~/lib/utils/scroll_utils'; import { getParameterByName, joinPaths } from '~/lib/utils/url_utility'; @@ -191,8 +192,15 @@ export default { update(data) { return data[this.namespace]?.issues.nodes ?? []; }, + fetchPolicy: fetchPolicies.CACHE_AND_NETWORK, + // We need this for handling loading state when using frontend cache + // See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106004#note_1217325202 for details + notifyOnNetworkStatusChange: true, result({ data }) { - this.pageInfo = data?.[this.namespace]?.issues.pageInfo ?? {}; + if (!data) { + return; + } + this.pageInfo = data[this.namespace]?.issues.pageInfo ?? {}; this.exportCsvPathWithQuery = this.getExportCsvPathWithQuery(); }, error(error) { @@ -355,6 +363,7 @@ export default { token: LabelToken, operators: this.hasOrFeature ? OPERATORS_IS_NOT_OR : OPERATORS_IS_NOT, fetchLabels: this.fetchLabels, + fetchLatestLabels: this.glFeatures.frontendCaching ? this.fetchLatestLabels : null, recentSuggestionsStorageKey: `${this.fullPath}-issues-recent-tokens-label`, }, { @@ -477,6 +486,17 @@ export default { shouldDisableTextSearch() { return this.isAnonymousSearchDisabled && !this.isSignedIn; }, + // due to the issues with cache-and-network, we need this hack to check if there is any data for the query in the cache. + // if we have cached data, we disregard the loading state + isLoading() { + return ( + this.$apollo.queries.issues.loading && + !this.$apollo.provider.clients.defaultClient.readQuery({ + query: getIssuesQuery, + variables: this.queryVariables, + }) + ); + }, }, watch: { $route(newValue, oldValue) { @@ -515,11 +535,12 @@ export default { fetchReleases(search) { return this.fetchWithCache(this.releasesPath, 'releases', 'tag', search); }, - fetchLabels(search) { + fetchLabelsWithFetchPolicy(search, fetchPolicy = fetchPolicies.CACHE_FIRST) { return this.$apollo .query({ query: searchLabelsQuery, variables: { fullPath: this.fullPath, search, isProject: this.isProject }, + fetchPolicy, }) .then(({ data }) => data[this.namespace]?.labels.nodes) .then((labels) => @@ -528,6 +549,12 @@ export default { labels.filter((label) => label.title.toLowerCase().includes(search.toLowerCase())), ); }, + fetchLabels(search) { + return this.fetchLabelsWithFetchPolicy(search); + }, + fetchLatestLabels(search) { + return this.fetchLabelsWithFetchPolicy(search, fetchPolicies.NETWORK_ONLY); + }, fetchMilestones(search) { return this.$apollo .query({ @@ -774,7 +801,7 @@ export default { :current-tab="state" :tab-counts="tabCounts" :truncate-counts="!isProject" - :issuables-loading="$apollo.queries.issues.loading" + :issuables-loading="isLoading" :is-manual-ordering="isManualOrdering" :show-bulk-edit-sidebar="showBulkEditSidebar" :show-pagination-controls="showPaginationControls" diff --git a/app/assets/javascripts/issues/list/graphql.js b/app/assets/javascripts/issues/list/graphql.js index 5ef61727a3d..b590006929a 100644 --- a/app/assets/javascripts/issues/list/graphql.js +++ b/app/assets/javascripts/issues/list/graphql.js @@ -22,4 +22,6 @@ const resolvers = { }, }; -export const gqlClient = createDefaultClient(resolvers); +export const gqlClient = gon.features?.frontendCaching + ? createDefaultClient(resolvers, { localCacheKey: 'issues_list' }) + : createDefaultClient(resolvers); diff --git a/app/assets/javascripts/issues/list/queries/get_issues.query.graphql b/app/assets/javascripts/issues/list/queries/get_issues.query.graphql index ee97fb6edca..1018848fb53 100644 --- a/app/assets/javascripts/issues/list/queries/get_issues.query.graphql +++ b/app/assets/javascripts/issues/list/queries/get_issues.query.graphql @@ -31,7 +31,7 @@ query getIssues( $firstPageSize: Int $lastPageSize: Int ) { - group(fullPath: $fullPath) @skip(if: $isProject) { + group(fullPath: $fullPath) @skip(if: $isProject) @persist { id issues( includeSubgroups: true @@ -58,16 +58,18 @@ query getIssues( first: $firstPageSize last: $lastPageSize ) { + __persist pageInfo { ...PageInfo } nodes { + __persist ...IssueFragment reference(full: true) } } } - project(fullPath: $fullPath) @include(if: $isProject) { + project(fullPath: $fullPath) @include(if: $isProject) @persist { id issues( iid: $iid @@ -95,10 +97,12 @@ query getIssues( first: $firstPageSize last: $lastPageSize ) { + __persist pageInfo { ...PageInfo } nodes { + __persist ...IssueFragment } } diff --git a/app/assets/javascripts/issues/list/queries/issue.fragment.graphql b/app/assets/javascripts/issues/list/queries/issue.fragment.graphql index 040763f2ba4..3b49c0efb14 100644 --- a/app/assets/javascripts/issues/list/queries/issue.fragment.graphql +++ b/app/assets/javascripts/issues/list/queries/issue.fragment.graphql @@ -20,6 +20,7 @@ fragment IssueFragment on Issue { type assignees @skip(if: $hideUsers) { nodes { + __persist id avatarUrl name @@ -28,6 +29,7 @@ fragment IssueFragment on Issue { } } author @skip(if: $hideUsers) { + __persist id avatarUrl name @@ -36,6 +38,7 @@ fragment IssueFragment on Issue { } labels { nodes { + __persist id color title @@ -43,6 +46,7 @@ fragment IssueFragment on Issue { } } milestone { + __persist id dueDate startDate diff --git a/app/assets/javascripts/issues/list/queries/search_labels.query.graphql b/app/assets/javascripts/issues/list/queries/search_labels.query.graphql index 44b57317161..7c2aa19046c 100644 --- a/app/assets/javascripts/issues/list/queries/search_labels.query.graphql +++ b/app/assets/javascripts/issues/list/queries/search_labels.query.graphql @@ -1,18 +1,22 @@ #import "./label.fragment.graphql" query searchLabels($fullPath: ID!, $search: String, $isProject: Boolean = false) { - group(fullPath: $fullPath) @skip(if: $isProject) { + group(fullPath: $fullPath) @skip(if: $isProject) @persist { id labels(searchTerm: $search, includeAncestorGroups: true, includeDescendantGroups: true) { + __persist nodes { + __persist ...Label } } } - project(fullPath: $fullPath) @include(if: $isProject) { + project(fullPath: $fullPath) @include(if: $isProject) @persist { id labels(searchTerm: $search, includeAncestorGroups: true) { + __persist nodes { + __persist ...Label } } diff --git a/app/assets/javascripts/issues/show/components/incidents/edit_timeline_event.vue b/app/assets/javascripts/issues/show/components/incidents/edit_timeline_event.vue index 4ef9b9c5a99..bbba08134f8 100644 --- a/app/assets/javascripts/issues/show/components/incidents/edit_timeline_event.vue +++ b/app/assets/javascripts/issues/show/components/incidents/edit_timeline_event.vue @@ -40,6 +40,7 @@ export default { :is-event-processed="editTimelineEventActive" :previous-occurred-at="event.occurredAt" :previous-note="event.note" + :previous-tags="event.timelineEventTags.nodes" is-editing @save-event="saveEvent" @cancel="$emit('hide-edit')" diff --git a/app/assets/javascripts/issues/show/components/incidents/graphql/queries/edit_timeline_event.mutation.graphql b/app/assets/javascripts/issues/show/components/incidents/graphql/queries/edit_timeline_event.mutation.graphql index 54f036268cc..77f955c08dc 100644 --- a/app/assets/javascripts/issues/show/components/incidents/graphql/queries/edit_timeline_event.mutation.graphql +++ b/app/assets/javascripts/issues/show/components/incidents/graphql/queries/edit_timeline_event.mutation.graphql @@ -7,6 +7,12 @@ mutation UpdateTimelineEvent($input: TimelineEventUpdateInput!) { action occurredAt createdAt + timelineEventTags { + nodes { + id + name + } + } } errors } diff --git a/app/assets/javascripts/issues/show/components/incidents/timeline_events_form.vue b/app/assets/javascripts/issues/show/components/incidents/timeline_events_form.vue index 6648e20865d..929679b8f3c 100644 --- a/app/assets/javascripts/issues/show/components/incidents/timeline_events_form.vue +++ b/app/assets/javascripts/issues/show/components/incidents/timeline_events_form.vue @@ -4,7 +4,7 @@ import MarkdownField from '~/vue_shared/components/markdown/field.vue'; import glFeatureFlagsMixin from '~/vue_shared/mixins/gl_feature_flags_mixin'; import { __, sprintf } from '~/locale'; import { MAX_TEXT_LENGTH, TIMELINE_EVENT_TAGS, timelineFormI18n } from './constants'; -import { getUtcShiftedDate } from './utils'; +import { getUtcShiftedDate, getPreviousEventTags } from './utils'; export default { name: 'TimelineEventsForm', @@ -77,7 +77,7 @@ export default { hourPickerInput: placeholderDate.getHours(), minutePickerInput: placeholderDate.getMinutes(), datePickerInput: placeholderDate, - selectedTags: [...this.previousTags], + selectedTags: getPreviousEventTags(this.previousTags), }; }, computed: { diff --git a/app/assets/javascripts/issues/show/components/incidents/timeline_events_list.vue b/app/assets/javascripts/issues/show/components/incidents/timeline_events_list.vue index 88d14c007bc..8540ffdc063 100644 --- a/app/assets/javascripts/issues/show/components/incidents/timeline_events_list.vue +++ b/app/assets/javascripts/issues/show/components/incidents/timeline_events_list.vue @@ -105,6 +105,7 @@ export default { id: eventDetails.id, note: eventDetails.note, occurredAt: eventDetails.occurredAt, + timelineEventTagNames: eventDetails.timelineEventTags, }, }, }) diff --git a/app/assets/javascripts/issues/show/components/incidents/utils.js b/app/assets/javascripts/issues/show/components/incidents/utils.js index 5a009debd75..ce33e91c3b8 100644 --- a/app/assets/javascripts/issues/show/components/incidents/utils.js +++ b/app/assets/javascripts/issues/show/components/incidents/utils.js @@ -32,3 +32,11 @@ export const getUtcShiftedDate = (ISOString = null) => { return date; }; + +/** + * Returns an array of previously set event tags + * @param {array} timelineEventTagsNodes + * @returns {array} + */ +export const getPreviousEventTags = (timelineEventTagsNodes = []) => + timelineEventTagsNodes.map(({ name }) => name); diff --git a/app/assets/javascripts/lib/apollo/persist_link.js b/app/assets/javascripts/lib/apollo/persist_link.js new file mode 100644 index 00000000000..9d95409d96c --- /dev/null +++ b/app/assets/javascripts/lib/apollo/persist_link.js @@ -0,0 +1,141 @@ +// this file is based on https://github.com/apollographql/apollo-cache-persist/blob/master/examples/react-native/src/utils/persistence/persistLink.ts +// with some heavy refactororing + +/* eslint-disable consistent-return */ +/* eslint-disable @gitlab/require-i18n-strings */ +/* eslint-disable no-param-reassign */ +import { visit } from 'graphql'; +import { ApolloLink } from '@apollo/client/core'; +import traverse from 'traverse'; + +const extractPersistDirectivePaths = (originalQuery, directive = 'persist') => { + const paths = []; + const fragmentPaths = {}; + const fragmentPersistPaths = {}; + + const query = visit(originalQuery, { + FragmentSpread: ({ name: { value: name } }, _key, _parent, _path, ancestors) => { + const root = ancestors.find( + ({ kind }) => kind === 'OperationDefinition' || kind === 'FragmentDefinition', + ); + + const rootKey = root.kind === 'FragmentDefinition' ? root.name.value : '$ROOT'; + + const fieldPath = ancestors + .filter(({ kind }) => kind === 'Field') + .map(({ name: { value } }) => value); + + fragmentPaths[name] = [rootKey].concat(fieldPath); + }, + Directive: ({ name: { value: name } }, _key, _parent, _path, ancestors) => { + if (name === directive) { + const fieldPath = ancestors + .filter(({ kind }) => kind === 'Field') + .map(({ name: { value } }) => value); + + const fragmentDefinition = ancestors.find(({ kind }) => kind === 'FragmentDefinition'); + + // If we are inside a fragment, we must save the reference. + if (fragmentDefinition) { + fragmentPersistPaths[fragmentDefinition.name.value] = fieldPath; + } else if (fieldPath.length) { + paths.push(fieldPath); + } + return null; + } + }, + }); + + // In case there are any FragmentDefinition items, we need to combine paths. + if (Object.keys(fragmentPersistPaths).length) { + visit(originalQuery, { + FragmentSpread: ({ name: { value: name } }, _key, _parent, _path, ancestors) => { + if (fragmentPersistPaths[name]) { + let fieldPath = ancestors + .filter(({ kind }) => kind === 'Field') + .map(({ name: { value } }) => value); + + fieldPath = fieldPath.concat(fragmentPersistPaths[name]); + + const fragment = name; + let parent = fragmentPaths[fragment][0]; + + while (parent && parent !== '$ROOT' && fragmentPaths[parent]) { + fieldPath = fragmentPaths[parent].slice(1).concat(fieldPath); + // eslint-disable-next-line prefer-destructuring + parent = fragmentPaths[parent][0]; + } + + paths.push(fieldPath); + } + }, + }); + } + + return { query, paths }; +}; + +/** + * Given a data result object path, return the equivalent query selection path. + * + * @param {Array} path The data result object path. i.e.: ["a", 0, "b"] + * @return {String} the query selection path. i.e.: "a.b" + */ +const toQueryPath = (path) => path.filter((key) => Number.isNaN(Number(key))).join('.'); + +const attachPersists = (paths, object) => { + const queryPaths = paths.map(toQueryPath); + function mapperFunction() { + if ( + !this.isRoot && + this.node && + typeof this.node === 'object' && + Object.keys(this.node).length && + !Array.isArray(this.node) + ) { + const path = toQueryPath(this.path); + + this.update({ + __persist: Boolean( + queryPaths.find( + (queryPath) => queryPath.indexOf(path) === 0 || path.indexOf(queryPath) === 0, + ), + ), + ...this.node, + }); + } + } + + return traverse(object).map(mapperFunction); +}; + +export const getPersistLink = () => { + return new ApolloLink((operation, forward) => { + const { query, paths } = extractPersistDirectivePaths(operation.query); + + // Noop if not a persist query + if (!paths.length) { + return forward(operation); + } + + // Replace query with one without @persist directives. + operation.query = query; + + // Remove requesting __persist fields. + operation.query = visit(operation.query, { + Field: ({ name: { value: name } }) => { + if (name === '__persist') { + return null; + } + }, + }); + + return forward(operation).map((result) => { + if (result.data) { + result.data = attachPersists(paths, result.data); + } + + return result; + }); + }); +}; diff --git a/app/assets/javascripts/lib/apollo/persistence_mapper.js b/app/assets/javascripts/lib/apollo/persistence_mapper.js new file mode 100644 index 00000000000..8fc7c69c79d --- /dev/null +++ b/app/assets/javascripts/lib/apollo/persistence_mapper.js @@ -0,0 +1,67 @@ +// this file is based on https://github.com/apollographql/apollo-cache-persist/blob/master/examples/react-native/src/utils/persistence/persistenceMapper.ts +// with some heavy refactororing + +/* eslint-disable @gitlab/require-i18n-strings */ +/* eslint-disable no-underscore-dangle */ +/* eslint-disable no-param-reassign */ +/* eslint-disable dot-notation */ +export const persistenceMapper = async (data) => { + const parsed = JSON.parse(data); + + const mapped = {}; + const persistEntities = []; + const rootQuery = parsed['ROOT_QUERY']; + + // cache entities that have `__persist: true` + Object.keys(parsed).forEach((key) => { + if (parsed[key]['__persist']) { + persistEntities.push(key); + } + }); + + // cache root queries that have `@persist` directive + mapped['ROOT_QUERY'] = Object.keys(rootQuery).reduce( + (obj, key) => { + if (key === '__typename') return obj; + + if (/@persist$/.test(key)) { + obj[key] = rootQuery[key]; + + if (Array.isArray(rootQuery[key])) { + const entities = rootQuery[key].map((item) => item.__ref); + persistEntities.push(...entities); + } else { + const entity = rootQuery[key].__ref; + persistEntities.push(entity); + } + } + + return obj; + }, + { __typename: 'Query' }, + ); + + persistEntities.reduce((obj, key) => { + const parsedEntity = parsed[key]; + + // check for root queries and only cache root query properties that have `__persist: true` + // we need this to prevent overcaching when we fetch the same entity (e.g. project) more than once + // with different set of fields + + if (Object.values(rootQuery).some((value) => value.__ref === key)) { + const mappedEntity = {}; + Object.entries(parsedEntity).forEach(([parsedKey, parsedValue]) => { + if (!parsedValue || typeof parsedValue !== 'object' || parsedValue['__persist']) { + mappedEntity[parsedKey] = parsedValue; + } + }); + obj[key] = mappedEntity; + } else { + obj[key] = parsed[key]; + } + + return obj; + }, mapped); + + return JSON.stringify(mapped); +}; diff --git a/app/assets/javascripts/lib/graphql.js b/app/assets/javascripts/lib/graphql.js index 98e45f95b38..c0e923b2670 100644 --- a/app/assets/javascripts/lib/graphql.js +++ b/app/assets/javascripts/lib/graphql.js @@ -1,6 +1,7 @@ import { ApolloClient, InMemoryCache, ApolloLink, HttpLink } from '@apollo/client/core'; import { BatchHttpLink } from '@apollo/client/link/batch-http'; import { createUploadLink } from 'apollo-upload-client'; +import { persistCacheSync, LocalStorageWrapper } from 'apollo3-cache-persist'; import ActionCableLink from '~/actioncable_link'; import { apolloCaptchaLink } from '~/captcha/apollo_captcha_link'; import possibleTypes from '~/graphql_shared/possible_types.json'; @@ -10,6 +11,8 @@ import { objectToQuery, queryToObject } from '~/lib/utils/url_utility'; import PerformanceBarService from '~/performance_bar/services/performance_bar_service'; import { getInstrumentationLink } from './apollo/instrumentation_link'; import { getSuppressNetworkErrorsDuringNavigationLink } from './apollo/suppress_network_errors_during_navigation_link'; +import { getPersistLink } from './apollo/persist_link'; +import { persistenceMapper } from './apollo/persistence_mapper'; export const fetchPolicies = { CACHE_FIRST: 'cache-first', @@ -110,6 +113,7 @@ export default (resolvers = {}, config = {}) => { typeDefs, path = '/api/graphql', useGet = false, + localCacheKey = null, } = config; let ac = null; let uri = `${gon.relative_url_root || ''}${path}`; @@ -201,6 +205,8 @@ export default (resolvers = {}, config = {}) => { }); }); + const persistLink = getPersistLink(); + const appLink = ApolloLink.split( hasSubscriptionOperation, new ActionCableLink(), @@ -212,27 +218,40 @@ export default (resolvers = {}, config = {}) => { performanceBarLink, new StartupJSLink(), apolloCaptchaLink, + persistLink, uploadsLink, requestLink, ].filter(Boolean), ), ); + const newCache = new InMemoryCache({ + ...cacheConfig, + typePolicies: { + ...typePolicies, + ...cacheConfig.typePolicies, + }, + possibleTypes: { + ...possibleTypes, + ...cacheConfig.possibleTypes, + }, + }); + + if (localCacheKey) { + persistCacheSync({ + cache: newCache, + // we leave NODE_ENV here temporarily for visibility so developers can easily see caching happening in dev mode + debug: process.env.NODE_ENV === 'development', + storage: new LocalStorageWrapper(window.localStorage), + persistenceMapper, + }); + } + ac = new ApolloClient({ typeDefs, link: appLink, connectToDevTools: process.env.NODE_ENV !== 'production', - cache: new InMemoryCache({ - ...cacheConfig, - typePolicies: { - ...typePolicies, - ...cacheConfig.typePolicies, - }, - possibleTypes: { - ...possibleTypes, - ...cacheConfig.possibleTypes, - }, - }), + cache: newCache, resolvers, defaultOptions: { query: { diff --git a/app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/label_token.vue b/app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/label_token.vue index 71c50ef292a..9449e071a0d 100644 --- a/app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/label_token.vue +++ b/app/assets/javascripts/vue_shared/components/filtered_search_bar/tokens/label_token.vue @@ -79,6 +79,9 @@ export default { // labels.json and /groups/:id/labels & /projects/:id/labels // return response differently. this.labels = Array.isArray(res) ? res : res.data; + if (this.config.fetchLatestLabels) { + this.fetchLatestLabels(searchTerm); + } }) .catch(() => createAlert({ @@ -89,6 +92,21 @@ export default { this.loading = false; }); }, + fetchLatestLabels(searchTerm) { + this.config + .fetchLatestLabels(searchTerm) + .then((res) => { + // We'd want to avoid doing this check but + // labels.json and /groups/:id/labels & /projects/:id/labels + // return response differently. + this.labels = Array.isArray(res) ? res : res.data; + }) + .catch(() => + createAlert({ + message: __('There was a problem fetching latest labels.'), + }), + ); + }, }, }; </script> diff --git a/app/controllers/projects/google_cloud/databases_controller.rb b/app/controllers/projects/google_cloud/databases_controller.rb index b511a85b0b8..9c20f10809c 100644 --- a/app/controllers/projects/google_cloud/databases_controller.rb +++ b/app/controllers/projects/google_cloud/databases_controller.rb @@ -51,7 +51,7 @@ module Projects if enable_response[:status] == :error track_event(:error_enable_cloudsql_services) - flash[:error] = error_message(enable_response[:message]) + flash[:alert] = error_message(enable_response[:message]) else create_response = ::GoogleCloud::CreateCloudsqlInstanceService .new(project, current_user, create_service_params) diff --git a/app/controllers/projects/google_cloud/deployments_controller.rb b/app/controllers/projects/google_cloud/deployments_controller.rb index fae8dbd59c7..92c99ad4271 100644 --- a/app/controllers/projects/google_cloud/deployments_controller.rb +++ b/app/controllers/projects/google_cloud/deployments_controller.rb @@ -22,7 +22,7 @@ class Projects::GoogleCloud::DeploymentsController < Projects::GoogleCloud::Base if enable_cloud_run_response[:status] == :error track_event(:error_enable_services) - flash[:error] = enable_cloud_run_response[:message] + flash[:alert] = enable_cloud_run_response[:message] redirect_to project_google_cloud_deployments_path(project) else params = { action: GoogleCloud::GeneratePipelineService::ACTION_DEPLOY_TO_CLOUD_RUN } @@ -31,7 +31,7 @@ class Projects::GoogleCloud::DeploymentsController < Projects::GoogleCloud::Base if generate_pipeline_response[:status] == :error track_event(:error_generate_cloudrun_pipeline) - flash[:error] = 'Failed to generate pipeline' + flash[:alert] = 'Failed to generate pipeline' redirect_to project_google_cloud_deployments_path(project) else cloud_run_mr_params = cloud_run_mr_params(generate_pipeline_response[:branch_name]) diff --git a/app/controllers/projects/issues_controller.rb b/app/controllers/projects/issues_controller.rb index 06c16297ce8..f71014dd45b 100644 --- a/app/controllers/projects/issues_controller.rb +++ b/app/controllers/projects/issues_controller.rb @@ -55,6 +55,7 @@ class Projects::IssuesController < Projects::ApplicationController before_action only: :index do push_frontend_feature_flag(:or_issuable_queries, project) + push_frontend_feature_flag(:frontend_caching, project&.group) end before_action only: :show do diff --git a/app/controllers/projects/merge_requests_controller.rb b/app/controllers/projects/merge_requests_controller.rb index c1f1ac33856..6385ed657f5 100644 --- a/app/controllers/projects/merge_requests_controller.rb +++ b/app/controllers/projects/merge_requests_controller.rb @@ -281,11 +281,9 @@ class Projects::MergeRequestsController < Projects::MergeRequests::ApplicationCo case result[:count] when 0 - flash[:error] = "Failed to assign you issues related to the merge request" - when 1 - flash[:notice] = "1 issue has been assigned to you" + flash[:alert] = _("Failed to assign you issues related to the merge request.") else - flash[:notice] = "#{result[:count]} issues have been assigned to you" + flash[:notice] = n_("An issue has been assigned to you.", "%d issues have been assigned to you.", result[:count]) end redirect_to(merge_request_path(@merge_request)) diff --git a/app/helpers/application_settings_helper.rb b/app/helpers/application_settings_helper.rb index 339938245a0..1b7657c0381 100644 --- a/app/helpers/application_settings_helper.rb +++ b/app/helpers/application_settings_helper.rb @@ -197,6 +197,7 @@ module ApplicationSettingsHelper :allow_local_requests_from_hooks_and_services, :allow_local_requests_from_web_hooks_and_services, :allow_local_requests_from_system_hooks, + :allow_possible_spam, :dns_rebinding_protection_enabled, :archive_builds_in_human_readable, :asset_proxy_enabled, diff --git a/app/helpers/learn_gitlab_helper.rb b/app/helpers/learn_gitlab_helper.rb index a07922e451a..e1241f8b572 100644 --- a/app/helpers/learn_gitlab_helper.rb +++ b/app/helpers/learn_gitlab_helper.rb @@ -36,7 +36,6 @@ module LearnGitlabHelper { url: url, completed: attributes[Onboarding::Progress.column_name(action)].present?, - svg: image_path("learn_gitlab/#{action}.svg"), enabled: true } ] diff --git a/app/models/application_setting.rb b/app/models/application_setting.rb index 59ad0650eb3..8c23c819804 100644 --- a/app/models/application_setting.rb +++ b/app/models/application_setting.rb @@ -415,6 +415,10 @@ class ApplicationSetting < ApplicationRecord numericality: { only_integer: true, greater_than_or_equal_to: 90, message: N_("'%{value}' days of inactivity must be greater than or equal to 90") }, if: :deactivate_dormant_users? + validates :allow_possible_spam, + allow_nil: false, + inclusion: { in: [true, false], message: N_('must be a boolean value') } + Gitlab::SSHPublicKey.supported_types.each do |type| validates :"#{type}_key_restriction", presence: true, key_restriction: { type: type } end diff --git a/app/models/application_setting_implementation.rb b/app/models/application_setting_implementation.rb index 8ef7e9a92a8..3a48b113473 100644 --- a/app/models/application_setting_implementation.rb +++ b/app/models/application_setting_implementation.rb @@ -41,6 +41,7 @@ module ApplicationSettingImplementation akismet_api_key: nil, allow_local_requests_from_system_hooks: true, allow_local_requests_from_web_hooks_and_services: false, + allow_possible_spam: false, asset_proxy_enabled: false, authorized_keys_enabled: true, # TODO default to false if the instance is configured to use AuthorizedKeysCommand commit_email_hostname: default_commit_email_hostname, diff --git a/app/models/concerns/spammable.rb b/app/models/concerns/spammable.rb index d27b451892a..fba923e843a 100644 --- a/app/models/concerns/spammable.rb +++ b/app/models/concerns/spammable.rb @@ -123,6 +123,6 @@ module Spammable # Override in Spammable if differs def allow_possible_spam? - Feature.enabled?(:allow_possible_spam, project) + Gitlab::CurrentSettings.allow_possible_spam end end diff --git a/app/services/spam/spam_verdict_service.rb b/app/services/spam/spam_verdict_service.rb index 0dcb3546034..4ec07bb4c5f 100644 --- a/app/services/spam/spam_verdict_service.rb +++ b/app/services/spam/spam_verdict_service.rb @@ -42,7 +42,7 @@ module Spam # Favour the most restrictive result. verdict = valid_results.min_by { |v| SUPPORTED_VERDICTS[v][:priority] } - # The target can override the verdict via the `allow_possible_spam` feature flag + # The target can override the verdict via the `allow_possible_spam` application setting verdict = OVERRIDE_VIA_ALLOW_POSSIBLE_SPAM if override_via_allow_possible_spam?(verdict: verdict) logger.info(class: self.class.name, diff --git a/app/views/admin/application_settings/_spam.html.haml b/app/views/admin/application_settings/_spam.html.haml index 96face44344..abc7abe92ad 100644 --- a/app/views/admin/application_settings/_spam.html.haml +++ b/app/views/admin/application_settings/_spam.html.haml @@ -47,6 +47,10 @@ help_text: _("Helps prevent bots from creating issues.") .form-group + = f.gitlab_ui_checkbox_component :allow_possible_spam, _('Allow possible spam'), + help_text: _('Only log Akismet verdict, do not prevent issue or snippet creation when spam is detected.') + + .form-group = f.label :akismet_api_key, _('Akismet API Key'), class: 'label-bold' = f.text_field :akismet_api_key, class: 'form-control gl-form-input' .form-text.text-muted diff --git a/config/feature_flags/development/allow_possible_spam.yml b/config/feature_flags/development/frontend_caching.yml index 89393c91c43..148bb3f6062 100644 --- a/config/feature_flags/development/allow_possible_spam.yml +++ b/config/feature_flags/development/frontend_caching.yml @@ -1,8 +1,8 @@ --- -name: allow_possible_spam -introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/17604 -rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/33421 -milestone: '12.4' +name: frontend_caching +introduced_by_url: https://gitlab.com/gitlab-org/gitlab/-/merge_requests/106004 +rollout_issue_url: https://gitlab.com/gitlab-org/gitlab/-/issues/386275 +milestone: '15.7' type: development -group: group::anti-abuse +group: group::project management default_enabled: false diff --git a/db/migrate/20230111171355_add_allow_possible_spam_to_application_settings.rb b/db/migrate/20230111171355_add_allow_possible_spam_to_application_settings.rb new file mode 100644 index 00000000000..0b6b20e6129 --- /dev/null +++ b/db/migrate/20230111171355_add_allow_possible_spam_to_application_settings.rb @@ -0,0 +1,9 @@ +# frozen_string_literal: true + +class AddAllowPossibleSpamToApplicationSettings < Gitlab::Database::Migration[2.1] + enable_lock_retries! + + def change + add_column :application_settings, :allow_possible_spam, :boolean, default: false, null: false + end +end diff --git a/db/schema_migrations/20230111171355 b/db/schema_migrations/20230111171355 new file mode 100644 index 00000000000..453c56f562d --- /dev/null +++ b/db/schema_migrations/20230111171355 @@ -0,0 +1 @@ +add0aa50627dd4a76e090c72d816f071113c59e96ed8eeb6733c93554b1a8a6f
\ No newline at end of file diff --git a/db/structure.sql b/db/structure.sql index 1fb41bf1245..76fcd9d52b0 100644 --- a/db/structure.sql +++ b/db/structure.sql @@ -11565,6 +11565,7 @@ CREATE TABLE application_settings ( bulk_import_enabled boolean DEFAULT false NOT NULL, allow_runner_registration_token boolean DEFAULT true NOT NULL, user_defaults_to_private_profile boolean DEFAULT false NOT NULL, + allow_possible_spam boolean DEFAULT false NOT NULL, CONSTRAINT app_settings_container_reg_cleanup_tags_max_list_size_positive CHECK ((container_registry_cleanup_tags_service_max_list_size >= 0)), CONSTRAINT app_settings_container_registry_pre_import_tags_rate_positive CHECK ((container_registry_pre_import_tags_rate >= (0)::numeric)), CONSTRAINT app_settings_dep_proxy_ttl_policies_worker_capacity_positive CHECK ((dependency_proxy_ttl_group_policy_worker_capacity >= 0)), diff --git a/doc/development/spam_protection_and_captcha/exploratory_testing.md b/doc/development/spam_protection_and_captcha/exploratory_testing.md index fe5c1c3db56..b2d780b1563 100644 --- a/doc/development/spam_protection_and_captcha/exploratory_testing.md +++ b/doc/development/spam_protection_and_captcha/exploratory_testing.md @@ -353,8 +353,8 @@ GraphQL response: } ``` -### Scenario: `allow_possible_spam` feature flag enabled +### Scenario: `allow_possible_spam` application setting enabled -With the `allow_possible_spam` feature flag enabled, the API returns a 200 response. Any +With the `allow_possible_spam` application setting enabled, the API returns a 200 response. Any valid request is successful and no CAPTCHA is presented, even if the request is considered spam. diff --git a/doc/operations/incident_management/incident_timeline_events.md b/doc/operations/incident_management/incident_timeline_events.md index 4af5a815929..c03cb6a9689 100644 --- a/doc/operations/incident_management/incident_timeline_events.md +++ b/doc/operations/incident_management/incident_timeline_events.md @@ -107,3 +107,20 @@ Alternatively: 1. On the right of a timeline event, select **More actions** (**{ellipsis_v}**) and then select **Edit**. 1. Select **Delete**. 1. To confirm, select **Delete event**. + +## Incident tags + +> [Introduced](https://gitlab.com/groups/gitlab-org/-/epics/8741) in GitLab 15.9 [with a flag](../../administration/feature_flags.md) named `incident_event_tags`. Disabled by default. + +FLAG: +On self-managed GitLab, by default this feature is not available. To make it available, ask an administrator to [enable the feature flag](../../administration/feature_flags.md) named `incident_event_tags`. +On GitLab.com, this feature is not available. +This feature is not ready for production use. + +[When creating an event using the form](#using-the-form) or editing it, +you can specify incident tags to capture relevant incident timestamps. +Timeline tags are optional. You can choose more than one tag per event. +When you create a timeline event and select the tags, the event note +is populated with a default message. +This allows for a quick event creation. If a note has already been set, it isn't changed. +Added tags are displayed next to the timestamp. diff --git a/doc/user/project/import/github.md b/doc/user/project/import/github.md index da3637541d9..a76dc425dc5 100644 --- a/doc/user/project/import/github.md +++ b/doc/user/project/import/github.md @@ -38,6 +38,7 @@ If you are importing from GitHub Enterprise to a self-managed GitLab instance: If you are importing from GitHub.com to a self-managed GitLab instance: - Setting up GitHub integration is not required. +- GitHub must be enabled as an import source in the [Admin Area](../../admin_area/settings/visibility_and_access_controls.md#configure-allowed-import-sources). - You can use the [Import API](../../../api/import.md). When importing projects: diff --git a/fixtures/lib/gitlab/graphql/queries/persist_directive.query.graphql b/fixtures/lib/gitlab/graphql/queries/persist_directive.query.graphql new file mode 100644 index 00000000000..843ae77d8b4 --- /dev/null +++ b/fixtures/lib/gitlab/graphql/queries/persist_directive.query.graphql @@ -0,0 +1,3 @@ +query { + project @persist +} diff --git a/fixtures/lib/gitlab/graphql/queries/persist_field.query.graphql b/fixtures/lib/gitlab/graphql/queries/persist_field.query.graphql new file mode 100644 index 00000000000..bb52afeb94e --- /dev/null +++ b/fixtures/lib/gitlab/graphql/queries/persist_field.query.graphql @@ -0,0 +1,6 @@ +query { + blog(title: "A history of GraphQL") { + __persist + title + } +} diff --git a/fixtures/lib/gitlab/graphql/queries/persistantly_directive.query.graphql b/fixtures/lib/gitlab/graphql/queries/persistantly_directive.query.graphql new file mode 100644 index 00000000000..88a58d01a30 --- /dev/null +++ b/fixtures/lib/gitlab/graphql/queries/persistantly_directive.query.graphql @@ -0,0 +1,3 @@ +query { + project @persistantly +} diff --git a/lib/gitlab/graphql/queries.rb b/lib/gitlab/graphql/queries.rb index cf06a2729d9..9cdc84ffaa3 100644 --- a/lib/gitlab/graphql/queries.rb +++ b/lib/gitlab/graphql/queries.rb @@ -91,7 +91,8 @@ module Gitlab end def print_field(field, indent: '') - if skips? && field.directives.any? { |d| d.name == 'client' } + if skips? && + (field.directives.any? { |d| d.name == 'client' || d.name == 'persist' } || field.name == '__persist') skipped = self.class.new(false) skipped.print_node(field) @@ -136,7 +137,7 @@ module Gitlab qs = [query] + all_imports(mode: mode).uniq.sort.map { |p| fragment(p).query } t = qs.join("\n\n").gsub(/\n\n+/, "\n\n") - return t unless /@client/.match?(t) + return t unless /(@client)|(persist)/.match?(t) doc = ::GraphQL.parse(t) printer = ClientFieldRedactor.new diff --git a/locale/gitlab.pot b/locale/gitlab.pot index 9a566689124..1774c6a56c5 100644 --- a/locale/gitlab.pot +++ b/locale/gitlab.pot @@ -4118,6 +4118,9 @@ msgstr "" msgid "Allow password authentication for the web interface" msgstr "" +msgid "Allow possible spam" +msgstr "" + msgid "Allow project maintainers to configure repository mirroring" msgstr "" @@ -4618,6 +4621,11 @@ msgstr "" msgid "An issue already exists" msgstr "" +msgid "An issue has been assigned to you." +msgid_plural "%d issues have been assigned to you." +msgstr[0] "" +msgstr[1] "" + msgid "An unauthenticated user" msgstr "" @@ -16891,6 +16899,9 @@ msgstr "" msgid "Failed to assign a user because no user was found." msgstr "" +msgid "Failed to assign you issues related to the merge request." +msgstr "" + msgid "Failed to cancel auto stop because failed to update the environment." msgstr "" @@ -29201,6 +29212,9 @@ msgstr "" msgid "Only include features new to your current subscription tier." msgstr "" +msgid "Only log Akismet verdict, do not prevent issue or snippet creation when spam is detected." +msgstr "" + msgid "Only members of this group can access the wiki." msgstr "" @@ -42570,6 +42584,9 @@ msgstr "" msgid "There was a problem fetching labels." msgstr "" +msgid "There was a problem fetching latest labels." +msgstr "" + msgid "There was a problem fetching linked pipelines." msgstr "" diff --git a/package.json b/package.json index d0964afcc31..18c443b3a9e 100644 --- a/package.json +++ b/package.json @@ -99,6 +99,7 @@ "@tiptap/suggestion": "^2.0.0-beta.202", "@tiptap/vue-2": "2.0.0-beta.200", "apollo-upload-client": "15.0.0", + "apollo3-cache-persist": "^0.14.1", "autosize": "^5.0.1", "axios": "^0.24.0", "babel-loader": "^8.2.5", @@ -185,6 +186,7 @@ "three": "^0.143.0", "timeago.js": "^4.0.2", "tippy.js": "^6.3.7", + "traverse": "^0.6.7", "unified": "^10.1.2", "unist-builder": "^3.0.0", "unist-util-visit-parents": "^5.1.0", diff --git a/qa/qa/fixtures/gpg/admin.asc b/qa/qa/fixtures/gpg/admin.asc Binary files differnew file mode 100644 index 00000000000..d8daa50cfc5 --- /dev/null +++ b/qa/qa/fixtures/gpg/admin.asc diff --git a/qa/qa/page/component/design_management.rb b/qa/qa/page/component/design_management.rb index 90c86688882..71c24b6cac8 100644 --- a/qa/qa/page/component/design_management.rb +++ b/qa/qa/page/component/design_management.rb @@ -78,7 +78,7 @@ module QA end def update_design(filename) - filepath = ::File.join('qa', 'fixtures', 'designs', 'update', filename) + filepath = ::File.join(Runtime::Path.fixtures_path, 'designs', 'update', filename) add_design(filepath) end diff --git a/qa/qa/resource/design.rb b/qa/qa/resource/design.rb index cc21045e226..127e7ae61e3 100644 --- a/qa/qa/resource/design.rb +++ b/qa/qa/resource/design.rb @@ -111,7 +111,7 @@ module QA private def filepath - ::File.absolute_path(::File.join('qa', 'fixtures', 'designs', filename)) + ::File.join(Runtime::Path.fixtures_path, 'designs', filename) end end end diff --git a/qa/qa/resource/import_project.rb b/qa/qa/resource/import_project.rb index 105d75285f1..a490905cbd6 100644 --- a/qa/qa/resource/import_project.rb +++ b/qa/qa/resource/import_project.rb @@ -7,7 +7,7 @@ module QA def initialize @name = "ImportedProject-#{SecureRandom.hex(8)}" - @file_path = ::File.join('qa', 'fixtures', 'export.tar.gz') + @file_path = ::File.join(Runtime::Path.fixtures_path, 'export.tar.gz') end def fabricate! diff --git a/qa/qa/resource/runner_base.rb b/qa/qa/resource/runner_base.rb index 7580aa108c9..9386a5d9765 100644 --- a/qa/qa/resource/runner_base.rb +++ b/qa/qa/resource/runner_base.rb @@ -122,7 +122,7 @@ module QA end def runner(**kwargs) - raise("Not implemented!") + raise NotImplementedError end end end diff --git a/qa/qa/runtime/fixtures.rb b/qa/qa/runtime/fixtures.rb index d56af9b4872..201cf7f0fcb 100644 --- a/qa/qa/runtime/fixtures.rb +++ b/qa/qa/runtime/fixtures.rb @@ -14,7 +14,8 @@ module QA response = get(request.url) unless response.code == HTTP_STATUS_OK - raise TemplateNotFoundError, "Template at #{request.mask_url} could not be found (#{response.code}): `#{response}`." + raise TemplateNotFoundError, + "Template at #{request.mask_url} could not be found (#{response.code}): `#{response}`." end parse_body(response)[:content] @@ -34,11 +35,7 @@ module QA end def read_fixture(fixture_path, file_name) - file_path = Pathname - .new(__dir__) - .join("../fixtures/#{fixture_path}/#{file_name}") - - File.read(file_path) + File.read(File.join(Runtime::Path.fixtures_path, fixture_path, file_name)) end private diff --git a/qa/qa/runtime/gpg.rb b/qa/qa/runtime/gpg.rb index 9f8baf7e580..3314b14cd68 100644 --- a/qa/qa/runtime/gpg.rb +++ b/qa/qa/runtime/gpg.rb @@ -3,34 +3,19 @@ module QA module Runtime class GPG - attr_reader :key, :key_id + attr_reader :key_id + + delegate :shell, to: 'QA::Service::Shellout' def initialize @key_id = 'B8358D73048DACC4' - import_key(File.expand_path('qa/ee/fixtures/gpg/admin.asc')) - @key = collect_key.first - end - - private - - def import_key(path) - import_key = "gpg --import #{path}" - execute(import_key) - end - - def collect_key - get_ascii_format = "gpg --armor --export #{@key_id}" - execute(get_ascii_format) end - def execute(command) - Open3.capture2e(*command) do |stdin, out, wait| - out.each_char { |char| print char } + def key + return @key if defined?(@key) - if wait.value.exited? && wait.value.exitstatus.nonzero? - raise CommandError, "Command `#{command}` failed!" - end - end + shell("gpg --import #{File.join(Path.fixtures_path, 'gpg', 'admin.asc')}") + @key = shell("gpg --armor --export #{key_id}") end end end diff --git a/qa/qa/service/docker_run/ldap.rb b/qa/qa/service/docker_run/ldap.rb index c33d75ff640..a6982bddf28 100644 --- a/qa/qa/service/docker_run/ldap.rb +++ b/qa/qa/service/docker_run/ldap.rb @@ -28,7 +28,7 @@ module QA if volume_exists?(volume_name) volume_name else - File.expand_path("../fixtures/ldap/#{volume_name}", __dir__) + ::File.join(Runtime::Path.fixtures_path, 'ldap', volume_name) end end diff --git a/qa/qa/service/shellout.rb b/qa/qa/service/shellout.rb index 9b93297f6ff..218d5eecc85 100644 --- a/qa/qa/service/shellout.rb +++ b/qa/qa/service/shellout.rb @@ -13,6 +13,7 @@ module QA def shell(command, stdin_data: nil, fail_on_exception: true, stream_progress: true, mask_secrets: []) # rubocop:disable Metrics/CyclomaticComplexity cmd_string = Array(command).join(' ') + cmd_output = '' QA::Runtime::Logger.info("Executing: `#{mask_secrets_on_string(cmd_string, mask_secrets).cyan}`") @@ -21,7 +22,6 @@ module QA stdin.close if stdin_data print_progress_dots = stream_progress && !Runtime::Env.running_in_ci? - cmd_output = '' out.each do |line| line = mask_secrets_on_string(line, mask_secrets) @@ -43,6 +43,8 @@ module QA Runtime::Logger.debug("Command output:\n#{cmd_output.strip}") unless cmd_output.empty? end + + cmd_output.strip end def sql_to_docker_exec_cmd(sql, username, password, database, host, container) diff --git a/qa/qa/specs/features/api/1_manage/migration/gitlab_migration_project_spec.rb b/qa/qa/specs/features/api/1_manage/migration/gitlab_migration_project_spec.rb index 9f6b1d38bd7..60ece89844d 100644 --- a/qa/qa/specs/features/api/1_manage/migration/gitlab_migration_project_spec.rb +++ b/qa/qa/specs/features/api/1_manage/migration/gitlab_migration_project_spec.rb @@ -24,7 +24,7 @@ module QA group.api_client = admin_api_client group.sandbox = source_sandbox group.path = "source-group-for-import-#{SecureRandom.hex(4)}" - group.avatar = File.new('qa/fixtures/designs/tanuki.jpg', 'r') + group.avatar = File.new(File.join(Runtime::Path.fixtures_path, 'designs', 'tanuki.jpg'), 'r') end end diff --git a/qa/qa/specs/features/browser_ui/2_plan/design_management/add_design_content_spec.rb b/qa/qa/specs/features/browser_ui/2_plan/design_management/add_design_content_spec.rb index eaf43f04c4b..130006fe424 100644 --- a/qa/qa/specs/features/browser_ui/2_plan/design_management/add_design_content_spec.rb +++ b/qa/qa/specs/features/browser_ui/2_plan/design_management/add_design_content_spec.rb @@ -5,7 +5,7 @@ module QA describe 'Design Management' do let(:issue) { Resource::Issue.fabricate_via_api! } let(:design_filename) { 'banana_sample.gif' } - let(:design) { File.absolute_path(File.join('qa', 'fixtures', 'designs', design_filename)) } + let(:design) { File.join(Runtime::Path.fixtures_path, 'designs', design_filename) } let(:annotation) { "This design is great!" } before do @@ -13,7 +13,7 @@ module QA end it 'user adds a design and annotates it', - testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347822' do + testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347822' do issue.visit! Page::Project::Issue::Show.perform do |issue| diff --git a/qa/qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb b/qa/qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb index 45c3c264837..e2fd0ec9cef 100644 --- a/qa/qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb +++ b/qa/qa/specs/features/browser_ui/2_plan/issue/create_issue_spec.rb @@ -60,7 +60,7 @@ module QA context 'when using attachments in comments', :object_storage do let(:png_file_name) { 'testfile.png' } let(:file_to_attach) do - File.absolute_path(File.join('qa', 'fixtures', 'designs', png_file_name)) + File.join(Runtime::Path.fixtures_path, 'designs', png_file_name) end before do diff --git a/qa/qa/specs/features/browser_ui/3_create/merge_request/suggestions/batch_suggestion_spec.rb b/qa/qa/specs/features/browser_ui/3_create/merge_request/suggestions/batch_suggestion_spec.rb index 829b7bab829..7b89b021d89 100644 --- a/qa/qa/specs/features/browser_ui/3_create/merge_request/suggestions/batch_suggestion_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/merge_request/suggestions/batch_suggestion_spec.rb @@ -2,7 +2,7 @@ module QA RSpec.describe 'Create', :reliable, product_group: :code_review do - context 'Add batch suggestions to a Merge Request' do + context 'with merge request batch suggestions' do let(:project) do Resource::Project.fabricate_via_api! do |project| project.name = 'suggestions_project' @@ -15,9 +15,7 @@ module QA merge_request.title = 'Needs some suggestions' merge_request.description = '... so please add them.' merge_request.file_content = File.read( - Pathname - .new(__dir__) - .join('../../../../../../fixtures/metrics_dashboards/templating.yml') + File.join(Runtime::Path.fixtures_path, 'metrics_dashboards', 'templating.yml') ) end end diff --git a/qa/qa/specs/features/browser_ui/3_create/merge_request/suggestions/custom_commit_suggestion_spec.rb b/qa/qa/specs/features/browser_ui/3_create/merge_request/suggestions/custom_commit_suggestion_spec.rb index 433ef90d9aa..499d4c00384 100644 --- a/qa/qa/specs/features/browser_ui/3_create/merge_request/suggestions/custom_commit_suggestion_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/merge_request/suggestions/custom_commit_suggestion_spec.rb @@ -2,7 +2,7 @@ module QA RSpec.describe 'Create' do - context 'Add suggestions to a Merge Request', product_group: :code_review do + context 'with merge request suggestions', product_group: :code_review do let(:commit_message) { 'Applying suggested change for testing purposes.' } let(:project) do @@ -17,9 +17,7 @@ module QA merge_request.title = 'Needs some suggestions' merge_request.description = '... so please add them.' merge_request.file_content = File.read( - Pathname - .new(__dir__) - .join('../../../../../../fixtures/metrics_dashboards/templating.yml') + File.join(Runtime::Path.fixtures_path, 'metrics_dashboards', 'templating.yml') ) end end @@ -43,7 +41,8 @@ module QA merge_request.visit! end - it 'applies a single suggestion with a custom message', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347711' do + it 'applies a single suggestion with a custom message', + testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347711' do Page::MergeRequest::Show.perform do |merge_request| merge_request.click_diffs_tab merge_request.apply_suggestion_with_message(commit_message) diff --git a/qa/qa/specs/features/browser_ui/3_create/project_wiki/project_based_file_upload_spec.rb b/qa/qa/specs/features/browser_ui/3_create/project_wiki/project_based_file_upload_spec.rb index fbe662341c0..c782139823e 100644 --- a/qa/qa/specs/features/browser_ui/3_create/project_wiki/project_based_file_upload_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/project_wiki/project_based_file_upload_spec.rb @@ -17,7 +17,7 @@ module QA end it 'by creating a formatted page with an image uploaded', - testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347640' do + testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347640' do initial_wiki.visit! Page::Project::Wiki::Show.perform(&:click_new_page) @@ -26,7 +26,7 @@ module QA edit.set_title(page_title) edit.use_new_editor edit.add_heading('Heading 1', heading_text) - edit.upload_image(File.absolute_path(File.join('qa', 'fixtures', 'designs', image_file_name))) + edit.upload_image(File.join(Runtime::Path.fixtures_path, 'designs', image_file_name)) end Page::Project::Wiki::Edit.perform(&:click_submit) diff --git a/qa/qa/specs/features/browser_ui/3_create/repository/license_detection_spec.rb b/qa/qa/specs/features/browser_ui/3_create/repository/license_detection_spec.rb index 50df8afafaf..86a9f2c46fb 100644 --- a/qa/qa/specs/features/browser_ui/3_create/repository/license_detection_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/repository/license_detection_spec.rb @@ -11,7 +11,7 @@ module QA shared_examples 'project license detection' do it 'displays the name of the license on the repository' do - license_path = File.expand_path("../../../../../fixtures/software_licenses/#{license_file_name}", __dir__) + license_path = File.join(Runtime::Path.fixtures_path, 'software_licenses', license_file_name) Resource::Repository::Commit.fabricate_via_api! do |commit| commit.project = project commit.add_files([{ file_path: 'LICENSE', content: File.read(license_path) }]) diff --git a/qa/qa/specs/features/browser_ui/3_create/web_ide/server_hooks_custom_error_message_spec.rb b/qa/qa/specs/features/browser_ui/3_create/web_ide/server_hooks_custom_error_message_spec.rb index 8c171e6bc8c..080832990c9 100644 --- a/qa/qa/specs/features/browser_ui/3_create/web_ide/server_hooks_custom_error_message_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/web_ide/server_hooks_custom_error_message_spec.rb @@ -2,14 +2,14 @@ module QA RSpec.describe 'Create', :skip_live_env, except: { job: 'review-qa-*' }, - feature_flag: { name: 'vscode_web_ide', scope: :global }, - product_group: :editor, - quarantine: { - issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/387928', - type: :stale - } do + feature_flag: { name: 'vscode_web_ide', scope: :global }, + product_group: :editor, + quarantine: { + issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/387928', + type: :stale + } do describe 'Git Server Hooks' do - let(:file_path) { File.absolute_path(File.join('qa', 'fixtures', 'web_ide', 'README.md')) } + let(:file_path) { File.join(Runtime::Path.fixtures_path, 'web_ide', 'README.md') } let(:project) do Resource::Project.fabricate_via_api! do |project| @@ -29,9 +29,9 @@ module QA Runtime::Feature.enable(:vscode_web_ide) end - context 'Custom error messages' do + context 'with custom error messages' do it 'renders preconfigured error message when user hook failed on commit in WebIDE', - testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/364751' do + testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/364751' do Page::Project::Show.perform(&:open_web_ide_via_shortcut) Page::Project::WebIDE::Edit.perform do |ide| ide.wait_until_ide_loads diff --git a/qa/qa/specs/features/browser_ui/3_create/web_ide/upload_new_file_in_web_ide_spec.rb b/qa/qa/specs/features/browser_ui/3_create/web_ide/upload_new_file_in_web_ide_spec.rb index 781623d10f6..b83a95694de 100644 --- a/qa/qa/specs/features/browser_ui/3_create/web_ide/upload_new_file_in_web_ide_spec.rb +++ b/qa/qa/specs/features/browser_ui/3_create/web_ide/upload_new_file_in_web_ide_spec.rb @@ -1,12 +1,11 @@ # frozen_string_literal: true module QA - RSpec.describe 'Create', feature_flag: { name: 'vscode_web_ide', scope: :global }, product_group: :editor, quarantine: { - issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/387032', - type: :stale - } do + RSpec.describe 'Create', product_group: :editor, + feature_flag: { name: 'vscode_web_ide', scope: :global }, + quarantine: { issue: 'https://gitlab.com/gitlab-org/gitlab/-/issues/387032', type: :stale } do describe 'Upload a file in Web IDE' do - let(:file_path) { File.absolute_path(File.join('qa', 'fixtures', 'web_ide', file_name)) } + let(:file_path) { File.join(Runtime::Path.fixtures_path, 'web_ide', file_name) } let(:project) do Resource::Project.fabricate_via_api! do |project| @@ -43,7 +42,8 @@ module QA context 'when the file is a text file' do let(:file_name) { 'text_file.txt' } - it 'shows the Edit tab with the text', testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347852' do + it 'shows the Edit tab with the text', + testcase: 'https://gitlab.com/gitlab-org/gitlab/-/quality/test_cases/347852' do Page::Project::WebIDE::Edit.perform do |ide| ide.wait_until_ide_loads ide.upload_file(file_path) diff --git a/qa/qa/specs/features/shared_contexts/import/gitlab_group_migration_common.rb b/qa/qa/specs/features/shared_contexts/import/gitlab_group_migration_common.rb index 853f427db12..4bd81ccdf36 100644 --- a/qa/qa/specs/features/shared_contexts/import/gitlab_group_migration_common.rb +++ b/qa/qa/specs/features/shared_contexts/import/gitlab_group_migration_common.rb @@ -32,7 +32,7 @@ module QA Resource::Sandbox.fabricate_via_api! do |group| group.api_client = source_admin_api_client group.path = "source-group-for-import-#{SecureRandom.hex(4)}" - group.avatar = File.new("qa/fixtures/designs/tanuki.jpg", "r") + group.avatar = File.new(File.join(Runtime::Path.fixtures_path, 'designs', 'tanuki.jpg'), "r") end end diff --git a/qa/spec/runtime/script_extensions/interceptor_spec.rb b/qa/spec/runtime/script_extensions/interceptor_spec.rb index 28e8007973c..d7835b28071 100644 --- a/qa/spec/runtime/script_extensions/interceptor_spec.rb +++ b/qa/spec/runtime/script_extensions/interceptor_spec.rb @@ -3,7 +3,7 @@ RSpec.describe 'Interceptor' do let(:browser) { Capybara.current_session } # need a real host for the js runtime - let(:url) { "file://#{__dir__}/../../../qa/fixtures/script_extensions/test.html" } + let(:url) { "file://#{File.join(Runtime::Path.fixtures_path, 'script_extensions', 'test.html')}" } before(:context) do skip 'Only can test for chrome' unless QA::Runtime::Env.can_intercept? diff --git a/spec/controllers/projects/issues_controller_spec.rb b/spec/controllers/projects/issues_controller_spec.rb index 31e297e5773..a808f79ad7a 100644 --- a/spec/controllers/projects/issues_controller_spec.rb +++ b/spec/controllers/projects/issues_controller_spec.rb @@ -647,9 +647,8 @@ RSpec.describe Projects::IssuesController do end end - context 'when allow_possible_spam feature flag is false' do + context 'when allow_possible_spam application setting is false' do before do - stub_feature_flags(allow_possible_spam: false) expect(controller).to(receive(:spam_action_response_fields).with(issue)) do spam_action_response_fields end @@ -662,7 +661,11 @@ RSpec.describe Projects::IssuesController do end end - context 'when allow_possible_spam feature flag is true' do + context 'when allow_possible_spam application setting is true' do + before do + stub_application_setting(allow_possible_spam: true) + end + it 'updates the issue' do subject @@ -887,11 +890,7 @@ RSpec.describe Projects::IssuesController do end end - context 'when allow_possible_spam feature flag is false' do - before do - stub_feature_flags(allow_possible_spam: false) - end - + context 'when allow_possible_spam application setting is false' do it 'rejects an issue recognized as spam' do expect { update_issue }.not_to change { issue.reload.title } end @@ -925,7 +924,11 @@ RSpec.describe Projects::IssuesController do end end - context 'when allow_possible_spam feature flag is true' do + context 'when allow_possible_spam application setting is true' do + before do + stub_application_setting(allow_possible_spam: true) + end + it 'updates the issue recognized as spam' do expect { update_issue }.to change { issue.reload.title } end @@ -1234,8 +1237,6 @@ RSpec.describe Projects::IssuesController do context 'when SpamVerdictService allows the issue' do before do - stub_feature_flags(allow_possible_spam: false) - expect_next_instance_of(Spam::SpamVerdictService) do |verdict_service| expect(verdict_service).to receive(:execute).and_return(ALLOW) end @@ -1258,11 +1259,7 @@ RSpec.describe Projects::IssuesController do post_new_issue(title: 'Spam Title', description: 'Spam lives here') end - context 'when allow_possible_spam feature flag is false' do - before do - stub_feature_flags(allow_possible_spam: false) - end - + context 'when allow_possible_spam application setting is false' do it 'rejects an issue recognized as spam' do expect { post_spam_issue }.not_to change(Issue, :count) end @@ -1283,7 +1280,11 @@ RSpec.describe Projects::IssuesController do end end - context 'when allow_possible_spam feature flag is true' do + context 'when allow_possible_spam application setting is true' do + before do + stub_application_setting(allow_possible_spam: true) + end + it 'creates an issue recognized as spam' do expect { post_spam_issue }.to change(Issue, :count) end diff --git a/spec/controllers/projects/merge_requests_controller_spec.rb b/spec/controllers/projects/merge_requests_controller_spec.rb index 095775b0ddd..05c477fff68 100644 --- a/spec/controllers/projects/merge_requests_controller_spec.rb +++ b/spec/controllers/projects/merge_requests_controller_spec.rb @@ -1856,18 +1856,26 @@ RSpec.describe Projects::MergeRequestsController, feature_category: :code_review } end - it 'shows a flash message on success' do + it 'displays an flash error message on fail' do + allow(MergeRequests::AssignIssuesService).to receive(:new).and_return(double(execute: { count: 0 })) + post_assign_issues - expect(flash[:notice]).to eq '2 issues have been assigned to you' + expect(flash[:alert]).to eq _('Failed to assign you issues related to the merge request.') end - it 'correctly pluralizes flash message on success' do + it 'shows a flash message on success' do issue2.assignees = [user] post_assign_issues - expect(flash[:notice]).to eq '1 issue has been assigned to you' + expect(flash[:notice]).to eq n_("An issue has been assigned to you.", "%d issues have been assigned to you.", 1) + end + + it 'correctly pluralizes flash message on success' do + post_assign_issues + + expect(flash[:notice]).to eq n_("An issue has been assigned to you.", "%d issues have been assigned to you.", 2) end it 'calls MergeRequests::AssignIssuesService' do diff --git a/spec/features/incidents/incident_timeline_events_spec.rb b/spec/features/incidents/incident_timeline_events_spec.rb index 3a73ea50247..80b46078389 100644 --- a/spec/features/incidents/incident_timeline_events_spec.rb +++ b/spec/features/incidents/incident_timeline_events_spec.rb @@ -40,6 +40,39 @@ RSpec.describe 'Incident timeline events', :js, feature_category: :incident_mana end end + context 'when add event is clicked and feature flag enabled' do + before do + stub_feature_flags(incident_event_tags: true) + end + + it 'submits event data with tags when save is clicked' do + click_button s_('Incident|Add new timeline event') + + expect(page).to have_selector('.common-note-form') + + fill_in _('Description'), with: 'Event note goes here' + fill_in 'timeline-input-hours', with: '07' + fill_in 'timeline-input-minutes', with: '25' + + click_button _('Select tags') + + page.within '.gl-dropdown-inner' do + expect(page).to have_content(_('Start time')) + page.find('.gl-dropdown-item-text-wrapper', text: _('Start time')).click + end + + click_button _('Save') + + expect(page).to have_selector('.incident-timeline-events') + + page.within '.timeline-event-note' do + expect(page).to have_content('Event note goes here') + expect(page).to have_content('07:25') + expect(page).to have_content('Start time') + end + end + end + context 'when edit is clicked' do before do click_button 'Add new timeline event' @@ -72,6 +105,46 @@ RSpec.describe 'Incident timeline events', :js, feature_category: :incident_mana end end + context 'when edit is clicked and feature flag enabled' do + before do + stub_feature_flags(incident_event_tags: true) + click_button 'Add new timeline event' + fill_in 'Description', with: 'Event note to edit' + click_button _('Select tags') + + page.within '.gl-dropdown-inner' do + page.find('.gl-dropdown-item-text-wrapper', text: _('Start time')).click + end + click_button _('Save') + end + + it 'shows the confirmation modal and edits the event tags' do + click_button _('More actions') + + page.within '.gl-dropdown-contents' do + expect(page).to have_content(_('Edit')) + page.find('.gl-dropdown-item-text-primary', text: _('Edit')).click + end + + expect(page).to have_selector('.common-note-form') + + click_button s_('Start time') + + page.within '.gl-dropdown-inner' do + expect(page).to have_content(_('Start time')) + page.find('.gl-dropdown-item-text-wrapper', text: _('Start time')).click + end + + click_button _('Save') + + wait_for_requests + + page.within '.timeline-event-note' do + expect(page).not_to have_content('Start time') + end + end + end + context 'when delete is clicked' do before do click_button s_('Incident|Add new timeline event') diff --git a/spec/features/issues/spam_akismet_issue_creation_spec.rb b/spec/features/issues/spam_akismet_issue_creation_spec.rb index 7c62f141105..176c26c6d8a 100644 --- a/spec/features/issues/spam_akismet_issue_creation_spec.rb +++ b/spec/features/issues/spam_akismet_issue_creation_spec.rb @@ -108,20 +108,20 @@ RSpec.describe 'Spam detection on issue creation', :js, feature_category: :team_ end end - shared_context 'when allow_possible_spam feature flag is true' do + shared_context 'when allow_possible_spam application setting is true' do before do - stub_feature_flags(allow_possible_spam: true) + stub_application_setting(allow_possible_spam: true) end end - shared_context 'when allow_possible_spam feature flag is false' do + shared_context 'when allow_possible_spam application setting is false' do before do - stub_feature_flags(allow_possible_spam: false) + stub_application_setting(allow_possible_spam: false) end end describe 'spam handling' do - # verdict, spam_flagged, captcha_enabled, allow_possible_spam_flag, creates_spam_log + # verdict, spam_flagged, captcha_enabled, allow_possible_spam, creates_spam_log # TODO: Add example for BLOCK_USER verdict when we add support for testing SpamCheck - see https://gitlab.com/groups/gitlab-org/-/epics/5527#lacking-coverage-for-spamcheck-vs-akismet # DISALLOW, true, false, false, true # CONDITIONAL_ALLOW, true, true, false, true @@ -133,7 +133,7 @@ RSpec.describe 'Spam detection on issue creation', :js, feature_category: :team_ context 'DISALLOW: spam_flagged=true, captcha_enabled=true, allow_possible_spam=true' do include_context 'when spammable is identified as possible spam' include_context 'when CAPTCHA is enabled' - include_context 'when allow_possible_spam feature flag is true' + include_context 'when allow_possible_spam application setting is true' it_behaves_like 'allows issue creation without CAPTCHA' it_behaves_like 'creates a spam_log record' @@ -142,7 +142,7 @@ RSpec.describe 'Spam detection on issue creation', :js, feature_category: :team_ context 'CONDITIONAL_ALLOW: spam_flagged=true, captcha_enabled=true, allow_possible_spam=false' do include_context 'when spammable is identified as possible spam' include_context 'when CAPTCHA is enabled' - include_context 'when allow_possible_spam feature flag is false' + include_context 'when allow_possible_spam application setting is false' it_behaves_like 'allows issue creation with CAPTCHA' it_behaves_like 'creates a spam_log record' @@ -151,7 +151,7 @@ RSpec.describe 'Spam detection on issue creation', :js, feature_category: :team_ context 'OVERRIDE_VIA_ALLOW_POSSIBLE_SPAM: spam_flagged=true, captcha_enabled=true, allow_possible_spam=true' do include_context 'when spammable is identified as possible spam' include_context 'when CAPTCHA is enabled' - include_context 'when allow_possible_spam feature flag is true' + include_context 'when allow_possible_spam application setting is true' it_behaves_like 'allows issue creation without CAPTCHA' it_behaves_like 'creates a spam_log record' @@ -160,7 +160,7 @@ RSpec.describe 'Spam detection on issue creation', :js, feature_category: :team_ context 'OVERRIDE_VIA_ALLOW_POSSIBLE_SPAM: spam_flagged=true, captcha_enabled=false, allow_possible_spam=true' do include_context 'when spammable is identified as possible spam' include_context 'when CAPTCHA is not enabled' - include_context 'when allow_possible_spam feature flag is true' + include_context 'when allow_possible_spam application setting is true' it_behaves_like 'allows issue creation without CAPTCHA' it_behaves_like 'creates a spam_log record' @@ -169,7 +169,7 @@ RSpec.describe 'Spam detection on issue creation', :js, feature_category: :team_ context 'ALLOW: spam_flagged=false, captcha_enabled=true, allow_possible_spam=false' do include_context 'when spammable is not identified as possible spam' include_context 'when CAPTCHA is not enabled' - include_context 'when allow_possible_spam feature flag is false' + include_context 'when allow_possible_spam application setting is false' it_behaves_like 'allows issue creation without CAPTCHA' it_behaves_like 'does not create a spam_log record' diff --git a/spec/features/snippets/spam_snippets_spec.rb b/spec/features/snippets/spam_snippets_spec.rb index 5d49b36f4fe..0e3f96906de 100644 --- a/spec/features/snippets/spam_snippets_spec.rb +++ b/spec/features/snippets/spam_snippets_spec.rb @@ -13,7 +13,6 @@ RSpec.describe 'snippet editor with spam', skip: "Will be handled in https://git end before do - stub_feature_flags(allow_possible_spam: false) stub_env('IN_MEMORY_APPLICATION_SETTINGS', 'false') Gitlab::CurrentSettings.update!( @@ -74,15 +73,15 @@ RSpec.describe 'snippet editor with spam', skip: "Will be handled in https://git end end - context 'when allow_possible_spam feature flag is false' do - before do - stub_application_setting(recaptcha_enabled: false) - end - + context 'when allow_possible_spam application setting is false' do it_behaves_like 'does not allow creation' end - context 'when allow_possible_spam feature flag is true' do + context 'when allow_possible_spam application setting is true' do + before do + stub_application_setting(allow_possible_spam: true) + end + it_behaves_like 'solve reCAPTCHA' end end @@ -94,7 +93,7 @@ RSpec.describe 'snippet editor with spam', skip: "Will be handled in https://git end end - context 'when allow_possible_spam feature flag is false' do + context 'when allow_possible_spam application setting is false' do before do stub_application_setting(recaptcha_enabled: false) end @@ -102,7 +101,11 @@ RSpec.describe 'snippet editor with spam', skip: "Will be handled in https://git it_behaves_like 'does not allow creation' end - context 'when allow_possible_spam feature flag is true' do + context 'when allow_possible_spam application setting is true' do + before do + stub_application_setting(allow_possible_spam: true) + end + it_behaves_like 'does not allow creation' end end diff --git a/spec/frontend/__helpers__/test_apollo_link.js b/spec/frontend/__helpers__/test_apollo_link.js index eab0c2de212..d9e7f5fc348 100644 --- a/spec/frontend/__helpers__/test_apollo_link.js +++ b/spec/frontend/__helpers__/test_apollo_link.js @@ -18,7 +18,7 @@ const FOO_QUERY = gql` * * @returns Promise resolving to the resulting operation after running the subjectLink */ -export const testApolloLink = (subjectLink, options = {}) => +export const testApolloLink = (subjectLink, options = {}, query = FOO_QUERY) => new Promise((resolve) => { const { context = {} } = options; @@ -38,6 +38,6 @@ export const testApolloLink = (subjectLink, options = {}) => // Trigger a query so the ApolloLink chain will be executed. client.query({ context, - query: FOO_QUERY, + query, }); }); diff --git a/spec/frontend/issues/dashboard/mock_data.js b/spec/frontend/issues/dashboard/mock_data.js index feb4cb80bd8..cff764a3590 100644 --- a/spec/frontend/issues/dashboard/mock_data.js +++ b/spec/frontend/issues/dashboard/mock_data.js @@ -27,6 +27,7 @@ export const issuesQueryResponse = { assignees: { nodes: [ { + __persist: true, __typename: 'UserCore', id: 'gid://gitlab/User/234', avatarUrl: 'avatar/url', @@ -37,6 +38,7 @@ export const issuesQueryResponse = { ], }, author: { + __persist: true, __typename: 'UserCore', id: 'gid://gitlab/User/456', avatarUrl: 'avatar/url', @@ -47,6 +49,7 @@ export const issuesQueryResponse = { labels: { nodes: [ { + __persist: true, id: 'gid://gitlab/ProjectLabel/456', color: '#333', title: 'Label title', diff --git a/spec/frontend/issues/list/components/issues_list_app_spec.js b/spec/frontend/issues/list/components/issues_list_app_spec.js index 89fa5b793b4..b42de6f8a44 100644 --- a/spec/frontend/issues/list/components/issues_list_app_spec.js +++ b/spec/frontend/issues/list/components/issues_list_app_spec.js @@ -131,6 +131,11 @@ describe('CE IssuesListApp component', () => { const findIssuableList = () => wrapper.findComponent(IssuableList); const findNewIssueDropdown = () => wrapper.findComponent(NewIssueDropdown); + const findLabelsToken = () => + findIssuableList() + .props('searchTokens') + .find((token) => token.type === TOKEN_TYPE_LABEL); + const mountComponent = ({ provide = {}, data = {}, @@ -179,7 +184,7 @@ describe('CE IssuesListApp component', () => { return waitForPromises(); }); - it('renders', () => { + it('renders', async () => { expect(findIssuableList().props()).toMatchObject({ namespace: defaultProvide.fullPath, recentSearchesStorageKey: 'issues', @@ -983,4 +988,30 @@ describe('CE IssuesListApp component', () => { ); }); }); + + describe('when providing token for labels', () => { + it('passes function to fetchLatestLabels property if frontend caching is enabled', () => { + wrapper = mountComponent({ + provide: { + glFeatures: { + frontendCaching: true, + }, + }, + }); + + expect(typeof findLabelsToken().fetchLatestLabels).toBe('function'); + }); + + it('passes null to fetchLatestLabels property if frontend caching is disabled', () => { + wrapper = mountComponent({ + provide: { + glFeatures: { + frontendCaching: false, + }, + }, + }); + + expect(findLabelsToken().fetchLatestLabels).toBe(null); + }); + }); }); diff --git a/spec/frontend/issues/list/mock_data.js b/spec/frontend/issues/list/mock_data.js index fc67d2e7605..1e8a81116f3 100644 --- a/spec/frontend/issues/list/mock_data.js +++ b/spec/frontend/issues/list/mock_data.js @@ -25,6 +25,7 @@ export const getIssuesQueryResponse = { id: '1', __typename: 'Project', issues: { + __persist: true, pageInfo: { __typename: 'PageInfo', hasNextPage: true, @@ -34,6 +35,7 @@ export const getIssuesQueryResponse = { }, nodes: [ { + __persist: true, __typename: 'Issue', id: 'gid://gitlab/Issue/123456', iid: '789', @@ -57,6 +59,7 @@ export const getIssuesQueryResponse = { assignees: { nodes: [ { + __persist: true, __typename: 'UserCore', id: 'gid://gitlab/User/234', avatarUrl: 'avatar/url', @@ -67,6 +70,7 @@ export const getIssuesQueryResponse = { ], }, author: { + __persist: true, __typename: 'UserCore', id: 'gid://gitlab/User/456', avatarUrl: 'avatar/url', @@ -77,6 +81,7 @@ export const getIssuesQueryResponse = { labels: { nodes: [ { + __persist: true, id: 'gid://gitlab/ProjectLabel/456', color: '#333', title: 'Label title', diff --git a/spec/frontend/issues/show/components/incidents/edit_timeline_event_spec.js b/spec/frontend/issues/show/components/incidents/edit_timeline_event_spec.js index 81c3c30bf8a..9159b742106 100644 --- a/spec/frontend/issues/show/components/incidents/edit_timeline_event_spec.js +++ b/spec/frontend/issues/show/components/incidents/edit_timeline_event_spec.js @@ -22,7 +22,11 @@ describe('Edit Timeline events', () => { const findTimelineEventsForm = () => wrapper.findComponent(TimelineEventsForm); - const mockSaveData = { ...fakeEventData, ...mockInputData }; + const mockSaveData = { + ...fakeEventData, + ...mockInputData, + timelineEventTags: ['Start time', 'End time'], + }; describe('editTimelineEvent', () => { const saveEventEvent = { 'handle-save-edit': [[mockSaveData, false]] }; diff --git a/spec/frontend/issues/show/components/incidents/mock_data.js b/spec/frontend/issues/show/components/incidents/mock_data.js index 6606bed1567..f6951864344 100644 --- a/spec/frontend/issues/show/components/incidents/mock_data.js +++ b/spec/frontend/issues/show/components/incidents/mock_data.js @@ -1,3 +1,16 @@ +export const mockTimelineEventTags = { + nodes: [ + { + id: 'gid://gitlab/IncidentManagement::TimelineEvent/132', + name: 'Start time', + }, + { + id: 'gid://gitlab/IncidentManagement::TimelineEvent/132', + name: 'End time', + }, + ], +}; + export const mockEvents = [ { action: 'comment', @@ -32,18 +45,7 @@ export const mockEvents = [ noteHtml: '<p>Dummy event 2</p>', occurredAt: '2022-03-23T14:57:00Z', updatedAt: '2022-03-23T14:57:08Z', - timelineEventTags: { - nodes: [ - { - id: 'gid://gitlab/IncidentManagement::TimelineEvent/132', - name: 'Start time', - }, - { - id: 'gid://gitlab/IncidentManagement::TimelineEvent/132', - name: 'End time', - }, - ], - }, + timelineEventTags: mockTimelineEventTags, __typename: 'TimelineEventType', }, { @@ -187,5 +189,12 @@ export const mockInputData = { occurredAt: '2020-08-10T02:30:00.000Z', }; -const { id, note, occurredAt } = mockEvents[0]; -export const fakeEventData = { id, note, occurredAt }; +const { id, note, occurredAt, timelineEventTags } = mockEvents[0]; +export const fakeEventData = { id, note, occurredAt, timelineEventTags }; +export const fakeEventSaveData = { + id, + note, + occurredAt, + timelineEventTagNames: timelineEventTags, + ...mockInputData, +}; diff --git a/spec/frontend/issues/show/components/incidents/timeline_events_form_spec.js b/spec/frontend/issues/show/components/incidents/timeline_events_form_spec.js index f06d968a4c5..184db12d2cd 100644 --- a/spec/frontend/issues/show/components/incidents/timeline_events_form_spec.js +++ b/spec/frontend/issues/show/components/incidents/timeline_events_form_spec.js @@ -190,6 +190,33 @@ describe('Timeline events form', () => { expect(findTextareaValue()).toBe('hello'); }); }); + + describe('form button behaviour', () => { + it('should enable the save buttons when event does not include tags', async () => { + await findTextarea().setValue('hello'); + + expect(findTagDropdown().props('toggleText')).toBe(timelineFormI18n.selectTags); + expect(findSubmitButton().props('disabled')).toBe(false); + expect(findSubmitAndAddButton().props('disabled')).toBe(false); + }); + + it('should clear the form', async () => { + setDatetime(); + await nextTick(); + + expect(findDatePicker().props('value')).toBe(mockInputDate); + expect(findHourInput().element.value).toBe('5'); + expect(findMinuteInput().element.value).toBe('45'); + + wrapper.vm.clear(); + await nextTick(); + + expect(findDatePicker().props('value')).toStrictEqual(new Date(fakeDate)); + expect(findHourInput().element.value).toBe('0'); + expect(findMinuteInput().element.value).toBe('0'); + expect(findTagDropdown().props('toggleText')).toBe(timelineFormI18n.selectTags); + }); + }); }); describe('form button behaviour', () => { diff --git a/spec/frontend/issues/show/components/incidents/timeline_events_list_spec.js b/spec/frontend/issues/show/components/incidents/timeline_events_list_spec.js index a7250e8ad0d..8a353668153 100644 --- a/spec/frontend/issues/show/components/incidents/timeline_events_list_spec.js +++ b/spec/frontend/issues/show/components/incidents/timeline_events_list_spec.js @@ -20,6 +20,7 @@ import { timelineEventsEditEventError, fakeDate, fakeEventData, + fakeEventSaveData, mockInputData, } from './mock_data'; @@ -183,20 +184,20 @@ describe('IncidentTimelineEventList', () => { }); const findEditEvent = () => wrapper.findComponent(EditTimelineEvent); - const mockSaveData = { ...fakeEventData, ...mockInputData }; + const mockHandleSaveEventData = { ...fakeEventData, ...mockInputData }; describe('editTimelineEvent', () => { it('should call the mutation with the right variables', async () => { - await findEditEvent().vm.$emit('handle-save-edit', mockSaveData); + await findEditEvent().vm.$emit('handle-save-edit', mockHandleSaveEventData); await waitForPromises(); expect(editResponseSpy).toHaveBeenCalledWith({ - input: mockSaveData, + input: fakeEventSaveData, }); }); it('should close the form on successful addition', async () => { - await findEditEvent().vm.$emit('handle-save-edit', mockSaveData); + await findEditEvent().vm.$emit('handle-save-edit', fakeEventSaveData); await waitForPromises(); expect(findEditEvent().exists()).toBe(false); @@ -217,7 +218,7 @@ describe('IncidentTimelineEventList', () => { }; editResponseSpy.mockResolvedValueOnce(timelineEventsEditEventError); - await findEditEvent().vm.$emit('handle-save-edit', mockSaveData); + await findEditEvent().vm.$emit('handle-save-edit', fakeEventSaveData); await waitForPromises(); expect(createAlert).toHaveBeenCalledWith(expectedAlertArgs); @@ -231,7 +232,7 @@ describe('IncidentTimelineEventList', () => { }; editResponseSpy.mockRejectedValueOnce(); - await findEditEvent().vm.$emit('handle-save-edit', mockSaveData); + await findEditEvent().vm.$emit('handle-save-edit', fakeEventSaveData); await waitForPromises(); expect(createAlert).toHaveBeenCalledWith(expectedAlertArgs); @@ -240,7 +241,7 @@ describe('IncidentTimelineEventList', () => { it('should keep the form open on failed addition', async () => { editResponseSpy.mockResolvedValueOnce(timelineEventsEditEventError); - await findEditEvent().vm.$emit('handle-save-edit', mockSaveData); + await findEditEvent().vm.$emit('handle-save-edit', fakeEventSaveData); await waitForPromises(); expect(findEditEvent().exists()).toBe(true); diff --git a/spec/frontend/issues/show/components/incidents/utils_spec.js b/spec/frontend/issues/show/components/incidents/utils_spec.js index f0494591e95..75be17f9889 100644 --- a/spec/frontend/issues/show/components/incidents/utils_spec.js +++ b/spec/frontend/issues/show/components/incidents/utils_spec.js @@ -3,8 +3,10 @@ import { displayAndLogError, getEventIcon, getUtcShiftedDate, + getPreviousEventTags, } from '~/issues/show/components/incidents/utils'; import { createAlert } from '~/flash'; +import { mockTimelineEventTags } from './mock_data'; jest.mock('~/flash'); @@ -51,4 +53,20 @@ describe('incident utils', () => { expect(shiftedDate > date).toBe(true); }); }); + + describe('getPreviousEventTags', () => { + it('should return an empty array, when passed object contains no tags', () => { + const nodes = []; + const previousTags = getPreviousEventTags(nodes); + + expect(previousTags.length).toBe(0); + }); + + it('should return an array of strings, when passed object containing tags', () => { + const previousTags = getPreviousEventTags(mockTimelineEventTags.nodes); + expect(previousTags.length).toBe(2); + expect(previousTags).toContain(mockTimelineEventTags.nodes[0].name); + expect(previousTags).toContain(mockTimelineEventTags.nodes[1].name); + }); + }); }); diff --git a/spec/frontend/lib/apollo/mock_data/cache_with_persist_directive.json b/spec/frontend/lib/apollo/mock_data/cache_with_persist_directive.json new file mode 100644 index 00000000000..a0d67885dad --- /dev/null +++ b/spec/frontend/lib/apollo/mock_data/cache_with_persist_directive.json @@ -0,0 +1,3089 @@ +{ + "Project:gid://gitlab/Project/6": { + "__typename": "Project", + "id": "gid://gitlab/Project/6", + "issues({\"includeSubepics\":true,\"state\":\"opened\",\"types\":[\"ISSUE\",\"INCIDENT\",\"TEST_CASE\",\"TASK\"]})": { + "__typename": "IssueConnection", + "count": 1115 + }, + "issues({\"includeSubepics\":true,\"state\":\"closed\",\"types\":[\"ISSUE\",\"INCIDENT\",\"TEST_CASE\",\"TASK\"]})": { + "__typename": "IssueConnection", + "count": 16 + }, + "issues({\"includeSubepics\":true,\"state\":\"all\",\"types\":[\"ISSUE\",\"INCIDENT\",\"TEST_CASE\",\"TASK\"]})": { + "__typename": "IssueConnection", + "count": 1131 + }, + "issues({\"after\":null,\"before\":\"eyJ1cGRhdGVkX2F0IjoiMjAyMy0wMS0wOSAwNDowNToyOS4yMzI5NDUwMDAgKzAwMDAiLCJpZCI6IjE1NjYifQ\",\"includeSubepics\":true,\"last\":20,\"sort\":\"UPDATED_DESC\",\"state\":\"opened\",\"types\":[\"ISSUE\",\"INCIDENT\",\"TEST_CASE\",\"TASK\"]})": { + "__typename": "IssueConnection", + "pageInfo": { + "__typename": "PageInfo", + "hasNextPage": true, + "hasPreviousPage": false, + "startCursor": "eyJ1cGRhdGVkX2F0IjoiMjAyMy0wMS0xMCAxMjozNjo1NC41NDYxNzEwMDAgKzAwMDAiLCJpZCI6IjQ4MyJ9", + "endCursor": "eyJ1cGRhdGVkX2F0IjoiMjAyMy0wMS0wOSAwNDowNToyOS4zMDE3NDcwMDAgKzAwMDAiLCJpZCI6IjE1NjcifQ" + }, + "nodes": [ + { + "__ref": "Issue:gid://gitlab/Issue/483" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1585" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1584" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1583" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1582" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1581" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1580" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1579" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1578" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1577" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1576" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1575" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1574" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1573" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1572" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1571" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1570" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1569" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1568" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1567" + } + ] + }, + "issues({\"includeSubepics\":true,\"search\":\"sint\",\"state\":\"opened\",\"types\":[\"ISSUE\",\"INCIDENT\",\"TEST_CASE\",\"TASK\"]})": { + "__typename": "IssueConnection", + "count": 44 + }, + "issues({\"includeSubepics\":true,\"search\":\"sint\",\"state\":\"closed\",\"types\":[\"ISSUE\",\"INCIDENT\",\"TEST_CASE\",\"TASK\"]})": { + "__typename": "IssueConnection", + "count": 0 + }, + "issues({\"includeSubepics\":true,\"search\":\"sint\",\"state\":\"all\",\"types\":[\"ISSUE\",\"INCIDENT\",\"TEST_CASE\",\"TASK\"]})": { + "__typename": "IssueConnection", + "count": 44 + }, + "issues({\"after\":null,\"before\":null,\"first\":20,\"includeSubepics\":true,\"search\":\"sint\",\"sort\":\"UPDATED_DESC\",\"state\":\"opened\",\"types\":[\"ISSUE\",\"INCIDENT\",\"TEST_CASE\",\"TASK\"]})": { + "__typename": "IssueConnection", + "pageInfo": { + "__typename": "PageInfo", + "hasNextPage": true, + "hasPreviousPage": false, + "startCursor": "eyJ1cGRhdGVkX2F0IjoiMjAyMy0wMS0wOSAwNDowNTozMC4zMTM3NDMwMDAgKzAwMDAiLCJpZCI6IjE1ODQifQ", + "endCursor": "eyJ1cGRhdGVkX2F0IjoiMjAyMy0wMS0wOSAwNDowNDo1OC43NDI3NTkwMDAgKzAwMDAiLCJpZCI6IjExNDEifQ" + }, + "nodes": [ + { + "__ref": "Issue:gid://gitlab/Issue/1584" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1540" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1532" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1515" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1514" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1463" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1461" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1439" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1403" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1399" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1375" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1349" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1333" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1321" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1318" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1299" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1268" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1262" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1254" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1141" + } + ] + }, + "projectMembers({\"relations\":[\"DIRECT\",\"INHERITED\",\"INVITED_GROUPS\"],\"search\":\"\"})": { + "__typename": "MemberInterfaceConnection", + "nodes": [ + { + "__ref": "ProjectMember:gid://gitlab/ProjectMember/54" + }, + { + "__ref": "ProjectMember:gid://gitlab/ProjectMember/53" + }, + { + "__ref": "ProjectMember:gid://gitlab/ProjectMember/52" + }, + { + "__ref": "GroupMember:gid://gitlab/GroupMember/26" + }, + { + "__ref": "GroupMember:gid://gitlab/GroupMember/25" + }, + { + "__ref": "GroupMember:gid://gitlab/GroupMember/11" + }, + { + "__ref": "GroupMember:gid://gitlab/GroupMember/10" + }, + { + "__ref": "GroupMember:gid://gitlab/GroupMember/9" + }, + { + "__ref": "GroupMember:gid://gitlab/GroupMember/1" + } + ] + }, + "milestones({\"includeAncestors\":true,\"searchTitle\":\"\",\"sort\":\"EXPIRED_LAST_DUE_DATE_ASC\",\"state\":\"active\"})": { + "__typename": "MilestoneConnection", + "nodes": [ + { + "__ref": "Milestone:gid://gitlab/Milestone/30" + }, + { + "__ref": "Milestone:gid://gitlab/Milestone/28" + }, + { + "__ref": "Milestone:gid://gitlab/Milestone/27" + }, + { + "__ref": "Milestone:gid://gitlab/Milestone/26" + }, + { + "__ref": "Milestone:gid://gitlab/Milestone/45" + } + ] + }, + "labels({\"includeAncestorGroups\":true,\"searchTerm\":\"\"})": { + "__typename": "LabelConnection", + "nodes": [ + { + "__ref": "Label:gid://gitlab/ProjectLabel/99" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/41" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/48" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/46" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/50" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/44" + }, + { + "__ref": "Label:gid://gitlab/ProjectLabel/96" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/45" + }, + { + "__ref": "Label:gid://gitlab/ProjectLabel/95" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/49" + }, + { + "__ref": "Label:gid://gitlab/ProjectLabel/98" + }, + { + "__ref": "Label:gid://gitlab/ProjectLabel/97" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/47" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/42" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/43" + } + ] + }, + "issues({\"after\":\"eyJ1cGRhdGVkX2F0IjoiMjAyMy0wMS0wOSAwNDowNDo1OC43NDI3NTkwMDAgKzAwMDAiLCJpZCI6IjExNDEifQ\",\"before\":null,\"first\":20,\"includeSubepics\":true,\"search\":\"sint\",\"sort\":\"UPDATED_DESC\",\"state\":\"opened\",\"types\":[\"ISSUE\",\"INCIDENT\",\"TEST_CASE\",\"TASK\"]})": { + "__typename": "IssueConnection", + "pageInfo": { + "__typename": "PageInfo", + "hasNextPage": true, + "hasPreviousPage": true, + "startCursor": "eyJ1cGRhdGVkX2F0IjoiMjAyMy0wMS0wOSAwNDowNDo1Ny42NTgwNTMwMDAgKzAwMDAiLCJpZCI6IjExMjMifQ", + "endCursor": "eyJ1cGRhdGVkX2F0IjoiMjAyMy0wMS0wOSAwNDowMjoyNy42OTg0MDEwMDAgKzAwMDAiLCJpZCI6IjU0MiJ9" + }, + "nodes": [ + { + "__ref": "Issue:gid://gitlab/Issue/1123" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1100" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1084" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1052" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1017" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1007" + }, + { + "__ref": "Issue:gid://gitlab/Issue/988" + }, + { + "__ref": "Issue:gid://gitlab/Issue/949" + }, + { + "__ref": "Issue:gid://gitlab/Issue/908" + }, + { + "__ref": "Issue:gid://gitlab/Issue/852" + }, + { + "__ref": "Issue:gid://gitlab/Issue/842" + }, + { + "__ref": "Issue:gid://gitlab/Issue/782" + }, + { + "__ref": "Issue:gid://gitlab/Issue/779" + }, + { + "__ref": "Issue:gid://gitlab/Issue/769" + }, + { + "__ref": "Issue:gid://gitlab/Issue/718" + }, + { + "__ref": "Issue:gid://gitlab/Issue/634" + }, + { + "__ref": "Issue:gid://gitlab/Issue/614" + }, + { + "__ref": "Issue:gid://gitlab/Issue/564" + }, + { + "__ref": "Issue:gid://gitlab/Issue/553" + }, + { + "__ref": "Issue:gid://gitlab/Issue/542" + } + ] + } + }, + "ROOT_QUERY": { + "__typename": "Query", + "project({\"fullPath\":\"flightjs/Flight\"}) @persist": { + "__ref": "Project:gid://gitlab/Project/6" + } + }, + "UserCore:gid://gitlab/User/1": { + "__typename": "UserCore", + "id": "gid://gitlab/User/1", + "avatarUrl": "https://secure.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", + "name": "Administrator", + "username": "root", + "webUrl": "https://gdk.test:3443/root" + }, + "Issue:gid://gitlab/Issue/483": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/483", + "iid": "31", + "confidential": false, + "createdAt": "2022-09-11T15:24:16Z", + "downvotes": 1, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 1, + "moved": false, + "state": "opened", + "title": "Instigate the Incident!", + "updatedAt": "2023-01-10T12:36:54Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 2, + "webPath": "/flightjs/Flight/-/issues/31", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/31", + "type": "INCIDENT", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1585": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1585", + "iid": "1131", + "confidential": false, + "createdAt": "2023-01-09T04:05:30Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "proident aute commodo", + "updatedAt": "2023-01-09T04:05:30Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1131", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1131", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1584": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1584", + "iid": "1130", + "confidential": false, + "createdAt": "2023-01-09T04:05:30Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint eiusmod eiusmod", + "updatedAt": "2023-01-09T04:05:30Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1130", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1130", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1583": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1583", + "iid": "1129", + "confidential": false, + "createdAt": "2023-01-09T04:05:30Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "commodo mollit est", + "updatedAt": "2023-01-09T04:05:30Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1129", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1129", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1582": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1582", + "iid": "1128", + "confidential": false, + "createdAt": "2023-01-09T04:05:30Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "non dolore laborum", + "updatedAt": "2023-01-09T04:05:30Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1128", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1128", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1581": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1581", + "iid": "1127", + "confidential": false, + "createdAt": "2023-01-09T04:05:30Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "commodo do occaecat", + "updatedAt": "2023-01-09T04:05:30Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1127", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1127", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1580": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1580", + "iid": "1126", + "confidential": false, + "createdAt": "2023-01-09T04:05:30Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "ea nostrud ea", + "updatedAt": "2023-01-09T04:05:30Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1126", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1126", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1579": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1579", + "iid": "1125", + "confidential": false, + "createdAt": "2023-01-09T04:05:30Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sed lorem fugiat", + "updatedAt": "2023-01-09T04:05:30Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1125", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1125", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1578": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1578", + "iid": "1124", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "mollit anim sunt", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1124", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1124", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1577": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1577", + "iid": "1123", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "adipiscing fugiat ullamco", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1123", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1123", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1576": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1576", + "iid": "1122", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "pariatur et elit", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1122", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1122", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1575": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1575", + "iid": "1121", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "ut ipsum occaecat", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1121", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1121", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1574": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1574", + "iid": "1120", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "mollit ea elit", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1120", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1120", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1573": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1573", + "iid": "1119", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "nostrud voluptate do", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1119", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1119", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1572": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1572", + "iid": "1118", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "ullamco consequat in", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1118", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1118", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1571": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1571", + "iid": "1117", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "velit Ut est", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1117", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1117", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1570": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1570", + "iid": "1116", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "lorem commodo est", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1116", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1116", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1569": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1569", + "iid": "1115", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "tempor irure laboris", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1115", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1115", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1568": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1568", + "iid": "1114", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "voluptate aliquip est", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1114", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1114", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1567": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1567", + "iid": "1113", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "exercitation dolore labore", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1113", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1113", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1540": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1540", + "iid": "1086", + "confidential": false, + "createdAt": "2023-01-09T04:05:27Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint nulla dolore", + "updatedAt": "2023-01-09T04:05:27Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1086", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1086", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1532": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1532", + "iid": "1078", + "confidential": false, + "createdAt": "2023-01-09T04:05:27Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "amet culpa sint", + "updatedAt": "2023-01-09T04:05:27Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1078", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1078", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1515": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1515", + "iid": "1061", + "confidential": false, + "createdAt": "2023-01-09T04:05:26Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint Duis incididunt", + "updatedAt": "2023-01-09T04:05:26Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1061", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1061", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1514": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1514", + "iid": "1060", + "confidential": false, + "createdAt": "2023-01-09T04:05:25Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint velit ullamco", + "updatedAt": "2023-01-09T04:05:25Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1060", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1060", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1463": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1463", + "iid": "1009", + "confidential": false, + "createdAt": "2023-01-09T04:05:22Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "dolor occaecat sint", + "updatedAt": "2023-01-09T04:05:22Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1009", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1009", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1461": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1461", + "iid": "1007", + "confidential": false, + "createdAt": "2023-01-09T04:05:22Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "mollit sint irure", + "updatedAt": "2023-01-09T04:05:22Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1007", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1007", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1439": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1439", + "iid": "985", + "confidential": false, + "createdAt": "2023-01-09T04:05:21Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint Ut amet", + "updatedAt": "2023-01-09T04:05:21Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/985", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/985", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1403": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1403", + "iid": "949", + "confidential": false, + "createdAt": "2023-01-09T04:05:18Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "in consequat sint", + "updatedAt": "2023-01-09T04:05:18Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/949", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/949", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1399": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1399", + "iid": "945", + "confidential": false, + "createdAt": "2023-01-09T04:05:18Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "velit nulla sint", + "updatedAt": "2023-01-09T04:05:18Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/945", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/945", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1375": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1375", + "iid": "921", + "confidential": false, + "createdAt": "2023-01-09T04:05:16Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint sed ex", + "updatedAt": "2023-01-09T04:05:16Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/921", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/921", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1349": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1349", + "iid": "895", + "confidential": false, + "createdAt": "2023-01-09T04:05:13Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "magna reprehenderit sint", + "updatedAt": "2023-01-09T04:05:13Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/895", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/895", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1333": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1333", + "iid": "879", + "confidential": false, + "createdAt": "2023-01-09T04:05:11Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "tempor dolore sint", + "updatedAt": "2023-01-09T04:05:11Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/879", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/879", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1321": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1321", + "iid": "867", + "confidential": false, + "createdAt": "2023-01-09T04:05:10Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "reprehenderit pariatur sint", + "updatedAt": "2023-01-09T04:05:10Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/867", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/867", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1318": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1318", + "iid": "864", + "confidential": false, + "createdAt": "2023-01-09T04:05:10Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sit sint ad", + "updatedAt": "2023-01-09T04:05:10Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/864", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/864", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1299": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1299", + "iid": "845", + "confidential": false, + "createdAt": "2023-01-09T04:05:08Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "velit sint fugiat", + "updatedAt": "2023-01-09T04:05:08Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/845", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/845", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1268": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1268", + "iid": "814", + "confidential": false, + "createdAt": "2023-01-09T04:05:06Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "dolor nostrud sint", + "updatedAt": "2023-01-09T04:05:06Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/814", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/814", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1262": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1262", + "iid": "808", + "confidential": false, + "createdAt": "2023-01-09T04:05:06Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "ut sint esse", + "updatedAt": "2023-01-09T04:05:06Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/808", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/808", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1254": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1254", + "iid": "800", + "confidential": false, + "createdAt": "2023-01-09T04:05:05Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint ea est", + "updatedAt": "2023-01-09T04:05:05Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/800", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/800", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1141": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1141", + "iid": "687", + "confidential": false, + "createdAt": "2023-01-09T04:04:58Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint quis laboris", + "updatedAt": "2023-01-09T04:04:58Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/687", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/687", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "UserCore:gid://gitlab/User/9": { + "__typename": "UserCore", + "id": "gid://gitlab/User/9", + "avatarUrl": "https://secure.gravatar.com/avatar/175e76e391370beeb21914ab74c2efd4?s=80&d=identicon", + "name": "Kiyoko Bahringer", + "username": "jamie" + }, + "ProjectMember:gid://gitlab/ProjectMember/54": { + "__typename": "ProjectMember", + "id": "gid://gitlab/ProjectMember/54", + "user": { + "__ref": "UserCore:gid://gitlab/User/9" + } + }, + "UserCore:gid://gitlab/User/19": { + "__typename": "UserCore", + "id": "gid://gitlab/User/19", + "avatarUrl": "https://secure.gravatar.com/avatar/3126153e3301ebf7cc8f7c99e57007f2?s=80&d=identicon", + "name": "Cecile Hermann", + "username": "jeannetta_breitenberg" + }, + "ProjectMember:gid://gitlab/ProjectMember/53": { + "__typename": "ProjectMember", + "id": "gid://gitlab/ProjectMember/53", + "user": { + "__ref": "UserCore:gid://gitlab/User/19" + } + }, + "UserCore:gid://gitlab/User/2": { + "__typename": "UserCore", + "id": "gid://gitlab/User/2", + "avatarUrl": "https://secure.gravatar.com/avatar/a138e401136c90561f949297387a3bb9?s=80&d=identicon", + "name": "Tish Treutel", + "username": "liana.larkin" + }, + "ProjectMember:gid://gitlab/ProjectMember/52": { + "__typename": "ProjectMember", + "id": "gid://gitlab/ProjectMember/52", + "user": { + "__ref": "UserCore:gid://gitlab/User/2" + } + }, + "UserCore:gid://gitlab/User/13": { + "__typename": "UserCore", + "id": "gid://gitlab/User/13", + "avatarUrl": "https://secure.gravatar.com/avatar/0ce8057f452296a13b5620bb2d9ede57?s=80&d=identicon", + "name": "Tammy Gusikowski", + "username": "xuan_oreilly" + }, + "GroupMember:gid://gitlab/GroupMember/26": { + "__typename": "GroupMember", + "id": "gid://gitlab/GroupMember/26", + "user": { + "__ref": "UserCore:gid://gitlab/User/13" + } + }, + "UserCore:gid://gitlab/User/21": { + "__typename": "UserCore", + "id": "gid://gitlab/User/21", + "avatarUrl": "https://secure.gravatar.com/avatar/415b09d256f26403384363d7948c4d77?s=80&d=identicon", + "name": "Twanna Hegmann", + "username": "jamaal" + }, + "GroupMember:gid://gitlab/GroupMember/25": { + "__typename": "GroupMember", + "id": "gid://gitlab/GroupMember/25", + "user": { + "__ref": "UserCore:gid://gitlab/User/21" + } + }, + "UserCore:gid://gitlab/User/14": { + "__typename": "UserCore", + "id": "gid://gitlab/User/14", + "avatarUrl": "https://secure.gravatar.com/avatar/e99697c6664381b0351b7617717dd49b?s=80&d=identicon", + "name": "Francie Cole", + "username": "greg.wisoky" + }, + "GroupMember:gid://gitlab/GroupMember/11": { + "__typename": "GroupMember", + "id": "gid://gitlab/GroupMember/11", + "user": { + "__ref": "UserCore:gid://gitlab/User/14" + } + }, + "UserCore:gid://gitlab/User/7": { + "__typename": "UserCore", + "id": "gid://gitlab/User/7", + "avatarUrl": "https://secure.gravatar.com/avatar/3a382857e362d6cce60d3806dd173444?s=80&d=identicon", + "name": "Ivan Carter", + "username": "ethyl" + }, + "GroupMember:gid://gitlab/GroupMember/10": { + "__typename": "GroupMember", + "id": "gid://gitlab/GroupMember/10", + "user": { + "__ref": "UserCore:gid://gitlab/User/7" + } + }, + "UserCore:gid://gitlab/User/15": { + "__typename": "UserCore", + "id": "gid://gitlab/User/15", + "avatarUrl": "https://secure.gravatar.com/avatar/79653006ff557e081db02deaa4ca281c?s=80&d=identicon", + "name": "Danuta Dare", + "username": "maddie_hintz" + }, + "GroupMember:gid://gitlab/GroupMember/9": { + "__typename": "GroupMember", + "id": "gid://gitlab/GroupMember/9", + "user": { + "__ref": "UserCore:gid://gitlab/User/15" + } + }, + "GroupMember:gid://gitlab/GroupMember/1": { + "__typename": "GroupMember", + "id": "gid://gitlab/GroupMember/1", + "user": { + "__ref": "UserCore:gid://gitlab/User/1" + } + }, + "Milestone:gid://gitlab/Milestone/30": { + "__typename": "Milestone", + "id": "gid://gitlab/Milestone/30", + "title": "v4.0" + }, + "Milestone:gid://gitlab/Milestone/28": { + "__typename": "Milestone", + "id": "gid://gitlab/Milestone/28", + "title": "v2.0" + }, + "Milestone:gid://gitlab/Milestone/27": { + "__typename": "Milestone", + "id": "gid://gitlab/Milestone/27", + "title": "v1.0" + }, + "Milestone:gid://gitlab/Milestone/26": { + "__typename": "Milestone", + "id": "gid://gitlab/Milestone/26", + "title": "v0.0" + }, + "Milestone:gid://gitlab/Milestone/45": { + "__typename": "Milestone", + "id": "gid://gitlab/Milestone/45", + "title": "Sprint - Autem id maxime consequatur quam." + }, + "Label:gid://gitlab/ProjectLabel/99": { + "__typename": "Label", + "id": "gid://gitlab/ProjectLabel/99", + "color": "#a5c6fb", + "textColor": "#333333", + "title": "Accent" + }, + "Label:gid://gitlab/GroupLabel/41": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/41", + "color": "#0609ba", + "textColor": "#FFFFFF", + "title": "Breckwood" + }, + "Label:gid://gitlab/GroupLabel/48": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/48", + "color": "#fa7620", + "textColor": "#FFFFFF", + "title": "Brieph" + }, + "Label:gid://gitlab/GroupLabel/46": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/46", + "color": "#d97020", + "textColor": "#FFFFFF", + "title": "Bryntfunc" + }, + "Label:gid://gitlab/GroupLabel/50": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/50", + "color": "#8a934f", + "textColor": "#FFFFFF", + "title": "CL" + }, + "Label:gid://gitlab/GroupLabel/44": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/44", + "color": "#9e1d53", + "textColor": "#FFFFFF", + "title": "Cofunc" + }, + "Label:gid://gitlab/ProjectLabel/96": { + "__typename": "Label", + "id": "gid://gitlab/ProjectLabel/96", + "color": "#0384f3", + "textColor": "#FFFFFF", + "title": "Corolla" + }, + "Label:gid://gitlab/GroupLabel/45": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/45", + "color": "#f0b448", + "textColor": "#FFFFFF", + "title": "Cygcell" + }, + "Label:gid://gitlab/ProjectLabel/95": { + "__typename": "Label", + "id": "gid://gitlab/ProjectLabel/95", + "color": "#d13231", + "textColor": "#FFFFFF", + "title": "Freestyle" + }, + "Label:gid://gitlab/GroupLabel/49": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/49", + "color": "#f43983", + "textColor": "#FFFFFF", + "title": "Genbalt" + }, + "Label:gid://gitlab/ProjectLabel/98": { + "__typename": "Label", + "id": "gid://gitlab/ProjectLabel/98", + "color": "#247441", + "textColor": "#FFFFFF", + "title": "LaSabre" + }, + "Label:gid://gitlab/ProjectLabel/97": { + "__typename": "Label", + "id": "gid://gitlab/ProjectLabel/97", + "color": "#3bd51a", + "textColor": "#FFFFFF", + "title": "Probe" + }, + "Label:gid://gitlab/GroupLabel/47": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/47", + "color": "#6bfb9d", + "textColor": "#333333", + "title": "Techbalt" + }, + "Label:gid://gitlab/GroupLabel/42": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/42", + "color": "#996016", + "textColor": "#FFFFFF", + "title": "Troffe" + }, + "Label:gid://gitlab/GroupLabel/43": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/43", + "color": "#a75c05", + "textColor": "#FFFFFF", + "title": "Tronceforge" + }, + "Issue:gid://gitlab/Issue/1123": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1123", + "iid": "669", + "confidential": false, + "createdAt": "2023-01-09T04:04:57Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "esse sint est", + "updatedAt": "2023-01-09T04:04:57Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/669", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/669", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1100": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1100", + "iid": "646", + "confidential": false, + "createdAt": "2023-01-09T04:04:56Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "cupidatat sunt sint", + "updatedAt": "2023-01-09T04:04:56Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/646", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/646", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1084": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1084", + "iid": "630", + "confidential": false, + "createdAt": "2023-01-09T04:04:54Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "culpa sint irure", + "updatedAt": "2023-01-09T04:04:54Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/630", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/630", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1052": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1052", + "iid": "598", + "confidential": false, + "createdAt": "2023-01-09T04:04:52Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint in anim", + "updatedAt": "2023-01-09T04:04:52Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/598", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/598", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1017": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1017", + "iid": "563", + "confidential": false, + "createdAt": "2023-01-09T04:04:50Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint lorem sint", + "updatedAt": "2023-01-09T04:04:50Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/563", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/563", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1007": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1007", + "iid": "553", + "confidential": false, + "createdAt": "2023-01-09T04:04:49Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "ea non sint", + "updatedAt": "2023-01-09T04:04:49Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/553", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/553", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/988": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/988", + "iid": "534", + "confidential": false, + "createdAt": "2023-01-09T04:04:47Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "minim ea sint", + "updatedAt": "2023-01-09T04:04:47Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/534", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/534", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/949": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/949", + "iid": "495", + "confidential": false, + "createdAt": "2023-01-09T04:04:42Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "adipiscing sint ullamco", + "updatedAt": "2023-01-09T04:04:42Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/495", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/495", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/908": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/908", + "iid": "454", + "confidential": false, + "createdAt": "2023-01-09T04:04:38Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sit dolore sint", + "updatedAt": "2023-01-09T04:04:38Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/454", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/454", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/852": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/852", + "iid": "398", + "confidential": false, + "createdAt": "2023-01-09T04:04:32Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "dolor adipiscing sint", + "updatedAt": "2023-01-09T04:04:32Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/398", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/398", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/842": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/842", + "iid": "388", + "confidential": false, + "createdAt": "2023-01-09T04:04:31Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "exercitation consequat sint", + "updatedAt": "2023-01-09T04:04:31Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/388", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/388", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/782": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/782", + "iid": "328", + "confidential": false, + "createdAt": "2023-01-09T04:04:23Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "eiusmod mollit sint", + "updatedAt": "2023-01-09T04:04:23Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/328", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/328", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/779": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/779", + "iid": "325", + "confidential": false, + "createdAt": "2023-01-09T04:04:23Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sunt sint aute", + "updatedAt": "2023-01-09T04:04:23Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/325", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/325", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/769": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/769", + "iid": "315", + "confidential": false, + "createdAt": "2023-01-09T04:04:22Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "aute et sint", + "updatedAt": "2023-01-09T04:04:22Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/315", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/315", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/718": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/718", + "iid": "264", + "confidential": false, + "createdAt": "2023-01-09T04:04:15Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "quis sint in", + "updatedAt": "2023-01-09T04:04:15Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/264", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/264", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/634": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/634", + "iid": "180", + "confidential": false, + "createdAt": "2023-01-09T04:04:05Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint in Duis", + "updatedAt": "2023-01-09T04:04:05Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/180", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/180", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/614": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/614", + "iid": "160", + "confidential": false, + "createdAt": "2023-01-09T04:04:02Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "ex magna sint", + "updatedAt": "2023-01-09T04:04:02Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/160", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/160", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/564": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/564", + "iid": "110", + "confidential": false, + "createdAt": "2023-01-09T04:02:30Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "pariatur dolore sint", + "updatedAt": "2023-01-09T04:02:30Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/110", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/110", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/553": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/553", + "iid": "99", + "confidential": false, + "createdAt": "2023-01-09T04:02:28Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "dolor sint anim", + "updatedAt": "2023-01-09T04:02:28Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/99", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/99", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/542": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/542", + "iid": "88", + "confidential": false, + "createdAt": "2023-01-09T04:02:27Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint eiusmod anim", + "updatedAt": "2023-01-09T04:02:27Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/88", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/88", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + } +} diff --git a/spec/frontend/lib/apollo/mock_data/cache_with_persist_directive_and_field.json b/spec/frontend/lib/apollo/mock_data/cache_with_persist_directive_and_field.json new file mode 100644 index 00000000000..c0651517986 --- /dev/null +++ b/spec/frontend/lib/apollo/mock_data/cache_with_persist_directive_and_field.json @@ -0,0 +1,3091 @@ +{ + "Project:gid://gitlab/Project/6": { + "__typename": "Project", + "id": "gid://gitlab/Project/6", + "issues({\"includeSubepics\":true,\"state\":\"opened\",\"types\":[\"ISSUE\",\"INCIDENT\",\"TEST_CASE\",\"TASK\"]})": { + "__typename": "IssueConnection", + "count": 1115 + }, + "issues({\"includeSubepics\":true,\"state\":\"closed\",\"types\":[\"ISSUE\",\"INCIDENT\",\"TEST_CASE\",\"TASK\"]})": { + "__typename": "IssueConnection", + "count": 16 + }, + "issues({\"includeSubepics\":true,\"state\":\"all\",\"types\":[\"ISSUE\",\"INCIDENT\",\"TEST_CASE\",\"TASK\"]})": { + "__typename": "IssueConnection", + "count": 1131 + }, + "issues({\"after\":null,\"before\":\"eyJ1cGRhdGVkX2F0IjoiMjAyMy0wMS0wOSAwNDowNToyOS4yMzI5NDUwMDAgKzAwMDAiLCJpZCI6IjE1NjYifQ\",\"includeSubepics\":true,\"last\":20,\"sort\":\"UPDATED_DESC\",\"state\":\"opened\",\"types\":[\"ISSUE\",\"INCIDENT\",\"TEST_CASE\",\"TASK\"]})": { + "__typename": "IssueConnection", + "__persist": true, + "pageInfo": { + "__typename": "PageInfo", + "hasNextPage": true, + "hasPreviousPage": false, + "startCursor": "eyJ1cGRhdGVkX2F0IjoiMjAyMy0wMS0xMCAxMjozNjo1NC41NDYxNzEwMDAgKzAwMDAiLCJpZCI6IjQ4MyJ9", + "endCursor": "eyJ1cGRhdGVkX2F0IjoiMjAyMy0wMS0wOSAwNDowNToyOS4zMDE3NDcwMDAgKzAwMDAiLCJpZCI6IjE1NjcifQ" + }, + "nodes": [ + { + "__ref": "Issue:gid://gitlab/Issue/483" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1585" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1584" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1583" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1582" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1581" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1580" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1579" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1578" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1577" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1576" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1575" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1574" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1573" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1572" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1571" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1570" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1569" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1568" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1567" + } + ] + }, + "issues({\"includeSubepics\":true,\"search\":\"sint\",\"state\":\"opened\",\"types\":[\"ISSUE\",\"INCIDENT\",\"TEST_CASE\",\"TASK\"]})": { + "__typename": "IssueConnection", + "count": 44 + }, + "issues({\"includeSubepics\":true,\"search\":\"sint\",\"state\":\"closed\",\"types\":[\"ISSUE\",\"INCIDENT\",\"TEST_CASE\",\"TASK\"]})": { + "__typename": "IssueConnection", + "count": 0 + }, + "issues({\"includeSubepics\":true,\"search\":\"sint\",\"state\":\"all\",\"types\":[\"ISSUE\",\"INCIDENT\",\"TEST_CASE\",\"TASK\"]})": { + "__typename": "IssueConnection", + "count": 44 + }, + "issues({\"after\":null,\"before\":null,\"first\":20,\"includeSubepics\":true,\"search\":\"sint\",\"sort\":\"UPDATED_DESC\",\"state\":\"opened\",\"types\":[\"ISSUE\",\"INCIDENT\",\"TEST_CASE\",\"TASK\"]})": { + "__typename": "IssueConnection", + "pageInfo": { + "__typename": "PageInfo", + "hasNextPage": true, + "hasPreviousPage": false, + "startCursor": "eyJ1cGRhdGVkX2F0IjoiMjAyMy0wMS0wOSAwNDowNTozMC4zMTM3NDMwMDAgKzAwMDAiLCJpZCI6IjE1ODQifQ", + "endCursor": "eyJ1cGRhdGVkX2F0IjoiMjAyMy0wMS0wOSAwNDowNDo1OC43NDI3NTkwMDAgKzAwMDAiLCJpZCI6IjExNDEifQ" + }, + "nodes": [ + { + "__ref": "Issue:gid://gitlab/Issue/1584" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1540" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1532" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1515" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1514" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1463" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1461" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1439" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1403" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1399" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1375" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1349" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1333" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1321" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1318" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1299" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1268" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1262" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1254" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1141" + } + ] + }, + "projectMembers({\"relations\":[\"DIRECT\",\"INHERITED\",\"INVITED_GROUPS\"],\"search\":\"\"})": { + "__typename": "MemberInterfaceConnection", + "nodes": [ + { + "__ref": "ProjectMember:gid://gitlab/ProjectMember/54" + }, + { + "__ref": "ProjectMember:gid://gitlab/ProjectMember/53" + }, + { + "__ref": "ProjectMember:gid://gitlab/ProjectMember/52" + }, + { + "__ref": "GroupMember:gid://gitlab/GroupMember/26" + }, + { + "__ref": "GroupMember:gid://gitlab/GroupMember/25" + }, + { + "__ref": "GroupMember:gid://gitlab/GroupMember/11" + }, + { + "__ref": "GroupMember:gid://gitlab/GroupMember/10" + }, + { + "__ref": "GroupMember:gid://gitlab/GroupMember/9" + }, + { + "__ref": "GroupMember:gid://gitlab/GroupMember/1" + } + ] + }, + "milestones({\"includeAncestors\":true,\"searchTitle\":\"\",\"sort\":\"EXPIRED_LAST_DUE_DATE_ASC\",\"state\":\"active\"})": { + "__typename": "MilestoneConnection", + "nodes": [ + { + "__ref": "Milestone:gid://gitlab/Milestone/30" + }, + { + "__ref": "Milestone:gid://gitlab/Milestone/28" + }, + { + "__ref": "Milestone:gid://gitlab/Milestone/27" + }, + { + "__ref": "Milestone:gid://gitlab/Milestone/26" + }, + { + "__ref": "Milestone:gid://gitlab/Milestone/45" + } + ] + }, + "labels({\"includeAncestorGroups\":true,\"searchTerm\":\"\"})": { + "__typename": "LabelConnection", + "nodes": [ + { + "__ref": "Label:gid://gitlab/ProjectLabel/99" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/41" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/48" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/46" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/50" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/44" + }, + { + "__ref": "Label:gid://gitlab/ProjectLabel/96" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/45" + }, + { + "__ref": "Label:gid://gitlab/ProjectLabel/95" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/49" + }, + { + "__ref": "Label:gid://gitlab/ProjectLabel/98" + }, + { + "__ref": "Label:gid://gitlab/ProjectLabel/97" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/47" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/42" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/43" + } + ] + }, + "issues({\"after\":\"eyJ1cGRhdGVkX2F0IjoiMjAyMy0wMS0wOSAwNDowNDo1OC43NDI3NTkwMDAgKzAwMDAiLCJpZCI6IjExNDEifQ\",\"before\":null,\"first\":20,\"includeSubepics\":true,\"search\":\"sint\",\"sort\":\"UPDATED_DESC\",\"state\":\"opened\",\"types\":[\"ISSUE\",\"INCIDENT\",\"TEST_CASE\",\"TASK\"]})": { + "__typename": "IssueConnection", + "pageInfo": { + "__typename": "PageInfo", + "hasNextPage": true, + "hasPreviousPage": true, + "startCursor": "eyJ1cGRhdGVkX2F0IjoiMjAyMy0wMS0wOSAwNDowNDo1Ny42NTgwNTMwMDAgKzAwMDAiLCJpZCI6IjExMjMifQ", + "endCursor": "eyJ1cGRhdGVkX2F0IjoiMjAyMy0wMS0wOSAwNDowMjoyNy42OTg0MDEwMDAgKzAwMDAiLCJpZCI6IjU0MiJ9" + }, + "nodes": [ + { + "__ref": "Issue:gid://gitlab/Issue/1123" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1100" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1084" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1052" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1017" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1007" + }, + { + "__ref": "Issue:gid://gitlab/Issue/988" + }, + { + "__ref": "Issue:gid://gitlab/Issue/949" + }, + { + "__ref": "Issue:gid://gitlab/Issue/908" + }, + { + "__ref": "Issue:gid://gitlab/Issue/852" + }, + { + "__ref": "Issue:gid://gitlab/Issue/842" + }, + { + "__ref": "Issue:gid://gitlab/Issue/782" + }, + { + "__ref": "Issue:gid://gitlab/Issue/779" + }, + { + "__ref": "Issue:gid://gitlab/Issue/769" + }, + { + "__ref": "Issue:gid://gitlab/Issue/718" + }, + { + "__ref": "Issue:gid://gitlab/Issue/634" + }, + { + "__ref": "Issue:gid://gitlab/Issue/614" + }, + { + "__ref": "Issue:gid://gitlab/Issue/564" + }, + { + "__ref": "Issue:gid://gitlab/Issue/553" + }, + { + "__ref": "Issue:gid://gitlab/Issue/542" + } + ] + } + }, + "ROOT_QUERY": { + "__typename": "Query", + "project({\"fullPath\":\"flightjs/Flight\"}) @persist": { + "__ref": "Project:gid://gitlab/Project/6" + } + }, + "UserCore:gid://gitlab/User/1": { + "__typename": "UserCore", + "id": "gid://gitlab/User/1", + "avatarUrl": "https://secure.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", + "name": "Administrator", + "username": "root", + "webUrl": "https://gdk.test:3443/root" + }, + "Issue:gid://gitlab/Issue/483": { + "__typename": "Issue", + "__persist": true, + "id": "gid://gitlab/Issue/483", + "iid": "31", + "confidential": false, + "createdAt": "2022-09-11T15:24:16Z", + "downvotes": 1, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 1, + "moved": false, + "state": "opened", + "title": "Instigate the Incident!", + "updatedAt": "2023-01-10T12:36:54Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 2, + "webPath": "/flightjs/Flight/-/issues/31", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/31", + "type": "INCIDENT", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1585": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1585", + "iid": "1131", + "confidential": false, + "createdAt": "2023-01-09T04:05:30Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "proident aute commodo", + "updatedAt": "2023-01-09T04:05:30Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1131", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1131", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1584": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1584", + "iid": "1130", + "confidential": false, + "createdAt": "2023-01-09T04:05:30Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint eiusmod eiusmod", + "updatedAt": "2023-01-09T04:05:30Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1130", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1130", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1583": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1583", + "iid": "1129", + "confidential": false, + "createdAt": "2023-01-09T04:05:30Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "commodo mollit est", + "updatedAt": "2023-01-09T04:05:30Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1129", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1129", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1582": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1582", + "iid": "1128", + "confidential": false, + "createdAt": "2023-01-09T04:05:30Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "non dolore laborum", + "updatedAt": "2023-01-09T04:05:30Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1128", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1128", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1581": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1581", + "iid": "1127", + "confidential": false, + "createdAt": "2023-01-09T04:05:30Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "commodo do occaecat", + "updatedAt": "2023-01-09T04:05:30Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1127", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1127", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1580": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1580", + "iid": "1126", + "confidential": false, + "createdAt": "2023-01-09T04:05:30Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "ea nostrud ea", + "updatedAt": "2023-01-09T04:05:30Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1126", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1126", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1579": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1579", + "iid": "1125", + "confidential": false, + "createdAt": "2023-01-09T04:05:30Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sed lorem fugiat", + "updatedAt": "2023-01-09T04:05:30Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1125", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1125", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1578": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1578", + "iid": "1124", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "mollit anim sunt", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1124", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1124", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1577": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1577", + "iid": "1123", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "adipiscing fugiat ullamco", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1123", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1123", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1576": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1576", + "iid": "1122", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "pariatur et elit", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1122", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1122", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1575": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1575", + "iid": "1121", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "ut ipsum occaecat", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1121", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1121", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1574": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1574", + "iid": "1120", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "mollit ea elit", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1120", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1120", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1573": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1573", + "iid": "1119", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "nostrud voluptate do", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1119", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1119", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1572": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1572", + "iid": "1118", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "ullamco consequat in", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1118", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1118", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1571": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1571", + "iid": "1117", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "velit Ut est", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1117", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1117", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1570": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1570", + "iid": "1116", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "lorem commodo est", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1116", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1116", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1569": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1569", + "iid": "1115", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "tempor irure laboris", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1115", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1115", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1568": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1568", + "iid": "1114", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "voluptate aliquip est", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1114", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1114", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1567": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1567", + "iid": "1113", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "exercitation dolore labore", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1113", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1113", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1540": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1540", + "iid": "1086", + "confidential": false, + "createdAt": "2023-01-09T04:05:27Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint nulla dolore", + "updatedAt": "2023-01-09T04:05:27Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1086", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1086", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1532": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1532", + "iid": "1078", + "confidential": false, + "createdAt": "2023-01-09T04:05:27Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "amet culpa sint", + "updatedAt": "2023-01-09T04:05:27Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1078", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1078", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1515": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1515", + "iid": "1061", + "confidential": false, + "createdAt": "2023-01-09T04:05:26Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint Duis incididunt", + "updatedAt": "2023-01-09T04:05:26Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1061", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1061", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1514": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1514", + "iid": "1060", + "confidential": false, + "createdAt": "2023-01-09T04:05:25Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint velit ullamco", + "updatedAt": "2023-01-09T04:05:25Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1060", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1060", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1463": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1463", + "iid": "1009", + "confidential": false, + "createdAt": "2023-01-09T04:05:22Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "dolor occaecat sint", + "updatedAt": "2023-01-09T04:05:22Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1009", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1009", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1461": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1461", + "iid": "1007", + "confidential": false, + "createdAt": "2023-01-09T04:05:22Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "mollit sint irure", + "updatedAt": "2023-01-09T04:05:22Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1007", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1007", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1439": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1439", + "iid": "985", + "confidential": false, + "createdAt": "2023-01-09T04:05:21Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint Ut amet", + "updatedAt": "2023-01-09T04:05:21Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/985", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/985", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1403": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1403", + "iid": "949", + "confidential": false, + "createdAt": "2023-01-09T04:05:18Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "in consequat sint", + "updatedAt": "2023-01-09T04:05:18Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/949", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/949", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1399": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1399", + "iid": "945", + "confidential": false, + "createdAt": "2023-01-09T04:05:18Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "velit nulla sint", + "updatedAt": "2023-01-09T04:05:18Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/945", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/945", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1375": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1375", + "iid": "921", + "confidential": false, + "createdAt": "2023-01-09T04:05:16Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint sed ex", + "updatedAt": "2023-01-09T04:05:16Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/921", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/921", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1349": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1349", + "iid": "895", + "confidential": false, + "createdAt": "2023-01-09T04:05:13Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "magna reprehenderit sint", + "updatedAt": "2023-01-09T04:05:13Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/895", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/895", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1333": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1333", + "iid": "879", + "confidential": false, + "createdAt": "2023-01-09T04:05:11Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "tempor dolore sint", + "updatedAt": "2023-01-09T04:05:11Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/879", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/879", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1321": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1321", + "iid": "867", + "confidential": false, + "createdAt": "2023-01-09T04:05:10Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "reprehenderit pariatur sint", + "updatedAt": "2023-01-09T04:05:10Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/867", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/867", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1318": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1318", + "iid": "864", + "confidential": false, + "createdAt": "2023-01-09T04:05:10Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sit sint ad", + "updatedAt": "2023-01-09T04:05:10Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/864", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/864", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1299": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1299", + "iid": "845", + "confidential": false, + "createdAt": "2023-01-09T04:05:08Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "velit sint fugiat", + "updatedAt": "2023-01-09T04:05:08Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/845", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/845", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1268": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1268", + "iid": "814", + "confidential": false, + "createdAt": "2023-01-09T04:05:06Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "dolor nostrud sint", + "updatedAt": "2023-01-09T04:05:06Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/814", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/814", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1262": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1262", + "iid": "808", + "confidential": false, + "createdAt": "2023-01-09T04:05:06Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "ut sint esse", + "updatedAt": "2023-01-09T04:05:06Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/808", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/808", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1254": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1254", + "iid": "800", + "confidential": false, + "createdAt": "2023-01-09T04:05:05Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint ea est", + "updatedAt": "2023-01-09T04:05:05Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/800", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/800", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1141": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1141", + "iid": "687", + "confidential": false, + "createdAt": "2023-01-09T04:04:58Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint quis laboris", + "updatedAt": "2023-01-09T04:04:58Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/687", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/687", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "UserCore:gid://gitlab/User/9": { + "__typename": "UserCore", + "id": "gid://gitlab/User/9", + "avatarUrl": "https://secure.gravatar.com/avatar/175e76e391370beeb21914ab74c2efd4?s=80&d=identicon", + "name": "Kiyoko Bahringer", + "username": "jamie" + }, + "ProjectMember:gid://gitlab/ProjectMember/54": { + "__typename": "ProjectMember", + "id": "gid://gitlab/ProjectMember/54", + "user": { + "__ref": "UserCore:gid://gitlab/User/9" + } + }, + "UserCore:gid://gitlab/User/19": { + "__typename": "UserCore", + "id": "gid://gitlab/User/19", + "avatarUrl": "https://secure.gravatar.com/avatar/3126153e3301ebf7cc8f7c99e57007f2?s=80&d=identicon", + "name": "Cecile Hermann", + "username": "jeannetta_breitenberg" + }, + "ProjectMember:gid://gitlab/ProjectMember/53": { + "__typename": "ProjectMember", + "id": "gid://gitlab/ProjectMember/53", + "user": { + "__ref": "UserCore:gid://gitlab/User/19" + } + }, + "UserCore:gid://gitlab/User/2": { + "__typename": "UserCore", + "id": "gid://gitlab/User/2", + "avatarUrl": "https://secure.gravatar.com/avatar/a138e401136c90561f949297387a3bb9?s=80&d=identicon", + "name": "Tish Treutel", + "username": "liana.larkin" + }, + "ProjectMember:gid://gitlab/ProjectMember/52": { + "__typename": "ProjectMember", + "id": "gid://gitlab/ProjectMember/52", + "user": { + "__ref": "UserCore:gid://gitlab/User/2" + } + }, + "UserCore:gid://gitlab/User/13": { + "__typename": "UserCore", + "id": "gid://gitlab/User/13", + "avatarUrl": "https://secure.gravatar.com/avatar/0ce8057f452296a13b5620bb2d9ede57?s=80&d=identicon", + "name": "Tammy Gusikowski", + "username": "xuan_oreilly" + }, + "GroupMember:gid://gitlab/GroupMember/26": { + "__typename": "GroupMember", + "id": "gid://gitlab/GroupMember/26", + "user": { + "__ref": "UserCore:gid://gitlab/User/13" + } + }, + "UserCore:gid://gitlab/User/21": { + "__typename": "UserCore", + "id": "gid://gitlab/User/21", + "avatarUrl": "https://secure.gravatar.com/avatar/415b09d256f26403384363d7948c4d77?s=80&d=identicon", + "name": "Twanna Hegmann", + "username": "jamaal" + }, + "GroupMember:gid://gitlab/GroupMember/25": { + "__typename": "GroupMember", + "id": "gid://gitlab/GroupMember/25", + "user": { + "__ref": "UserCore:gid://gitlab/User/21" + } + }, + "UserCore:gid://gitlab/User/14": { + "__typename": "UserCore", + "id": "gid://gitlab/User/14", + "avatarUrl": "https://secure.gravatar.com/avatar/e99697c6664381b0351b7617717dd49b?s=80&d=identicon", + "name": "Francie Cole", + "username": "greg.wisoky" + }, + "GroupMember:gid://gitlab/GroupMember/11": { + "__typename": "GroupMember", + "id": "gid://gitlab/GroupMember/11", + "user": { + "__ref": "UserCore:gid://gitlab/User/14" + } + }, + "UserCore:gid://gitlab/User/7": { + "__typename": "UserCore", + "id": "gid://gitlab/User/7", + "avatarUrl": "https://secure.gravatar.com/avatar/3a382857e362d6cce60d3806dd173444?s=80&d=identicon", + "name": "Ivan Carter", + "username": "ethyl" + }, + "GroupMember:gid://gitlab/GroupMember/10": { + "__typename": "GroupMember", + "id": "gid://gitlab/GroupMember/10", + "user": { + "__ref": "UserCore:gid://gitlab/User/7" + } + }, + "UserCore:gid://gitlab/User/15": { + "__typename": "UserCore", + "id": "gid://gitlab/User/15", + "avatarUrl": "https://secure.gravatar.com/avatar/79653006ff557e081db02deaa4ca281c?s=80&d=identicon", + "name": "Danuta Dare", + "username": "maddie_hintz" + }, + "GroupMember:gid://gitlab/GroupMember/9": { + "__typename": "GroupMember", + "id": "gid://gitlab/GroupMember/9", + "user": { + "__ref": "UserCore:gid://gitlab/User/15" + } + }, + "GroupMember:gid://gitlab/GroupMember/1": { + "__typename": "GroupMember", + "id": "gid://gitlab/GroupMember/1", + "user": { + "__ref": "UserCore:gid://gitlab/User/1" + } + }, + "Milestone:gid://gitlab/Milestone/30": { + "__typename": "Milestone", + "id": "gid://gitlab/Milestone/30", + "title": "v4.0" + }, + "Milestone:gid://gitlab/Milestone/28": { + "__typename": "Milestone", + "id": "gid://gitlab/Milestone/28", + "title": "v2.0" + }, + "Milestone:gid://gitlab/Milestone/27": { + "__typename": "Milestone", + "id": "gid://gitlab/Milestone/27", + "title": "v1.0" + }, + "Milestone:gid://gitlab/Milestone/26": { + "__typename": "Milestone", + "id": "gid://gitlab/Milestone/26", + "title": "v0.0" + }, + "Milestone:gid://gitlab/Milestone/45": { + "__typename": "Milestone", + "id": "gid://gitlab/Milestone/45", + "title": "Sprint - Autem id maxime consequatur quam." + }, + "Label:gid://gitlab/ProjectLabel/99": { + "__typename": "Label", + "id": "gid://gitlab/ProjectLabel/99", + "color": "#a5c6fb", + "textColor": "#333333", + "title": "Accent" + }, + "Label:gid://gitlab/GroupLabel/41": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/41", + "color": "#0609ba", + "textColor": "#FFFFFF", + "title": "Breckwood" + }, + "Label:gid://gitlab/GroupLabel/48": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/48", + "color": "#fa7620", + "textColor": "#FFFFFF", + "title": "Brieph" + }, + "Label:gid://gitlab/GroupLabel/46": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/46", + "color": "#d97020", + "textColor": "#FFFFFF", + "title": "Bryntfunc" + }, + "Label:gid://gitlab/GroupLabel/50": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/50", + "color": "#8a934f", + "textColor": "#FFFFFF", + "title": "CL" + }, + "Label:gid://gitlab/GroupLabel/44": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/44", + "color": "#9e1d53", + "textColor": "#FFFFFF", + "title": "Cofunc" + }, + "Label:gid://gitlab/ProjectLabel/96": { + "__typename": "Label", + "id": "gid://gitlab/ProjectLabel/96", + "color": "#0384f3", + "textColor": "#FFFFFF", + "title": "Corolla" + }, + "Label:gid://gitlab/GroupLabel/45": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/45", + "color": "#f0b448", + "textColor": "#FFFFFF", + "title": "Cygcell" + }, + "Label:gid://gitlab/ProjectLabel/95": { + "__typename": "Label", + "id": "gid://gitlab/ProjectLabel/95", + "color": "#d13231", + "textColor": "#FFFFFF", + "title": "Freestyle" + }, + "Label:gid://gitlab/GroupLabel/49": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/49", + "color": "#f43983", + "textColor": "#FFFFFF", + "title": "Genbalt" + }, + "Label:gid://gitlab/ProjectLabel/98": { + "__typename": "Label", + "id": "gid://gitlab/ProjectLabel/98", + "color": "#247441", + "textColor": "#FFFFFF", + "title": "LaSabre" + }, + "Label:gid://gitlab/ProjectLabel/97": { + "__typename": "Label", + "id": "gid://gitlab/ProjectLabel/97", + "color": "#3bd51a", + "textColor": "#FFFFFF", + "title": "Probe" + }, + "Label:gid://gitlab/GroupLabel/47": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/47", + "color": "#6bfb9d", + "textColor": "#333333", + "title": "Techbalt" + }, + "Label:gid://gitlab/GroupLabel/42": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/42", + "color": "#996016", + "textColor": "#FFFFFF", + "title": "Troffe" + }, + "Label:gid://gitlab/GroupLabel/43": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/43", + "color": "#a75c05", + "textColor": "#FFFFFF", + "title": "Tronceforge" + }, + "Issue:gid://gitlab/Issue/1123": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1123", + "iid": "669", + "confidential": false, + "createdAt": "2023-01-09T04:04:57Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "esse sint est", + "updatedAt": "2023-01-09T04:04:57Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/669", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/669", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1100": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1100", + "iid": "646", + "confidential": false, + "createdAt": "2023-01-09T04:04:56Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "cupidatat sunt sint", + "updatedAt": "2023-01-09T04:04:56Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/646", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/646", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1084": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1084", + "iid": "630", + "confidential": false, + "createdAt": "2023-01-09T04:04:54Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "culpa sint irure", + "updatedAt": "2023-01-09T04:04:54Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/630", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/630", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1052": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1052", + "iid": "598", + "confidential": false, + "createdAt": "2023-01-09T04:04:52Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint in anim", + "updatedAt": "2023-01-09T04:04:52Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/598", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/598", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1017": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1017", + "iid": "563", + "confidential": false, + "createdAt": "2023-01-09T04:04:50Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint lorem sint", + "updatedAt": "2023-01-09T04:04:50Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/563", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/563", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1007": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1007", + "iid": "553", + "confidential": false, + "createdAt": "2023-01-09T04:04:49Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "ea non sint", + "updatedAt": "2023-01-09T04:04:49Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/553", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/553", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/988": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/988", + "iid": "534", + "confidential": false, + "createdAt": "2023-01-09T04:04:47Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "minim ea sint", + "updatedAt": "2023-01-09T04:04:47Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/534", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/534", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/949": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/949", + "iid": "495", + "confidential": false, + "createdAt": "2023-01-09T04:04:42Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "adipiscing sint ullamco", + "updatedAt": "2023-01-09T04:04:42Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/495", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/495", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/908": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/908", + "iid": "454", + "confidential": false, + "createdAt": "2023-01-09T04:04:38Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sit dolore sint", + "updatedAt": "2023-01-09T04:04:38Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/454", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/454", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/852": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/852", + "iid": "398", + "confidential": false, + "createdAt": "2023-01-09T04:04:32Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "dolor adipiscing sint", + "updatedAt": "2023-01-09T04:04:32Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/398", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/398", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/842": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/842", + "iid": "388", + "confidential": false, + "createdAt": "2023-01-09T04:04:31Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "exercitation consequat sint", + "updatedAt": "2023-01-09T04:04:31Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/388", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/388", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/782": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/782", + "iid": "328", + "confidential": false, + "createdAt": "2023-01-09T04:04:23Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "eiusmod mollit sint", + "updatedAt": "2023-01-09T04:04:23Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/328", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/328", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/779": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/779", + "iid": "325", + "confidential": false, + "createdAt": "2023-01-09T04:04:23Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sunt sint aute", + "updatedAt": "2023-01-09T04:04:23Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/325", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/325", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/769": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/769", + "iid": "315", + "confidential": false, + "createdAt": "2023-01-09T04:04:22Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "aute et sint", + "updatedAt": "2023-01-09T04:04:22Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/315", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/315", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/718": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/718", + "iid": "264", + "confidential": false, + "createdAt": "2023-01-09T04:04:15Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "quis sint in", + "updatedAt": "2023-01-09T04:04:15Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/264", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/264", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/634": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/634", + "iid": "180", + "confidential": false, + "createdAt": "2023-01-09T04:04:05Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint in Duis", + "updatedAt": "2023-01-09T04:04:05Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/180", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/180", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/614": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/614", + "iid": "160", + "confidential": false, + "createdAt": "2023-01-09T04:04:02Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "ex magna sint", + "updatedAt": "2023-01-09T04:04:02Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/160", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/160", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/564": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/564", + "iid": "110", + "confidential": false, + "createdAt": "2023-01-09T04:02:30Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "pariatur dolore sint", + "updatedAt": "2023-01-09T04:02:30Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/110", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/110", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/553": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/553", + "iid": "99", + "confidential": false, + "createdAt": "2023-01-09T04:02:28Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "dolor sint anim", + "updatedAt": "2023-01-09T04:02:28Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/99", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/99", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/542": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/542", + "iid": "88", + "confidential": false, + "createdAt": "2023-01-09T04:02:27Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint eiusmod anim", + "updatedAt": "2023-01-09T04:02:27Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/88", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/88", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + } +} diff --git a/spec/frontend/lib/apollo/mock_data/non_persisted_cache.json b/spec/frontend/lib/apollo/mock_data/non_persisted_cache.json new file mode 100644 index 00000000000..f30461f63db --- /dev/null +++ b/spec/frontend/lib/apollo/mock_data/non_persisted_cache.json @@ -0,0 +1,3089 @@ +{ + "Project:gid://gitlab/Project/6": { + "__typename": "Project", + "id": "gid://gitlab/Project/6", + "issues({\"includeSubepics\":true,\"state\":\"opened\",\"types\":[\"ISSUE\",\"INCIDENT\",\"TEST_CASE\",\"TASK\"]})": { + "__typename": "IssueConnection", + "count": 1115 + }, + "issues({\"includeSubepics\":true,\"state\":\"closed\",\"types\":[\"ISSUE\",\"INCIDENT\",\"TEST_CASE\",\"TASK\"]})": { + "__typename": "IssueConnection", + "count": 16 + }, + "issues({\"includeSubepics\":true,\"state\":\"all\",\"types\":[\"ISSUE\",\"INCIDENT\",\"TEST_CASE\",\"TASK\"]})": { + "__typename": "IssueConnection", + "count": 1131 + }, + "issues({\"after\":null,\"before\":\"eyJ1cGRhdGVkX2F0IjoiMjAyMy0wMS0wOSAwNDowNToyOS4yMzI5NDUwMDAgKzAwMDAiLCJpZCI6IjE1NjYifQ\",\"includeSubepics\":true,\"last\":20,\"sort\":\"UPDATED_DESC\",\"state\":\"opened\",\"types\":[\"ISSUE\",\"INCIDENT\",\"TEST_CASE\",\"TASK\"]})": { + "__typename": "IssueConnection", + "pageInfo": { + "__typename": "PageInfo", + "hasNextPage": true, + "hasPreviousPage": false, + "startCursor": "eyJ1cGRhdGVkX2F0IjoiMjAyMy0wMS0xMCAxMjozNjo1NC41NDYxNzEwMDAgKzAwMDAiLCJpZCI6IjQ4MyJ9", + "endCursor": "eyJ1cGRhdGVkX2F0IjoiMjAyMy0wMS0wOSAwNDowNToyOS4zMDE3NDcwMDAgKzAwMDAiLCJpZCI6IjE1NjcifQ" + }, + "nodes": [ + { + "__ref": "Issue:gid://gitlab/Issue/483" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1585" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1584" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1583" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1582" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1581" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1580" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1579" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1578" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1577" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1576" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1575" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1574" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1573" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1572" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1571" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1570" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1569" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1568" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1567" + } + ] + }, + "issues({\"includeSubepics\":true,\"search\":\"sint\",\"state\":\"opened\",\"types\":[\"ISSUE\",\"INCIDENT\",\"TEST_CASE\",\"TASK\"]})": { + "__typename": "IssueConnection", + "count": 44 + }, + "issues({\"includeSubepics\":true,\"search\":\"sint\",\"state\":\"closed\",\"types\":[\"ISSUE\",\"INCIDENT\",\"TEST_CASE\",\"TASK\"]})": { + "__typename": "IssueConnection", + "count": 0 + }, + "issues({\"includeSubepics\":true,\"search\":\"sint\",\"state\":\"all\",\"types\":[\"ISSUE\",\"INCIDENT\",\"TEST_CASE\",\"TASK\"]})": { + "__typename": "IssueConnection", + "count": 44 + }, + "issues({\"after\":null,\"before\":null,\"first\":20,\"includeSubepics\":true,\"search\":\"sint\",\"sort\":\"UPDATED_DESC\",\"state\":\"opened\",\"types\":[\"ISSUE\",\"INCIDENT\",\"TEST_CASE\",\"TASK\"]})": { + "__typename": "IssueConnection", + "pageInfo": { + "__typename": "PageInfo", + "hasNextPage": true, + "hasPreviousPage": false, + "startCursor": "eyJ1cGRhdGVkX2F0IjoiMjAyMy0wMS0wOSAwNDowNTozMC4zMTM3NDMwMDAgKzAwMDAiLCJpZCI6IjE1ODQifQ", + "endCursor": "eyJ1cGRhdGVkX2F0IjoiMjAyMy0wMS0wOSAwNDowNDo1OC43NDI3NTkwMDAgKzAwMDAiLCJpZCI6IjExNDEifQ" + }, + "nodes": [ + { + "__ref": "Issue:gid://gitlab/Issue/1584" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1540" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1532" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1515" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1514" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1463" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1461" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1439" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1403" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1399" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1375" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1349" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1333" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1321" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1318" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1299" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1268" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1262" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1254" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1141" + } + ] + }, + "projectMembers({\"relations\":[\"DIRECT\",\"INHERITED\",\"INVITED_GROUPS\"],\"search\":\"\"})": { + "__typename": "MemberInterfaceConnection", + "nodes": [ + { + "__ref": "ProjectMember:gid://gitlab/ProjectMember/54" + }, + { + "__ref": "ProjectMember:gid://gitlab/ProjectMember/53" + }, + { + "__ref": "ProjectMember:gid://gitlab/ProjectMember/52" + }, + { + "__ref": "GroupMember:gid://gitlab/GroupMember/26" + }, + { + "__ref": "GroupMember:gid://gitlab/GroupMember/25" + }, + { + "__ref": "GroupMember:gid://gitlab/GroupMember/11" + }, + { + "__ref": "GroupMember:gid://gitlab/GroupMember/10" + }, + { + "__ref": "GroupMember:gid://gitlab/GroupMember/9" + }, + { + "__ref": "GroupMember:gid://gitlab/GroupMember/1" + } + ] + }, + "milestones({\"includeAncestors\":true,\"searchTitle\":\"\",\"sort\":\"EXPIRED_LAST_DUE_DATE_ASC\",\"state\":\"active\"})": { + "__typename": "MilestoneConnection", + "nodes": [ + { + "__ref": "Milestone:gid://gitlab/Milestone/30" + }, + { + "__ref": "Milestone:gid://gitlab/Milestone/28" + }, + { + "__ref": "Milestone:gid://gitlab/Milestone/27" + }, + { + "__ref": "Milestone:gid://gitlab/Milestone/26" + }, + { + "__ref": "Milestone:gid://gitlab/Milestone/45" + } + ] + }, + "labels({\"includeAncestorGroups\":true,\"searchTerm\":\"\"})": { + "__typename": "LabelConnection", + "nodes": [ + { + "__ref": "Label:gid://gitlab/ProjectLabel/99" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/41" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/48" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/46" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/50" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/44" + }, + { + "__ref": "Label:gid://gitlab/ProjectLabel/96" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/45" + }, + { + "__ref": "Label:gid://gitlab/ProjectLabel/95" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/49" + }, + { + "__ref": "Label:gid://gitlab/ProjectLabel/98" + }, + { + "__ref": "Label:gid://gitlab/ProjectLabel/97" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/47" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/42" + }, + { + "__ref": "Label:gid://gitlab/GroupLabel/43" + } + ] + }, + "issues({\"after\":\"eyJ1cGRhdGVkX2F0IjoiMjAyMy0wMS0wOSAwNDowNDo1OC43NDI3NTkwMDAgKzAwMDAiLCJpZCI6IjExNDEifQ\",\"before\":null,\"first\":20,\"includeSubepics\":true,\"search\":\"sint\",\"sort\":\"UPDATED_DESC\",\"state\":\"opened\",\"types\":[\"ISSUE\",\"INCIDENT\",\"TEST_CASE\",\"TASK\"]})": { + "__typename": "IssueConnection", + "pageInfo": { + "__typename": "PageInfo", + "hasNextPage": true, + "hasPreviousPage": true, + "startCursor": "eyJ1cGRhdGVkX2F0IjoiMjAyMy0wMS0wOSAwNDowNDo1Ny42NTgwNTMwMDAgKzAwMDAiLCJpZCI6IjExMjMifQ", + "endCursor": "eyJ1cGRhdGVkX2F0IjoiMjAyMy0wMS0wOSAwNDowMjoyNy42OTg0MDEwMDAgKzAwMDAiLCJpZCI6IjU0MiJ9" + }, + "nodes": [ + { + "__ref": "Issue:gid://gitlab/Issue/1123" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1100" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1084" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1052" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1017" + }, + { + "__ref": "Issue:gid://gitlab/Issue/1007" + }, + { + "__ref": "Issue:gid://gitlab/Issue/988" + }, + { + "__ref": "Issue:gid://gitlab/Issue/949" + }, + { + "__ref": "Issue:gid://gitlab/Issue/908" + }, + { + "__ref": "Issue:gid://gitlab/Issue/852" + }, + { + "__ref": "Issue:gid://gitlab/Issue/842" + }, + { + "__ref": "Issue:gid://gitlab/Issue/782" + }, + { + "__ref": "Issue:gid://gitlab/Issue/779" + }, + { + "__ref": "Issue:gid://gitlab/Issue/769" + }, + { + "__ref": "Issue:gid://gitlab/Issue/718" + }, + { + "__ref": "Issue:gid://gitlab/Issue/634" + }, + { + "__ref": "Issue:gid://gitlab/Issue/614" + }, + { + "__ref": "Issue:gid://gitlab/Issue/564" + }, + { + "__ref": "Issue:gid://gitlab/Issue/553" + }, + { + "__ref": "Issue:gid://gitlab/Issue/542" + } + ] + } + }, + "ROOT_QUERY": { + "__typename": "Query", + "project({\"fullPath\":\"flightjs/Flight\"})": { + "__ref": "Project:gid://gitlab/Project/6" + } + }, + "UserCore:gid://gitlab/User/1": { + "__typename": "UserCore", + "id": "gid://gitlab/User/1", + "avatarUrl": "https://secure.gravatar.com/avatar/e64c7d89f26bd1972efa854d13d7dd61?s=80&d=identicon", + "name": "Administrator", + "username": "root", + "webUrl": "https://gdk.test:3443/root" + }, + "Issue:gid://gitlab/Issue/483": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/483", + "iid": "31", + "confidential": false, + "createdAt": "2022-09-11T15:24:16Z", + "downvotes": 1, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 1, + "moved": false, + "state": "opened", + "title": "Instigate the Incident!", + "updatedAt": "2023-01-10T12:36:54Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 2, + "webPath": "/flightjs/Flight/-/issues/31", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/31", + "type": "INCIDENT", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1585": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1585", + "iid": "1131", + "confidential": false, + "createdAt": "2023-01-09T04:05:30Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "proident aute commodo", + "updatedAt": "2023-01-09T04:05:30Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1131", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1131", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1584": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1584", + "iid": "1130", + "confidential": false, + "createdAt": "2023-01-09T04:05:30Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint eiusmod eiusmod", + "updatedAt": "2023-01-09T04:05:30Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1130", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1130", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1583": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1583", + "iid": "1129", + "confidential": false, + "createdAt": "2023-01-09T04:05:30Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "commodo mollit est", + "updatedAt": "2023-01-09T04:05:30Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1129", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1129", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1582": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1582", + "iid": "1128", + "confidential": false, + "createdAt": "2023-01-09T04:05:30Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "non dolore laborum", + "updatedAt": "2023-01-09T04:05:30Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1128", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1128", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1581": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1581", + "iid": "1127", + "confidential": false, + "createdAt": "2023-01-09T04:05:30Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "commodo do occaecat", + "updatedAt": "2023-01-09T04:05:30Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1127", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1127", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1580": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1580", + "iid": "1126", + "confidential": false, + "createdAt": "2023-01-09T04:05:30Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "ea nostrud ea", + "updatedAt": "2023-01-09T04:05:30Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1126", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1126", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1579": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1579", + "iid": "1125", + "confidential": false, + "createdAt": "2023-01-09T04:05:30Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sed lorem fugiat", + "updatedAt": "2023-01-09T04:05:30Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1125", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1125", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1578": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1578", + "iid": "1124", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "mollit anim sunt", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1124", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1124", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1577": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1577", + "iid": "1123", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "adipiscing fugiat ullamco", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1123", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1123", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1576": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1576", + "iid": "1122", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "pariatur et elit", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1122", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1122", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1575": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1575", + "iid": "1121", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "ut ipsum occaecat", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1121", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1121", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1574": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1574", + "iid": "1120", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "mollit ea elit", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1120", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1120", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1573": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1573", + "iid": "1119", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "nostrud voluptate do", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1119", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1119", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1572": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1572", + "iid": "1118", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "ullamco consequat in", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1118", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1118", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1571": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1571", + "iid": "1117", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "velit Ut est", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1117", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1117", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1570": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1570", + "iid": "1116", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "lorem commodo est", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1116", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1116", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1569": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1569", + "iid": "1115", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "tempor irure laboris", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1115", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1115", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1568": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1568", + "iid": "1114", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "voluptate aliquip est", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1114", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1114", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1567": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1567", + "iid": "1113", + "confidential": false, + "createdAt": "2023-01-09T04:05:29Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "exercitation dolore labore", + "updatedAt": "2023-01-09T04:05:29Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1113", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1113", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1540": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1540", + "iid": "1086", + "confidential": false, + "createdAt": "2023-01-09T04:05:27Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint nulla dolore", + "updatedAt": "2023-01-09T04:05:27Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1086", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1086", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1532": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1532", + "iid": "1078", + "confidential": false, + "createdAt": "2023-01-09T04:05:27Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "amet culpa sint", + "updatedAt": "2023-01-09T04:05:27Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1078", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1078", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1515": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1515", + "iid": "1061", + "confidential": false, + "createdAt": "2023-01-09T04:05:26Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint Duis incididunt", + "updatedAt": "2023-01-09T04:05:26Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1061", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1061", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1514": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1514", + "iid": "1060", + "confidential": false, + "createdAt": "2023-01-09T04:05:25Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint velit ullamco", + "updatedAt": "2023-01-09T04:05:25Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1060", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1060", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1463": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1463", + "iid": "1009", + "confidential": false, + "createdAt": "2023-01-09T04:05:22Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "dolor occaecat sint", + "updatedAt": "2023-01-09T04:05:22Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1009", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1009", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1461": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1461", + "iid": "1007", + "confidential": false, + "createdAt": "2023-01-09T04:05:22Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "mollit sint irure", + "updatedAt": "2023-01-09T04:05:22Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/1007", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/1007", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1439": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1439", + "iid": "985", + "confidential": false, + "createdAt": "2023-01-09T04:05:21Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint Ut amet", + "updatedAt": "2023-01-09T04:05:21Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/985", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/985", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1403": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1403", + "iid": "949", + "confidential": false, + "createdAt": "2023-01-09T04:05:18Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "in consequat sint", + "updatedAt": "2023-01-09T04:05:18Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/949", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/949", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1399": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1399", + "iid": "945", + "confidential": false, + "createdAt": "2023-01-09T04:05:18Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "velit nulla sint", + "updatedAt": "2023-01-09T04:05:18Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/945", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/945", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1375": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1375", + "iid": "921", + "confidential": false, + "createdAt": "2023-01-09T04:05:16Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint sed ex", + "updatedAt": "2023-01-09T04:05:16Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/921", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/921", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1349": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1349", + "iid": "895", + "confidential": false, + "createdAt": "2023-01-09T04:05:13Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "magna reprehenderit sint", + "updatedAt": "2023-01-09T04:05:13Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/895", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/895", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1333": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1333", + "iid": "879", + "confidential": false, + "createdAt": "2023-01-09T04:05:11Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "tempor dolore sint", + "updatedAt": "2023-01-09T04:05:11Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/879", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/879", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1321": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1321", + "iid": "867", + "confidential": false, + "createdAt": "2023-01-09T04:05:10Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "reprehenderit pariatur sint", + "updatedAt": "2023-01-09T04:05:10Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/867", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/867", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1318": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1318", + "iid": "864", + "confidential": false, + "createdAt": "2023-01-09T04:05:10Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sit sint ad", + "updatedAt": "2023-01-09T04:05:10Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/864", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/864", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1299": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1299", + "iid": "845", + "confidential": false, + "createdAt": "2023-01-09T04:05:08Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "velit sint fugiat", + "updatedAt": "2023-01-09T04:05:08Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/845", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/845", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1268": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1268", + "iid": "814", + "confidential": false, + "createdAt": "2023-01-09T04:05:06Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "dolor nostrud sint", + "updatedAt": "2023-01-09T04:05:06Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/814", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/814", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1262": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1262", + "iid": "808", + "confidential": false, + "createdAt": "2023-01-09T04:05:06Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "ut sint esse", + "updatedAt": "2023-01-09T04:05:06Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/808", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/808", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1254": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1254", + "iid": "800", + "confidential": false, + "createdAt": "2023-01-09T04:05:05Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint ea est", + "updatedAt": "2023-01-09T04:05:05Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/800", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/800", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1141": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1141", + "iid": "687", + "confidential": false, + "createdAt": "2023-01-09T04:04:58Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint quis laboris", + "updatedAt": "2023-01-09T04:04:58Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/687", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/687", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "UserCore:gid://gitlab/User/9": { + "__typename": "UserCore", + "id": "gid://gitlab/User/9", + "avatarUrl": "https://secure.gravatar.com/avatar/175e76e391370beeb21914ab74c2efd4?s=80&d=identicon", + "name": "Kiyoko Bahringer", + "username": "jamie" + }, + "ProjectMember:gid://gitlab/ProjectMember/54": { + "__typename": "ProjectMember", + "id": "gid://gitlab/ProjectMember/54", + "user": { + "__ref": "UserCore:gid://gitlab/User/9" + } + }, + "UserCore:gid://gitlab/User/19": { + "__typename": "UserCore", + "id": "gid://gitlab/User/19", + "avatarUrl": "https://secure.gravatar.com/avatar/3126153e3301ebf7cc8f7c99e57007f2?s=80&d=identicon", + "name": "Cecile Hermann", + "username": "jeannetta_breitenberg" + }, + "ProjectMember:gid://gitlab/ProjectMember/53": { + "__typename": "ProjectMember", + "id": "gid://gitlab/ProjectMember/53", + "user": { + "__ref": "UserCore:gid://gitlab/User/19" + } + }, + "UserCore:gid://gitlab/User/2": { + "__typename": "UserCore", + "id": "gid://gitlab/User/2", + "avatarUrl": "https://secure.gravatar.com/avatar/a138e401136c90561f949297387a3bb9?s=80&d=identicon", + "name": "Tish Treutel", + "username": "liana.larkin" + }, + "ProjectMember:gid://gitlab/ProjectMember/52": { + "__typename": "ProjectMember", + "id": "gid://gitlab/ProjectMember/52", + "user": { + "__ref": "UserCore:gid://gitlab/User/2" + } + }, + "UserCore:gid://gitlab/User/13": { + "__typename": "UserCore", + "id": "gid://gitlab/User/13", + "avatarUrl": "https://secure.gravatar.com/avatar/0ce8057f452296a13b5620bb2d9ede57?s=80&d=identicon", + "name": "Tammy Gusikowski", + "username": "xuan_oreilly" + }, + "GroupMember:gid://gitlab/GroupMember/26": { + "__typename": "GroupMember", + "id": "gid://gitlab/GroupMember/26", + "user": { + "__ref": "UserCore:gid://gitlab/User/13" + } + }, + "UserCore:gid://gitlab/User/21": { + "__typename": "UserCore", + "id": "gid://gitlab/User/21", + "avatarUrl": "https://secure.gravatar.com/avatar/415b09d256f26403384363d7948c4d77?s=80&d=identicon", + "name": "Twanna Hegmann", + "username": "jamaal" + }, + "GroupMember:gid://gitlab/GroupMember/25": { + "__typename": "GroupMember", + "id": "gid://gitlab/GroupMember/25", + "user": { + "__ref": "UserCore:gid://gitlab/User/21" + } + }, + "UserCore:gid://gitlab/User/14": { + "__typename": "UserCore", + "id": "gid://gitlab/User/14", + "avatarUrl": "https://secure.gravatar.com/avatar/e99697c6664381b0351b7617717dd49b?s=80&d=identicon", + "name": "Francie Cole", + "username": "greg.wisoky" + }, + "GroupMember:gid://gitlab/GroupMember/11": { + "__typename": "GroupMember", + "id": "gid://gitlab/GroupMember/11", + "user": { + "__ref": "UserCore:gid://gitlab/User/14" + } + }, + "UserCore:gid://gitlab/User/7": { + "__typename": "UserCore", + "id": "gid://gitlab/User/7", + "avatarUrl": "https://secure.gravatar.com/avatar/3a382857e362d6cce60d3806dd173444?s=80&d=identicon", + "name": "Ivan Carter", + "username": "ethyl" + }, + "GroupMember:gid://gitlab/GroupMember/10": { + "__typename": "GroupMember", + "id": "gid://gitlab/GroupMember/10", + "user": { + "__ref": "UserCore:gid://gitlab/User/7" + } + }, + "UserCore:gid://gitlab/User/15": { + "__typename": "UserCore", + "id": "gid://gitlab/User/15", + "avatarUrl": "https://secure.gravatar.com/avatar/79653006ff557e081db02deaa4ca281c?s=80&d=identicon", + "name": "Danuta Dare", + "username": "maddie_hintz" + }, + "GroupMember:gid://gitlab/GroupMember/9": { + "__typename": "GroupMember", + "id": "gid://gitlab/GroupMember/9", + "user": { + "__ref": "UserCore:gid://gitlab/User/15" + } + }, + "GroupMember:gid://gitlab/GroupMember/1": { + "__typename": "GroupMember", + "id": "gid://gitlab/GroupMember/1", + "user": { + "__ref": "UserCore:gid://gitlab/User/1" + } + }, + "Milestone:gid://gitlab/Milestone/30": { + "__typename": "Milestone", + "id": "gid://gitlab/Milestone/30", + "title": "v4.0" + }, + "Milestone:gid://gitlab/Milestone/28": { + "__typename": "Milestone", + "id": "gid://gitlab/Milestone/28", + "title": "v2.0" + }, + "Milestone:gid://gitlab/Milestone/27": { + "__typename": "Milestone", + "id": "gid://gitlab/Milestone/27", + "title": "v1.0" + }, + "Milestone:gid://gitlab/Milestone/26": { + "__typename": "Milestone", + "id": "gid://gitlab/Milestone/26", + "title": "v0.0" + }, + "Milestone:gid://gitlab/Milestone/45": { + "__typename": "Milestone", + "id": "gid://gitlab/Milestone/45", + "title": "Sprint - Autem id maxime consequatur quam." + }, + "Label:gid://gitlab/ProjectLabel/99": { + "__typename": "Label", + "id": "gid://gitlab/ProjectLabel/99", + "color": "#a5c6fb", + "textColor": "#333333", + "title": "Accent" + }, + "Label:gid://gitlab/GroupLabel/41": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/41", + "color": "#0609ba", + "textColor": "#FFFFFF", + "title": "Breckwood" + }, + "Label:gid://gitlab/GroupLabel/48": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/48", + "color": "#fa7620", + "textColor": "#FFFFFF", + "title": "Brieph" + }, + "Label:gid://gitlab/GroupLabel/46": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/46", + "color": "#d97020", + "textColor": "#FFFFFF", + "title": "Bryntfunc" + }, + "Label:gid://gitlab/GroupLabel/50": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/50", + "color": "#8a934f", + "textColor": "#FFFFFF", + "title": "CL" + }, + "Label:gid://gitlab/GroupLabel/44": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/44", + "color": "#9e1d53", + "textColor": "#FFFFFF", + "title": "Cofunc" + }, + "Label:gid://gitlab/ProjectLabel/96": { + "__typename": "Label", + "id": "gid://gitlab/ProjectLabel/96", + "color": "#0384f3", + "textColor": "#FFFFFF", + "title": "Corolla" + }, + "Label:gid://gitlab/GroupLabel/45": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/45", + "color": "#f0b448", + "textColor": "#FFFFFF", + "title": "Cygcell" + }, + "Label:gid://gitlab/ProjectLabel/95": { + "__typename": "Label", + "id": "gid://gitlab/ProjectLabel/95", + "color": "#d13231", + "textColor": "#FFFFFF", + "title": "Freestyle" + }, + "Label:gid://gitlab/GroupLabel/49": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/49", + "color": "#f43983", + "textColor": "#FFFFFF", + "title": "Genbalt" + }, + "Label:gid://gitlab/ProjectLabel/98": { + "__typename": "Label", + "id": "gid://gitlab/ProjectLabel/98", + "color": "#247441", + "textColor": "#FFFFFF", + "title": "LaSabre" + }, + "Label:gid://gitlab/ProjectLabel/97": { + "__typename": "Label", + "id": "gid://gitlab/ProjectLabel/97", + "color": "#3bd51a", + "textColor": "#FFFFFF", + "title": "Probe" + }, + "Label:gid://gitlab/GroupLabel/47": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/47", + "color": "#6bfb9d", + "textColor": "#333333", + "title": "Techbalt" + }, + "Label:gid://gitlab/GroupLabel/42": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/42", + "color": "#996016", + "textColor": "#FFFFFF", + "title": "Troffe" + }, + "Label:gid://gitlab/GroupLabel/43": { + "__typename": "Label", + "id": "gid://gitlab/GroupLabel/43", + "color": "#a75c05", + "textColor": "#FFFFFF", + "title": "Tronceforge" + }, + "Issue:gid://gitlab/Issue/1123": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1123", + "iid": "669", + "confidential": false, + "createdAt": "2023-01-09T04:04:57Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "esse sint est", + "updatedAt": "2023-01-09T04:04:57Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/669", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/669", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1100": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1100", + "iid": "646", + "confidential": false, + "createdAt": "2023-01-09T04:04:56Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "cupidatat sunt sint", + "updatedAt": "2023-01-09T04:04:56Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/646", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/646", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1084": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1084", + "iid": "630", + "confidential": false, + "createdAt": "2023-01-09T04:04:54Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "culpa sint irure", + "updatedAt": "2023-01-09T04:04:54Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/630", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/630", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1052": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1052", + "iid": "598", + "confidential": false, + "createdAt": "2023-01-09T04:04:52Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint in anim", + "updatedAt": "2023-01-09T04:04:52Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/598", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/598", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1017": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1017", + "iid": "563", + "confidential": false, + "createdAt": "2023-01-09T04:04:50Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint lorem sint", + "updatedAt": "2023-01-09T04:04:50Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/563", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/563", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/1007": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/1007", + "iid": "553", + "confidential": false, + "createdAt": "2023-01-09T04:04:49Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "ea non sint", + "updatedAt": "2023-01-09T04:04:49Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/553", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/553", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/988": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/988", + "iid": "534", + "confidential": false, + "createdAt": "2023-01-09T04:04:47Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "minim ea sint", + "updatedAt": "2023-01-09T04:04:47Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/534", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/534", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/949": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/949", + "iid": "495", + "confidential": false, + "createdAt": "2023-01-09T04:04:42Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "adipiscing sint ullamco", + "updatedAt": "2023-01-09T04:04:42Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/495", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/495", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/908": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/908", + "iid": "454", + "confidential": false, + "createdAt": "2023-01-09T04:04:38Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sit dolore sint", + "updatedAt": "2023-01-09T04:04:38Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/454", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/454", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/852": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/852", + "iid": "398", + "confidential": false, + "createdAt": "2023-01-09T04:04:32Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "dolor adipiscing sint", + "updatedAt": "2023-01-09T04:04:32Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/398", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/398", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/842": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/842", + "iid": "388", + "confidential": false, + "createdAt": "2023-01-09T04:04:31Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "exercitation consequat sint", + "updatedAt": "2023-01-09T04:04:31Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/388", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/388", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/782": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/782", + "iid": "328", + "confidential": false, + "createdAt": "2023-01-09T04:04:23Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "eiusmod mollit sint", + "updatedAt": "2023-01-09T04:04:23Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/328", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/328", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/779": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/779", + "iid": "325", + "confidential": false, + "createdAt": "2023-01-09T04:04:23Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sunt sint aute", + "updatedAt": "2023-01-09T04:04:23Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/325", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/325", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/769": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/769", + "iid": "315", + "confidential": false, + "createdAt": "2023-01-09T04:04:22Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "aute et sint", + "updatedAt": "2023-01-09T04:04:22Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/315", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/315", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/718": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/718", + "iid": "264", + "confidential": false, + "createdAt": "2023-01-09T04:04:15Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "quis sint in", + "updatedAt": "2023-01-09T04:04:15Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/264", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/264", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/634": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/634", + "iid": "180", + "confidential": false, + "createdAt": "2023-01-09T04:04:05Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint in Duis", + "updatedAt": "2023-01-09T04:04:05Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/180", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/180", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/614": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/614", + "iid": "160", + "confidential": false, + "createdAt": "2023-01-09T04:04:02Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "ex magna sint", + "updatedAt": "2023-01-09T04:04:02Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/160", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/160", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/564": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/564", + "iid": "110", + "confidential": false, + "createdAt": "2023-01-09T04:02:30Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "pariatur dolore sint", + "updatedAt": "2023-01-09T04:02:30Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/110", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/110", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/553": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/553", + "iid": "99", + "confidential": false, + "createdAt": "2023-01-09T04:02:28Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "dolor sint anim", + "updatedAt": "2023-01-09T04:02:28Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/99", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/99", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + }, + "Issue:gid://gitlab/Issue/542": { + "__typename": "Issue", + "id": "gid://gitlab/Issue/542", + "iid": "88", + "confidential": false, + "createdAt": "2023-01-09T04:02:27Z", + "downvotes": 0, + "dueDate": null, + "hidden": false, + "humanTimeEstimate": null, + "mergeRequestsCount": 0, + "moved": false, + "state": "opened", + "title": "sint eiusmod anim", + "updatedAt": "2023-01-09T04:02:27Z", + "closedAt": null, + "upvotes": 0, + "userDiscussionsCount": 0, + "webPath": "/flightjs/Flight/-/issues/88", + "webUrl": "https://gdk.test:3443/flightjs/Flight/-/issues/88", + "type": "ISSUE", + "assignees": { + "__typename": "UserCoreConnection", + "nodes": [] + }, + "author": { + "__ref": "UserCore:gid://gitlab/User/1" + }, + "labels": { + "__typename": "LabelConnection", + "nodes": [] + }, + "milestone": null, + "taskCompletionStatus": { + "__typename": "TaskCompletionStatus", + "completedCount": 0, + "count": 0 + }, + "blockingCount": 0, + "healthStatus": null, + "weight": null + } +} diff --git a/spec/frontend/lib/apollo/persist_link_spec.js b/spec/frontend/lib/apollo/persist_link_spec.js new file mode 100644 index 00000000000..ddb861bcee0 --- /dev/null +++ b/spec/frontend/lib/apollo/persist_link_spec.js @@ -0,0 +1,74 @@ +/* eslint-disable no-underscore-dangle */ +import { gql, execute, ApolloLink, Observable } from '@apollo/client/core'; +import { testApolloLink } from 'helpers/test_apollo_link'; +import { getPersistLink } from '~/lib/apollo/persist_link'; + +const DEFAULT_QUERY = gql` + query { + foo { + bar + } + } +`; + +const QUERY_WITH_DIRECTIVE = gql` + query { + foo @persist { + bar + } + } +`; + +const QUERY_WITH_PERSIST_FIELD = gql` + query { + foo @persist { + bar + __persist + } + } +`; + +const terminatingLink = new ApolloLink(() => Observable.of({ data: { foo: { bar: 1 } } })); + +describe('~/lib/apollo/persist_link', () => { + let subscription; + + afterEach(() => { + if (subscription) { + subscription.unsubscribe(); + } + }); + + it('removes `@persist` directive from the operation', async () => { + const operation = await testApolloLink(getPersistLink(), {}, QUERY_WITH_DIRECTIVE); + const { selections } = operation.query.definitions[0].selectionSet; + + expect(selections[0].directives).toEqual([]); + }); + + it('removes `__persist` fields from the operation with `@persist` directive', async () => { + const operation = await testApolloLink(getPersistLink(), {}, QUERY_WITH_PERSIST_FIELD); + + const { selections } = operation.query.definitions[0].selectionSet; + const childFields = selections[0].selectionSet.selections; + + expect(childFields).toHaveLength(1); + expect(childFields.some((field) => field.name.value === '__persist')).toBe(false); + }); + + it('decorates the response with `__persist: true` is there is `__persist` field in the query', async () => { + const link = getPersistLink().concat(terminatingLink); + + subscription = execute(link, { query: QUERY_WITH_PERSIST_FIELD }).subscribe(({ data }) => { + expect(data.foo.__persist).toBe(true); + }); + }); + + it('does not decorate the response with `__persist: true` is there if query is not persistent', async () => { + const link = getPersistLink().concat(terminatingLink); + + subscription = execute(link, { query: DEFAULT_QUERY }).subscribe(({ data }) => { + expect(data.foo.__persist).toBe(undefined); + }); + }); +}); diff --git a/spec/frontend/lib/apollo/persistence_mapper_spec.js b/spec/frontend/lib/apollo/persistence_mapper_spec.js new file mode 100644 index 00000000000..2efe28d2ca7 --- /dev/null +++ b/spec/frontend/lib/apollo/persistence_mapper_spec.js @@ -0,0 +1,163 @@ +import { persistenceMapper } from '~/lib/apollo/persistence_mapper'; +import NON_PERSISTED_CACHE from './mock_data/non_persisted_cache.json'; +import CACHE_WITH_PERSIST_DIRECTIVE from './mock_data/cache_with_persist_directive.json'; +import CACHE_WITH_PERSIST_DIRECTIVE_AND_FIELDS from './mock_data/cache_with_persist_directive_and_field.json'; + +describe('lib/apollo/persistence_mapper', () => { + it('returns only empty root query if `@persist` directive or `__persist` field is not present', async () => { + const persistedData = await persistenceMapper(JSON.stringify(NON_PERSISTED_CACHE)); + + expect(JSON.parse(persistedData)).toEqual({ ROOT_QUERY: { __typename: 'Query' } }); + }); + + it('returns root query with one `project` field if only `@persist` directive is present', async () => { + const persistedData = await persistenceMapper(JSON.stringify(CACHE_WITH_PERSIST_DIRECTIVE)); + + expect(JSON.parse(persistedData)).toEqual({ + ROOT_QUERY: { + __typename: 'Query', + 'project({"fullPath":"flightjs/Flight"}) @persist': { + __ref: 'Project:gid://gitlab/Project/6', + }, + }, + 'Project:gid://gitlab/Project/6': { __typename: 'Project', id: 'gid://gitlab/Project/6' }, + }); + }); + + it('returns root query nested fields that contain `__persist` field if `@persist` directive is present', async () => { + const persistedData = await persistenceMapper( + JSON.stringify(CACHE_WITH_PERSIST_DIRECTIVE_AND_FIELDS), + ); + + expect(JSON.parse(persistedData)).toEqual({ + ROOT_QUERY: { + __typename: 'Query', + 'project({"fullPath":"flightjs/Flight"}) @persist': { + __ref: 'Project:gid://gitlab/Project/6', + }, + }, + 'Project:gid://gitlab/Project/6': { + __typename: 'Project', + id: 'gid://gitlab/Project/6', + 'issues({"after":null,"before":"eyJ1cGRhdGVkX2F0IjoiMjAyMy0wMS0wOSAwNDowNToyOS4yMzI5NDUwMDAgKzAwMDAiLCJpZCI6IjE1NjYifQ","includeSubepics":true,"last":20,"sort":"UPDATED_DESC","state":"opened","types":["ISSUE","INCIDENT","TEST_CASE","TASK"]})': { + __typename: 'IssueConnection', + __persist: true, + pageInfo: { + __typename: 'PageInfo', + hasNextPage: true, + hasPreviousPage: false, + startCursor: + 'eyJ1cGRhdGVkX2F0IjoiMjAyMy0wMS0xMCAxMjozNjo1NC41NDYxNzEwMDAgKzAwMDAiLCJpZCI6IjQ4MyJ9', + endCursor: + 'eyJ1cGRhdGVkX2F0IjoiMjAyMy0wMS0wOSAwNDowNToyOS4zMDE3NDcwMDAgKzAwMDAiLCJpZCI6IjE1NjcifQ', + }, + nodes: [ + { + __ref: 'Issue:gid://gitlab/Issue/483', + }, + { + __ref: 'Issue:gid://gitlab/Issue/1585', + }, + { + __ref: 'Issue:gid://gitlab/Issue/1584', + }, + { + __ref: 'Issue:gid://gitlab/Issue/1583', + }, + { + __ref: 'Issue:gid://gitlab/Issue/1582', + }, + { + __ref: 'Issue:gid://gitlab/Issue/1581', + }, + { + __ref: 'Issue:gid://gitlab/Issue/1580', + }, + { + __ref: 'Issue:gid://gitlab/Issue/1579', + }, + { + __ref: 'Issue:gid://gitlab/Issue/1578', + }, + { + __ref: 'Issue:gid://gitlab/Issue/1577', + }, + { + __ref: 'Issue:gid://gitlab/Issue/1576', + }, + { + __ref: 'Issue:gid://gitlab/Issue/1575', + }, + { + __ref: 'Issue:gid://gitlab/Issue/1574', + }, + { + __ref: 'Issue:gid://gitlab/Issue/1573', + }, + { + __ref: 'Issue:gid://gitlab/Issue/1572', + }, + { + __ref: 'Issue:gid://gitlab/Issue/1571', + }, + { + __ref: 'Issue:gid://gitlab/Issue/1570', + }, + { + __ref: 'Issue:gid://gitlab/Issue/1569', + }, + { + __ref: 'Issue:gid://gitlab/Issue/1568', + }, + { + __ref: 'Issue:gid://gitlab/Issue/1567', + }, + ], + }, + }, + 'Issue:gid://gitlab/Issue/483': { + __typename: 'Issue', + __persist: true, + id: 'gid://gitlab/Issue/483', + iid: '31', + confidential: false, + createdAt: '2022-09-11T15:24:16Z', + downvotes: 1, + dueDate: null, + hidden: false, + humanTimeEstimate: null, + mergeRequestsCount: 1, + moved: false, + state: 'opened', + title: 'Instigate the Incident!', + updatedAt: '2023-01-10T12:36:54Z', + closedAt: null, + upvotes: 0, + userDiscussionsCount: 2, + webPath: '/flightjs/Flight/-/issues/31', + webUrl: 'https://gdk.test:3443/flightjs/Flight/-/issues/31', + type: 'INCIDENT', + assignees: { + __typename: 'UserCoreConnection', + nodes: [], + }, + author: { + __ref: 'UserCore:gid://gitlab/User/1', + }, + labels: { + __typename: 'LabelConnection', + nodes: [], + }, + milestone: null, + taskCompletionStatus: { + __typename: 'TaskCompletionStatus', + completedCount: 0, + count: 0, + }, + blockingCount: 0, + healthStatus: null, + weight: null, + }, + }); + }); +}); diff --git a/spec/helpers/learn_gitlab_helper_spec.rb b/spec/helpers/learn_gitlab_helper_spec.rb index 0d4f1965d92..0ec1434e496 100644 --- a/spec/helpers/learn_gitlab_helper_spec.rb +++ b/spec/helpers/learn_gitlab_helper_spec.rb @@ -2,7 +2,7 @@ require 'spec_helper' -RSpec.describe LearnGitlabHelper do +RSpec.describe LearnGitlabHelper, feature_category: :onboarding do include AfterNextHelpers include Devise::Test::ControllerHelpers diff --git a/spec/lib/gitlab/graphql/queries_spec.rb b/spec/lib/gitlab/graphql/queries_spec.rb index 2c2ec821385..c556f507876 100644 --- a/spec/lib/gitlab/graphql/queries_spec.rb +++ b/spec/lib/gitlab/graphql/queries_spec.rb @@ -360,5 +360,29 @@ RSpec.describe Gitlab::Graphql::Queries do end end end + + context 'a query containing a persist directive' do + let(:path) { 'persist_directive.query.graphql' } + + it_behaves_like 'a valid GraphQL query for the blog schema' + + it 'is tagged as a client query' do + expect(subject.validate(schema).first).to eq :client_query + end + end + + context 'a query containing a persistantly directive' do + let(:path) { 'persistantly_directive.query.graphql' } + + it 'is not tagged as a client query' do + expect(subject.validate(schema).first).not_to eq :client_query + end + end + + context 'a query containing a persist field' do + let(:path) { 'persist_field.query.graphql' } + + it_behaves_like 'a valid GraphQL query for the blog schema' + end end end diff --git a/spec/models/concerns/spammable_spec.rb b/spec/models/concerns/spammable_spec.rb index baa2d75705a..44cf87aa1c1 100644 --- a/spec/models/concerns/spammable_spec.rb +++ b/spec/models/concerns/spammable_spec.rb @@ -202,5 +202,21 @@ RSpec.describe Spammable do expect(issue.submittable_as_spam_by?(nil)).to be_nil end end + + describe '#allow_possible_spam?' do + subject { issue.allow_possible_spam? } + + context 'when the `allow_possible_spam` application setting is turned off' do + it { is_expected.to eq(false) } + end + + context 'when the `allow_possible_spam` application setting is turned on' do + before do + stub_application_setting(allow_possible_spam: true) + end + + it { is_expected.to eq(true) } + end + end end end diff --git a/spec/requests/api/issues/post_projects_issues_spec.rb b/spec/requests/api/issues/post_projects_issues_spec.rb index 7305da1305a..265091fa698 100644 --- a/spec/requests/api/issues/post_projects_issues_spec.rb +++ b/spec/requests/api/issues/post_projects_issues_spec.rb @@ -432,11 +432,7 @@ RSpec.describe API::Issues, feature_category: :team_planning do } end - context 'when allow_possible_spam feature flag is false' do - before do - stub_feature_flags(allow_possible_spam: false) - end - + context 'when allow_possible_spam application setting is false' do it 'does not create a new project issue' do expect { post_issue }.not_to change(Issue, :count) end @@ -454,7 +450,11 @@ RSpec.describe API::Issues, feature_category: :team_planning do end end - context 'when allow_possible_spam feature flag is true' do + context 'when allow_possible_spam application setting is true' do + before do + stub_application_setting(allow_possible_spam: true) + end + it 'does creates a new project issue' do expect { post_issue }.to change(Issue, :count).by(1) end diff --git a/spec/requests/api/issues/put_projects_issues_spec.rb b/spec/requests/api/issues/put_projects_issues_spec.rb index 2d7439d65c1..f0d174c9e78 100644 --- a/spec/requests/api/issues/put_projects_issues_spec.rb +++ b/spec/requests/api/issues/put_projects_issues_spec.rb @@ -204,11 +204,7 @@ RSpec.describe API::Issues, feature_category: :team_planning do end end - context 'when allow_possible_spam feature flag is false' do - before do - stub_feature_flags(allow_possible_spam: false) - end - + context 'when allow_possible_spam application setting is false' do it 'does not update a project issue' do expect { update_issue }.not_to change { issue.reload.title } end @@ -226,7 +222,11 @@ RSpec.describe API::Issues, feature_category: :team_planning do end end - context 'when allow_possible_spam feature flag is true' do + context 'when allow_possible_spam application setting is true' do + before do + stub_application_setting(allow_possible_spam: true) + end + it 'updates a project issue' do expect { update_issue }.to change { issue.reload.title } end diff --git a/spec/requests/api/project_snippets_spec.rb b/spec/requests/api/project_snippets_spec.rb index 568486deb7f..267557b8137 100644 --- a/spec/requests/api/project_snippets_spec.rb +++ b/spec/requests/api/project_snippets_spec.rb @@ -256,7 +256,6 @@ RSpec.describe API::ProjectSnippets, feature_category: :source_code_management d allow_next_instance_of(Spam::AkismetService) do |instance| allow(instance).to receive(:spam?).and_return(true) end - stub_feature_flags(allow_possible_spam: false) project.add_developer(user) end @@ -312,8 +311,6 @@ RSpec.describe API::ProjectSnippets, feature_category: :source_code_management d allow_next_instance_of(Spam::AkismetService) do |instance| allow(instance).to receive(:spam?).and_return(true) end - - stub_feature_flags(allow_possible_spam: false) end context 'when the snippet is private' do diff --git a/spec/requests/api/snippets_spec.rb b/spec/requests/api/snippets_spec.rb index dd0da0cb887..2bc4c177bc9 100644 --- a/spec/requests/api/snippets_spec.rb +++ b/spec/requests/api/snippets_spec.rb @@ -340,7 +340,6 @@ RSpec.describe API::Snippets, factory_default: :keep, feature_category: :source_ allow_next_instance_of(Spam::AkismetService) do |instance| allow(instance).to receive(:spam?).and_return(true) end - stub_feature_flags(allow_possible_spam: false) end context 'when the snippet is private' do @@ -406,7 +405,6 @@ RSpec.describe API::Snippets, factory_default: :keep, feature_category: :source_ allow_next_instance_of(Spam::AkismetService) do |instance| allow(instance).to receive(:spam?).and_return(true) end - stub_feature_flags(allow_possible_spam: false) end context 'when the snippet is private' do diff --git a/spec/services/spam/spam_verdict_service_spec.rb b/spec/services/spam/spam_verdict_service_spec.rb index b89c96129c2..dde93aa6b93 100644 --- a/spec/services/spam/spam_verdict_service_spec.rb +++ b/spec/services/spam/spam_verdict_service_spec.rb @@ -28,10 +28,6 @@ RSpec.describe Spam::SpamVerdictService do extra_attributes end - before do - stub_feature_flags(allow_possible_spam: false) - end - shared_examples 'execute spam verdict service' do subject { service.execute } @@ -119,9 +115,9 @@ RSpec.describe Spam::SpamVerdictService do end end - context 'if allow_possible_spam flag is true' do + context 'if allow_possible_spam application setting is true' do before do - stub_feature_flags(allow_possible_spam: true) + stub_application_setting(allow_possible_spam: true) end context 'and a service returns a verdict that should be overridden' do diff --git a/yarn.lock b/yarn.lock index a9728ad7cb7..73c48a98129 100644 --- a/yarn.lock +++ b/yarn.lock @@ -2857,6 +2857,11 @@ apollo-upload-client@15.0.0: dependencies: extract-files "^10.0.0" +apollo3-cache-persist@^0.14.1: + version "0.14.1" + resolved "https://registry.yarnpkg.com/apollo3-cache-persist/-/apollo3-cache-persist-0.14.1.tgz#8f4c016b4d413aa28f68429b37c8d12524b5983b" + integrity sha512-p/jNzN/MmSd0TmY7/ts0B3qi0SdQ3w9yNLQdKqB3GGb9xATUlAum2v4hSrTeWd/DZKK2Z7Xg5kFXTH6nNVnKSQ== + aproba@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" @@ -11883,6 +11888,11 @@ tr46@~0.0.3: resolved "https://registry.yarnpkg.com/tr46/-/tr46-0.0.3.tgz#8184fd347dac9cdc185992f3a6622e14b9d9ab6a" integrity sha1-gYT9NH2snNwYWZLzpmIuFLnZq2o= +traverse@^0.6.7: + version "0.6.7" + resolved "https://registry.yarnpkg.com/traverse/-/traverse-0.6.7.tgz#46961cd2d57dd8706c36664acde06a248f1173fe" + integrity sha512-/y956gpUo9ZNCb99YjxG7OaslxZWHfCHAUUfshwqOXmxUIvqLjVO581BT+gM59+QV9tFe6/CGG53tsA1Y7RSdg== + trim-newlines@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-3.0.1.tgz#260a5d962d8b752425b32f3a7db0dcacd176c144" |
