Skip to content

Simplify GraphQL query for container repository permissions example

Adie (she/her) requested to merge 450714-simpliify-query into master

What does this MR do and why?

This MR aims to solve the flaky test that was raised in #450714 (closed) by rewriting the query used in the example.

The test fails intermittently and when retrying it succeeds. Locally, I cannot replicate the issue even after changing the timeouts (found this guide from a similar timeout issue).

And reading similar issues regarding GraphQL validation timeout errors, the error is not due to the number of records in the DB but based on the complexity of the query sent to the backend (source).

Because of this, I started to investigate what the query is and when printing the query, it seems to be the whole root query with 3900+ lines:

Original Query
{ containerRepository(id: "gid://gitlab/ContainerRepository/9"){
  tags {
 edges {
  node {
   canDelete
   createdAt
   digest
   location
   name
   path
   publishedAt
   revision
   shortRevision
   totalSize
  }
  cursor
 }
 nodes {
  userPermissions {
   destroyContainerRepositoryTag
  }
  canDelete
  createdAt
  digest
  location
  name
  path
  publishedAt
  referrers {
   artifactType
   digest
  }
  revision
  shortRevision
  totalSize
 }
 pageInfo {
  hasNextPage
  hasPreviousPage
  startCursor
  endCursor
 }
}
userPermissions {
 destroyContainerRepository
}
canDelete
createdAt
expirationPolicyCleanupStatus
expirationPolicyStartedAt
id
lastCleanupDeletedTagsCount
location
migrationState
name
path
project {
 userPermissions {
  changeNamespace
  changeVisibilityLevel
  renameProject
  removeProject
  archiveProject
  removeForkProject
  removePages
  readProject
  createMergeRequestIn
  readWiki
  readProjectMember
  createIssue
  uploadFile
  readCycleAnalytics
  downloadCode
  downloadWikiCode
  forkProject
  readCommitStatus
  requestAccess
  createPipeline
  createPipelineSchedule
  createMergeRequestFrom
  createWiki
  pushCode
  createDeployment
  pushToDeleteProtectedBranch
  adminWiki
  adminProject
  updatePages
  adminRemoteMirror
  createLabel
  updateWiki
  destroyWiki
  createPages
  destroyPages
  readPagesContent
  adminOperations
  readMergeRequest
  readDesign
  createDesign
  destroyDesign
  readEnvironment
  viewEditPage
  createSnippet
  adminPathLocks
 }
 id
 ciConfigPathOrDefault
 fullPath
 path
 organizationEditPath
 incidentManagementTimelineEventTags {
  id
  name
 }
 name
 nameWithNamespace
 description
 tagList
 topics
 httpUrlToRepo
 sshUrlToRepo
 webUrl
 forksCount
 starCount
 createdAt
 lastActivityAt
 archived
 visibility
 lfsEnabled
 maxAccessLevel {
  integerValue
  stringValue
 }
 mergeRequestsFfOnlyEnabled
 sharedRunnersEnabled
 serviceDeskEnabled
 serviceDeskAddress
 avatarUrl
 jobsEnabled
 isCatalogResource
 publicJobs
 openIssuesCount
 openMergeRequestsCount
 allowMergeOnSkippedPipeline
 autocloseReferencedIssues
 importStatus
 jiraImportStatus
 onlyAllowMergeIfAllDiscussionsAreResolved
 onlyAllowMergeIfPipelineSucceeds
 printingMergeRequestLinkEnabled
 removeSourceBranchAfterMerge
 requestAccessEnabled
 squashReadOnly
 suggestionCommitMessage
 group {
  userPermissions {
   readGroup
   createProjects
   createCustomEmoji
   removeGroup
  }
  webUrl
  avatarUrl
  customEmoji {
   count
  }
  shareWithGroupLock
  projectCreationLevel
  subgroupCreationLevel
  requireTwoFactorAuthentication
  twoFactorGracePeriod
  autoDevopsEnabled
  emailsDisabled
  emailsEnabled
  maxAccessLevel {
   integerValue
   stringValue
  }
  mentionsDisabled
  parent {
   webUrl
   avatarUrl
   shareWithGroupLock
   projectCreationLevel
   subgroupCreationLevel
   requireTwoFactorAuthentication
   twoFactorGracePeriod
   autoDevopsEnabled
   emailsDisabled
   emailsEnabled
   mentionsDisabled
   containerRepositoriesCount
   dependencyProxyImageCount
   dependencyProxyBlobCount
   dependencyProxyTotalSize
   dependencyProxyTotalSizeInBytes
   dependencyProxyTotalSizeBytes
   dependencyProxyImagePrefix
   descendantGroupsCount
   groupMembersCount
   projectsCount
   lockMathRenderingLimitsEnabled
   mathRenderingLimitsEnabled
   epicsEnabled
   billableMembersCount
   allowStaleRunnerPruning
   enforceFreeUserCap
   duoFeaturesEnabled
   lockDuoFeaturesEnabled
   markedForDeletionOn
   id
   fullName
   fullPath
   name
   path
   crossProjectPipelineAvailable
   description
   lfsEnabled
   requestAccessEnabled
   visibility
   sharedRunnersSetting
   descriptionHtml
   additionalPurchasedStorageSize
   totalRepositorySizeExcess
   totalRepositorySize
   containsLockedProjects
   repositorySizeExcessProjectCount
   actualRepositorySizeLimit
   actualSizeLimit
   storageSizeLimit
   isTemporaryStorageIncreaseEnabled
   temporaryStorageIncreaseEndsOn
   productAnalyticsStoredEventsLimit
  }
  issues {
   weight
   count
  }
  mergeRequests {
   totalTimeToMerge
   count
  }
  containerRepositoriesCount
  packages {
   count
  }
  dependencyProxySetting {
   enabled
  }
  dependencyProxyImageCount
  dependencyProxyBlobCount
  dependencyProxyTotalSize
  dependencyProxyTotalSizeInBytes
  dependencyProxyTotalSizeBytes
  dependencyProxyImagePrefix
  dependencyProxyImageTtlPolicy {
   createdAt
   enabled
   ttl
   updatedAt
  }
  labels {
   count
  }
  timelogs {
   totalSpentTime
   count
  }
  descendantGroupsCount
  groupMembersCount
  projectsCount
  ciVariables {
   limit
  }
  runners {
   count
  }
  organizationStateCounts {
   inactive
   active
   all
  }
  contactStateCounts {
   inactive
   active
   all
  }
  releases {
   count
  }
  workItemStateCounts {
   all
   closed
   opened
  }
  autocompleteUsers {
   id
   bot
   username
   name
   state
   email
   publicEmail
   commitEmail
   avatarUrl
   webUrl
   webPath
   groupCount
   location
   gitpodEnabled
   preferencesGitpodPath
   profileEnableGitpodPath
   bio
   linkedin
   twitter
   discord
   organization
   jobTitle
   createdAt
   lastActivityOn
   pronouns
  }
  lockMathRenderingLimitsEnabled
  mathRenderingLimitsEnabled
  epicsEnabled
  epic {
   confidential
   description
   id
   iid
   state
   title
   startDate
   startDateFixed
   startDateFromInheritedSource
   startDateFromMilestones
   startDateIsFixed
   dueDate
   dueDateFixed
   dueDateFromInheritedSource
   dueDateFromMilestones
   dueDateIsFixed
   downvotes
   upvotes
   userDiscussionsCount
   userNotesCount
   closedAt
   createdAt
   updatedAt
   hasChildren
   hasIssues
   hasParent
   webPath
   webUrl
   relationPath
   relativePosition
   reference
   subscribed
   color
   textColor
   blocked
   blockingCount
   blockedByCount
   titleHtml
   descriptionHtml
  }
  epics {
   count
  }
  vulnerabilitySeveritiesCount {
   info
   unknown
   low
   medium
   high
   critical
  }
  vulnerabilityGrades {
   grade
   count
  }
  billableMembersCount
  doraPerformanceScoreCounts {
   totalProjectsCount
   noDoraDataProjectsCount
  }
  allowStaleRunnerPruning
  clusterAgents {
   count
  }
  enforceFreeUserCap
  savedReplies {
   count
  }
  duoFeaturesEnabled
  lockDuoFeaturesEnabled
  markedForDeletionOn
  id
  fullName
  fullPath
  name
  path
  crossProjectPipelineAvailable
  description
  lfsEnabled
  requestAccessEnabled
  visibility
  rootStorageStatistics {
   buildArtifactsSize
   containerRegistrySize
   containerRegistrySizeIsEstimated
   dependencyProxySize
   lfsObjectsSize
   packagesSize
   pipelineArtifactsSize
   registrySizeEstimated
   repositorySize
   snippetsSize
   storageSize
   uploadsSize
   wikiSize
   costFactoredStorageSize
  }
  projects {
   count
  }
  packageSettings {
   genericDuplicateExceptionRegex
   genericDuplicatesAllowed
   mavenDuplicateExceptionRegex
   mavenDuplicatesAllowed
   mavenPackageRequestsForwarding
   npmPackageRequestsForwarding
   nugetDuplicateExceptionRegex
   nugetDuplicatesAllowed
   pypiPackageRequestsForwarding
   terraformModuleDuplicateExceptionRegex
   terraformModuleDuplicatesAllowed
   lockMavenPackageRequestsForwarding
   lockNpmPackageRequestsForwarding
   lockPypiPackageRequestsForwarding
   mavenPackageRequestsForwardingLocked
   npmPackageRequestsForwardingLocked
   pypiPackageRequestsForwardingLocked
   nugetSymbolServerEnabled
  }
  sharedRunnersSetting
  achievements {
   count
  }
  descriptionHtml
  additionalPurchasedStorageSize
  totalRepositorySizeExcess
  totalRepositorySize
  containsLockedProjects
  repositorySizeExcessProjectCount
  actualRepositorySizeLimit
  actualSizeLimit
  storageSizeLimit
  isTemporaryStorageIncreaseEnabled
  temporaryStorageIncreaseEndsOn
  securityPolicyProject {
   id
   ciConfigPathOrDefault
   fullPath
   path
   organizationEditPath
   name
   nameWithNamespace
   description
   tagList
   topics
   httpUrlToRepo
   sshUrlToRepo
   webUrl
   forksCount
   starCount
   createdAt
   lastActivityAt
   archived
   visibility
   lfsEnabled
   mergeRequestsFfOnlyEnabled
   sharedRunnersEnabled
   serviceDeskEnabled
   serviceDeskAddress
   avatarUrl
   jobsEnabled
   isCatalogResource
   publicJobs
   openIssuesCount
   openMergeRequestsCount
   allowMergeOnSkippedPipeline
   autocloseReferencedIssues
   importStatus
   jiraImportStatus
   onlyAllowMergeIfAllDiscussionsAreResolved
   onlyAllowMergeIfPipelineSucceeds
   printingMergeRequestLinkEnabled
   removeSourceBranchAfterMerge
   requestAccessEnabled
   squashReadOnly
   suggestionCommitMessage
   containerRepositoriesCount
   mergeCommitTemplate
   squashCommitTemplate
   allowsMultipleMergeRequestAssignees
   allowsMultipleMergeRequestReviewers
   isForked
   protectableBranches
   issuesEnabled
   mergeRequestsEnabled
   wikiEnabled
   snippetsEnabled
   containerRegistryEnabled
   descriptionHtml
   securityDashboardPath
   repositorySizeExcess
   actualRepositorySizeLimit
   onlyAllowMergeIfAllStatusChecksPassed
   duoFeaturesEnabled
   trackingKey
   productAnalyticsInstrumentationKey
   mergeRequestsDisableCommittersApproval
   hasJiraVulnerabilityIssueCreationEnabled
   preventMergeWithoutJiraIssueEnabled
   markedForDeletionOn
   isAdjournedDeletionEnabled
   permanentDeletionDate
  }
  productAnalyticsStoredEventsLimit
 }
 namespace {
  id
  fullName
  fullPath
  name
  path
  crossProjectPipelineAvailable
  description
  lfsEnabled
  requestAccessEnabled
  visibility
  rootStorageStatistics {
   buildArtifactsSize
   containerRegistrySize
   containerRegistrySizeIsEstimated
   dependencyProxySize
   lfsObjectsSize
   packagesSize
   pipelineArtifactsSize
   registrySizeEstimated
   repositorySize
   snippetsSize
   storageSize
   uploadsSize
   wikiSize
   costFactoredStorageSize
  }
  projects {
   count
  }
  packageSettings {
   genericDuplicateExceptionRegex
   genericDuplicatesAllowed
   mavenDuplicateExceptionRegex
   mavenDuplicatesAllowed
   mavenPackageRequestsForwarding
   npmPackageRequestsForwarding
   nugetDuplicateExceptionRegex
   nugetDuplicatesAllowed
   pypiPackageRequestsForwarding
   terraformModuleDuplicateExceptionRegex
   terraformModuleDuplicatesAllowed
   lockMavenPackageRequestsForwarding
   lockNpmPackageRequestsForwarding
   lockPypiPackageRequestsForwarding
   mavenPackageRequestsForwardingLocked
   npmPackageRequestsForwardingLocked
   pypiPackageRequestsForwardingLocked
   nugetSymbolServerEnabled
  }
  sharedRunnersSetting
  achievements {
   count
  }
  descriptionHtml
  additionalPurchasedStorageSize
  totalRepositorySizeExcess
  totalRepositorySize
  containsLockedProjects
  repositorySizeExcessProjectCount
  actualRepositorySizeLimit
  actualSizeLimit
  storageSizeLimit
  isTemporaryStorageIncreaseEnabled
  temporaryStorageIncreaseEndsOn
  securityPolicyProject {
   id
   ciConfigPathOrDefault
   fullPath
   path
   organizationEditPath
   name
   nameWithNamespace
   description
   tagList
   topics
   httpUrlToRepo
   sshUrlToRepo
   webUrl
   forksCount
   starCount
   createdAt
   lastActivityAt
   archived
   visibility
   lfsEnabled
   mergeRequestsFfOnlyEnabled
   sharedRunnersEnabled
   serviceDeskEnabled
   serviceDeskAddress
   avatarUrl
   jobsEnabled
   isCatalogResource
   publicJobs
   openIssuesCount
   openMergeRequestsCount
   allowMergeOnSkippedPipeline
   autocloseReferencedIssues
   importStatus
   jiraImportStatus
   onlyAllowMergeIfAllDiscussionsAreResolved
   onlyAllowMergeIfPipelineSucceeds
   printingMergeRequestLinkEnabled
   removeSourceBranchAfterMerge
   requestAccessEnabled
   squashReadOnly
   suggestionCommitMessage
   containerRepositoriesCount
   mergeCommitTemplate
   squashCommitTemplate
   allowsMultipleMergeRequestAssignees
   allowsMultipleMergeRequestReviewers
   isForked
   protectableBranches
   issuesEnabled
   mergeRequestsEnabled
   wikiEnabled
   snippetsEnabled
   containerRegistryEnabled
   descriptionHtml
   securityDashboardPath
   repositorySizeExcess
   actualRepositorySizeLimit
   onlyAllowMergeIfAllStatusChecksPassed
   duoFeaturesEnabled
   trackingKey
   productAnalyticsInstrumentationKey
   mergeRequestsDisableCommittersApproval
   hasJiraVulnerabilityIssueCreationEnabled
   preventMergeWithoutJiraIssueEnabled
   markedForDeletionOn
   isAdjournedDeletionEnabled
   permanentDeletionDate
  }
  productAnalyticsStoredEventsLimit
 }
 statistics {
  commitCount
  buildArtifactsSize
  containerRegistrySize
  lfsObjectsSize
  packagesSize
  pipelineArtifactsSize
  repositorySize
  snippetsSize
  storageSize
  uploadsSize
  wikiSize
  costFactoredStorageSize
  costFactoredRepositorySize
  costFactoredBuildArtifactsSize
  costFactoredLfsObjectsSize
  costFactoredPackagesSize
  costFactoredSnippetsSize
  costFactoredWikiSize
 }
 statisticsDetailsPaths {
  repository
  wiki
  buildArtifacts
  packages
  snippets
  containerRegistry
 }
 repository {
  diskPath
  empty
  exists
  rootRef
  codeOwnersPath
  validateCodeownerFile {
   total
  }
 }
 mergeRequests {
  edges {
   cursor
  }
  nodes {
   createdAt
   description
   diffHeadSha
   draft
   id
   iid
   mergeWhenPipelineSucceeds
   mergedAt
   projectId
   sourceBranch
   sourceBranchProtected
   sourceProjectId
   state
   targetBranch
   targetProjectId
   title
   updatedAt
   allowCollaboration
   defaultMergeCommitMessage
   defaultSquashCommitMessage
   divergedFromTargetBranch
   downvotes
   forceRemoveSourceBranch
   inProgressMergeCommitSha
   mergeCommitSha
   mergeError
   mergeOngoing
   mergeStatus
   mergeStatusEnum
   detailedMergeStatus
   mergeableDiscussionsState
   rebaseCommitSha
   rebaseInProgress
   shouldBeRebased
   shouldRemoveSourceBranch
   sourceBranchExists
   targetBranchExists
   upvotes
   userDiscussionsCount
   userNotesCount
   webUrl
   discussionLocked
   humanTimeEstimate
   humanTotalTimeSpent
   reference
   autoMergeEnabled
   commitCount
   conflicts
   subscribed
   supportsLockOnMerge
   timeEstimate
   totalTimeSpent
   approved
   autoMergeStrategy
   availableAutoMergeStrategies
   hasCi
   mergeable
   securityAutoFix
   squash
   squashOnMerge
   preparedAt
   allowsMultipleAssignees
   allowsMultipleReviewers
   titleHtml
   descriptionHtml
   approvalsLeft
   approvalsRequired
   mergeTrainsCount
   hasSecurityReports
   securityReportsUpToDateOnTargetBranch
  }
  totalTimeToMerge
  count
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 issues {
  edges {
   cursor
  }
  nodes {
   description
   id
   iid
   state
   title
   reference
   confidential
   discussionLocked
   downvotes
   dueDate
   hidden
   mergeRequestsCount
   relativePosition
   upvotes
   userDiscussionsCount
   userNotesCount
   webPath
   webUrl
   emailsDisabled
   emailsEnabled
   humanTimeEstimate
   humanTotalTimeSpent
   subscribed
   timeEstimate
   totalTimeSpent
   closedAt
   createdAt
   updatedAt
   type
   severity
   moved
   createNoteEmail
   projectId
   escalationStatus
   externalAuthor
   titleHtml
   descriptionHtml
   hasEpic
   hasParent
   weight
   blocked
   blockingCount
   blockedByCount
   healthStatus
   statusPagePublishedIncident
   slaDueAt
  }
  weight
  count
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 workItems {
  edges {
   cursor
  }
  nodes {
   closedAt
   confidential
   createdAt
   description
   id
   iid
   lockVersion
   state
   title
   updatedAt
   createNoteEmail
   reference
   archived
   titleHtml
   descriptionHtml
   webUrl
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 workItemStateCounts {
  all
  closed
  opened
 }
 issueStatusCounts {
  opened
  closed
  all
 }
 milestones {
  edges {
   cursor
  }
  nodes {
   id
   iid
   title
   description
   state
   expired
   webPath
   dueDate
   startDate
   createdAt
   updatedAt
   projectMilestone
   groupMilestone
   subgroupMilestone
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 projectMembers {
  edges {
   cursor
  }
  nodes {
   id
   createdAt
   updatedAt
   expiresAt
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 environments {
  edges {
   cursor
  }
  nodes {
   name
   id
   state
   path
   slug
   externalUrl
   kubernetesNamespace
   fluxResourcePath
   createdAt
   updatedAt
   autoStopAt
   autoDeleteAt
   tier
   environmentType
   deploymentsDisplayCount
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 environment {
  userPermissions {
   updateEnvironment
   destroyEnvironment
   stopEnvironment
  }
  name
  id
  state
  path
  slug
  externalUrl
  kubernetesNamespace
  fluxResourcePath
  createdAt
  updatedAt
  autoStopAt
  autoDeleteAt
  tier
  environmentType
  deploymentsDisplayCount
  latestOpenedMostSevereAlert {
   id
   iid
   issueIid
   title
   description
   severity
   status
   service
   monitoringTool
   hosts
   startedAt
   endedAt
   eventCount
   details
   createdAt
   updatedAt
   metricsDashboardUrl
   runbook
   detailsUrl
   webUrl
  }
  deployFreezes {
   status
   startCron
   endCron
   cronTimezone
   startTime
   endTime
  }
  clusterAgent {
   createdAt
   id
   name
   updatedAt
   webPath
  }
 }
 nestedEnvironments {
  edges {
   cursor
  }
  nodes {
   name
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 issue {
  userPermissions {
   readIssue
   adminIssue
   updateIssue
   reopenIssue
   readDesign
   createDesign
   destroyDesign
   createNote
   updateDesign
   adminIssueRelation
  }
  description
  id
  iid
  state
  title
  reference
  author {
   id
   bot
   username
   name
   state
   email
   publicEmail
   commitEmail
   avatarUrl
   webUrl
   webPath
   groupCount
   location
   gitpodEnabled
   preferencesGitpodPath
   profileEnableGitpodPath
   bio
   linkedin
   twitter
   discord
   organization
   jobTitle
   createdAt
   lastActivityOn
   pronouns
  }
  assignees {
   count
  }
  updatedBy {
   id
   bot
   username
   name
   state
   email
   publicEmail
   commitEmail
   avatarUrl
   webUrl
   webPath
   groupCount
   location
   gitpodEnabled
   preferencesGitpodPath
   profileEnableGitpodPath
   bio
   linkedin
   twitter
   discord
   organization
   jobTitle
   createdAt
   lastActivityOn
   pronouns
  }
  labels {
   count
  }
  milestone {
   id
   iid
   title
   description
   state
   expired
   webPath
   dueDate
   startDate
   createdAt
   updatedAt
   projectMilestone
   groupMilestone
   subgroupMilestone
  }
  confidential
  discussionLocked
  downvotes
  dueDate
  hidden
  mergeRequestsCount
  relatedMergeRequests {
   totalTimeToMerge
   count
  }
  relativePosition
  upvotes
  userDiscussionsCount
  userNotesCount
  webPath
  webUrl
  emailsDisabled
  emailsEnabled
  humanTimeEstimate
  humanTotalTimeSpent
  participants {
   count
  }
  subscribed
  timeEstimate
  totalTimeSpent
  closedAt
  createdAt
  updatedAt
  taskCompletionStatus {
   completedCount
   count
  }
  designCollection {
   copyState
  }
  type
  alertManagementAlert {
   id
   iid
   issueIid
   title
   description
   severity
   status
   service
   monitoringTool
   hosts
   startedAt
   endedAt
   eventCount
   details
   createdAt
   updatedAt
   metricsDashboardUrl
   runbook
   detailsUrl
   webUrl
  }
  severity
  moved
  movedTo {
   description
   id
   iid
   state
   title
   reference
   confidential
   discussionLocked
   downvotes
   dueDate
   hidden
   mergeRequestsCount
   relativePosition
   upvotes
   userDiscussionsCount
   userNotesCount
   webPath
   webUrl
   emailsDisabled
   emailsEnabled
   humanTimeEstimate
   humanTotalTimeSpent
   subscribed
   timeEstimate
   totalTimeSpent
   closedAt
   createdAt
   updatedAt
   type
   severity
   moved
   createNoteEmail
   projectId
   escalationStatus
   externalAuthor
   titleHtml
   descriptionHtml
   hasEpic
   hasParent
   weight
   blocked
   blockingCount
   blockedByCount
   healthStatus
   statusPagePublishedIncident
   slaDueAt
  }
  closedAsDuplicateOf {
   description
   id
   iid
   state
   title
   reference
   confidential
   discussionLocked
   downvotes
   dueDate
   hidden
   mergeRequestsCount
   relativePosition
   upvotes
   userDiscussionsCount
   userNotesCount
   webPath
   webUrl
   emailsDisabled
   emailsEnabled
   humanTimeEstimate
   humanTotalTimeSpent
   subscribed
   timeEstimate
   totalTimeSpent
   closedAt
   createdAt
   updatedAt
   type
   severity
   moved
   createNoteEmail
   projectId
   escalationStatus
   externalAuthor
   titleHtml
   descriptionHtml
   hasEpic
   hasParent
   weight
   blocked
   blockingCount
   blockedByCount
   healthStatus
   statusPagePublishedIncident
   slaDueAt
  }
  createNoteEmail
  timelogs {
   totalSpentTime
   count
  }
  projectId
  escalationStatus
  externalAuthor
  titleHtml
  descriptionHtml
  epic {
   confidential
   description
   id
   iid
   state
   title
   startDate
   startDateFixed
   startDateFromInheritedSource
   startDateFromMilestones
   startDateIsFixed
   dueDate
   dueDateFixed
   dueDateFromInheritedSource
   dueDateFromMilestones
   dueDateIsFixed
   downvotes
   upvotes
   userDiscussionsCount
   userNotesCount
   closedAt
   createdAt
   updatedAt
   hasChildren
   hasIssues
   hasParent
   webPath
   webUrl
   relationPath
   relativePosition
   reference
   subscribed
   color
   textColor
   blocked
   blockingCount
   blockedByCount
   titleHtml
   descriptionHtml
  }
  hasEpic
  hasParent
  iteration {
   id
   iid
   sequence
   title
   description
   state
   webPath
   webUrl
   scopedPath
   scopedUrl
   dueDate
   startDate
   createdAt
   updatedAt
   descriptionHtml
  }
  weight
  blocked
  blockingCount
  blockedByCount
  blockedByIssues {
   weight
   count
  }
  healthStatus
  statusPagePublishedIncident
  slaDueAt
  metricImages {
   id
   iid
   url
   fileName
   filePath
  }
  escalationPolicy {
   id
   name
   description
  }
  notes {
   count
  }
  commenters {
   count
  }
 }
 packages {
  edges {
   cursor
  }
  nodes {
   id
   canDestroy
   createdAt
   name
   packageType
   status
   statusMessage
   updatedAt
   version
  }
  count
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 packagesCleanupPolicy {
  keepNDuplicatedPackageFiles
  nextRunAt
 }
 packagesProtectionRules {
  edges {
   cursor
  }
  nodes {
   id
   packageNamePattern
   packageType
   pushProtectedUpToAccessLevel
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 jobs {
  edges {
   cursor
  }
  nodes {
   allowFailure
   duration
   id
   kind
   name
   status
   tags
   createdAt
   erasedAt
   finishedAt
   queuedAt
   scheduledAt
   startedAt
   queuedDuration
   active
   browseArtifactsPath
   cancelable
   commitPath
   coverage
   createdByTag
   manualJob
   playPath
   playable
   refName
   refPath
   retried
   retryable
   scheduled
   schedulingType
   shortSha
   stuck
   triggered
   webPath
   canPlayJob
   failureMessage
   aiFailureAnalysis
  }
  count
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 pipelines {
  edges {
   cursor
  }
  nodes {
   id
   iid
   name
   sha
   beforeSha
   complete
   status
   warnings
   configSource
   duration
   queuedDuration
   coverage
   createdAt
   updatedAt
   startedAt
   finishedAt
   committedAt
   retryable
   cancelable
   path
   commitPath
   active
   usesNeeds
   ref
   refPath
   mergeRequestEventType
   totalJobs
   failureReason
   triggeredByPath
   source
   child
   latest
   refText
   stuck
   yamlErrors
   yamlErrorMessages
   trigger
   computeMinutes
  }
  count
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 pipelineSchedules {
  edges {
   cursor
  }
  nodes {
   id
   description
   active
   nextRunAt
   realNextRun
   refForDisplay
   forTag
   editPath
   ref
   refPath
   cron
   cronTimezone
   createdAt
   updatedAt
  }
  count
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 pipelineTriggers {
  edges {
   cursor
  }
  nodes {
   canAccessProject
   description
   hasTokenExposed
   id
   lastUsed
   token
  }
  count
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 pipelineCounts {
  running
  pending
  finished
  all
 }
 ciVariables {
  edges {
   cursor
  }
  nodes {
   environmentScope
   protected
   hidden
   masked
   description
   id
   key
   raw
   value
   variableType
  }
  limit
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 inheritedCiVariables {
  edges {
   cursor
  }
  nodes {
   id
   key
   description
   raw
   variableType
   environmentScope
   protected
   masked
   groupName
   groupCiCdSettingsPath
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 ciCdSettings {
  inboundJobTokenScopeEnabled
  jobTokenScopeEnabled
  keepLatestArtifact
  mergePipelinesEnabled
  project {
   id
   ciConfigPathOrDefault
   fullPath
   path
   organizationEditPath
   name
   nameWithNamespace
   description
   tagList
   topics
   httpUrlToRepo
   sshUrlToRepo
   webUrl
   forksCount
   starCount
   createdAt
   lastActivityAt
   archived
   visibility
   lfsEnabled
   mergeRequestsFfOnlyEnabled
   sharedRunnersEnabled
   serviceDeskEnabled
   serviceDeskAddress
   avatarUrl
   jobsEnabled
   isCatalogResource
   publicJobs
   openIssuesCount
   openMergeRequestsCount
   allowMergeOnSkippedPipeline
   autocloseReferencedIssues
   importStatus
   jiraImportStatus
   onlyAllowMergeIfAllDiscussionsAreResolved
   onlyAllowMergeIfPipelineSucceeds
   printingMergeRequestLinkEnabled
   removeSourceBranchAfterMerge
   requestAccessEnabled
   squashReadOnly
   suggestionCommitMessage
   containerRepositoriesCount
   mergeCommitTemplate
   squashCommitTemplate
   allowsMultipleMergeRequestAssignees
   allowsMultipleMergeRequestReviewers
   isForked
   protectableBranches
   issuesEnabled
   mergeRequestsEnabled
   wikiEnabled
   snippetsEnabled
   containerRegistryEnabled
   descriptionHtml
   securityDashboardPath
   repositorySizeExcess
   actualRepositorySizeLimit
   onlyAllowMergeIfAllStatusChecksPassed
   duoFeaturesEnabled
   trackingKey
   productAnalyticsInstrumentationKey
   mergeRequestsDisableCommittersApproval
   hasJiraVulnerabilityIssueCreationEnabled
   preventMergeWithoutJiraIssueEnabled
   markedForDeletionOn
   isAdjournedDeletionEnabled
   permanentDeletionDate
  }
  mergeTrainsSkipTrainAllowed
  mergeTrainsEnabled
 }
 grafanaIntegration {
  createdAt
  enabled
  grafanaUrl
  id
  updatedAt
 }
 snippets {
  edges {
   cursor
  }
  nodes {
   id
   title
   fileName
   description
   visibilityLevel
   hidden
   createdAt
   updatedAt
   webUrl
   rawUrl
   sshUrlToRepo
   httpUrlToRepo
   descriptionHtml
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 sentryErrors {
  externalUrl
 }
 boards {
  edges {
   cursor
  }
  nodes {
   id
   name
   hideBacklogList
   hideClosedList
   createdAt
   updatedAt
   webPath
   webUrl
   weight
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 recentIssueBoards {
  edges {
   cursor
  }
  nodes {
   id
   name
   hideBacklogList
   hideClosedList
   createdAt
   updatedAt
   webPath
   webUrl
   weight
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 jiraImports {
  edges {
   cursor
  }
  nodes {
   createdAt
   failedToImportCount
   importedIssuesCount
   jiraProjectKey
   scheduledAt
   totalIssueCount
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 services {
  edges {
   cursor
  }
  nodes {
   type
   serviceType
   active
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 alertManagementAlertStatusCounts {
  triggered
  acknowledged
  resolved
  ignored
  open
  all
 }
 alertManagementIntegrations {
  edges {
   cursor
  }
  nodes {
   id
   type
   name
   active
   token
   url
   apiUrl
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 alertManagementHttpIntegrations {
  edges {
   cursor
  }
  nodes {
   payloadExample
   id
   type
   name
   active
   token
   url
   apiUrl
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 releases {
  edges {
   cursor
  }
  nodes {
   createdAt
   description
   historicalRelease
   id
   name
   releasedAt
   tagName
   tagPath
   upcomingRelease
   descriptionHtml
  }
  count
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 containerExpirationPolicy {
  cadence
  createdAt
  enabled
  keepN
  nameRegex
  nameRegexKeep
  nextRunAt
  olderThan
  updatedAt
 }
 containerRegistryProtectionRules {
  edges {
   cursor
  }
  nodes {
   id
   repositoryPathPattern
   pushProtectedUpToAccessLevel
   deleteProtectedUpToAccessLevel
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 containerRepositories {
  edges {
   cursor
  }
  nodes {
   canDelete
   createdAt
   expirationPolicyCleanupStatus
   expirationPolicyStartedAt
   id
   lastCleanupDeletedTagsCount
   location
   migrationState
   name
   path
   status
   tagsCount
   updatedAt
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 containerRepositoriesCount
 terraformStates {
  edges {
   cursor
  }
  nodes {
   id
   name
   lockedAt
   createdAt
   updatedAt
   deletedAt
  }
  count
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 pipelineAnalytics {
  monthPipelinesLabels
  monthPipelinesSuccessful
  monthPipelinesTotals
  pipelineTimesLabels
  pipelineTimesValues
  weekPipelinesLabels
  weekPipelinesSuccessful
  weekPipelinesTotals
  yearPipelinesLabels
  yearPipelinesSuccessful
  yearPipelinesTotals
 }
 ciJobTokenScope {
  projects {
   count
  }
  outboundAllowlist {
   count
  }
  inboundAllowlist {
   count
  }
  inboundAllowlistCount
  groupsAllowlistCount
 }
 timelogs {
  edges {
   cursor
  }
  nodes {
   id
   spentAt
   timeSpent
   summary
  }
  totalSpentTime
  count
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 clusterAgents {
  edges {
   cursor
  }
  nodes {
   createdAt
   id
   name
   updatedAt
   webPath
  }
  count
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 ciAccessAuthorizedAgents {
  edges {
   cursor
  }
  nodes {
   config
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 userAccessAuthorizedAgents {
  edges {
   cursor
  }
  nodes {
   config
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 mergeCommitTemplate
 squashCommitTemplate
 labels {
  edges {
   cursor
  }
  nodes {
   color
   createdAt
   description
   id
   lockOnMerge
   textColor
   title
   updatedAt
   descriptionHtml
  }
  count
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 workItemTypes {
  edges {
   cursor
  }
  nodes {
   iconName
   id
   name
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 timelogCategories {
  edges {
   cursor
  }
  nodes {
   id
   name
   description
   color
   billable
   billingRate
   createdAt
   updatedAt
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 forkTargets {
  edges {
   cursor
  }
  nodes {
   id
   fullName
   fullPath
   name
   path
   crossProjectPipelineAvailable
   description
   lfsEnabled
   requestAccessEnabled
   visibility
   sharedRunnersSetting
   descriptionHtml
   additionalPurchasedStorageSize
   totalRepositorySizeExcess
   totalRepositorySize
   containsLockedProjects
   repositorySizeExcessProjectCount
   actualRepositorySizeLimit
   actualSizeLimit
   storageSizeLimit
   isTemporaryStorageIncreaseEnabled
   temporaryStorageIncreaseEndsOn
   productAnalyticsStoredEventsLimit
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 forkDetails {
  ahead
  behind
  isSyncing
  hasConflicts
 }
 branchRules {
  edges {
   cursor
  }
  nodes {
   id
   name
   isDefault
   isProtected
   matchingBranchesCount
   createdAt
   updatedAt
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 languages {
  name
  share
  color
 }
 runners {
  edges {
   editUrl
   webUrl
   cursor
  }
  nodes {
   accessLevel
   active
   adminUrl
   architectureName
   contactedAt
   createdAt
   description
   editAdminUrl
   ephemeralAuthenticationToken
   ephemeralRegisterUrl
   executorName
   id
   ipAddress
   jobCount
   jobExecutionStatus
   locked
   maintenanceNote
   maximumTimeout
   paused
   platformName
   projectCount
   registerAdminUrl
   revision
   runUntagged
   runnerType
   shortSha
   status
   tagList
   tokenExpiresAt
   version
   maintenanceNoteHtml
   publicProjectsMinutesCostFactor
   privateProjectsMinutesCostFactor
   upgradeStatus
  }
  count
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 dataTransfer {
  totalEgress
 }
 visibleForks {
  edges {
   cursor
  }
  nodes {
   id
   ciConfigPathOrDefault
   fullPath
   path
   organizationEditPath
   name
   nameWithNamespace
   description
   tagList
   topics
   httpUrlToRepo
   sshUrlToRepo
   webUrl
   forksCount
   starCount
   createdAt
   lastActivityAt
   archived
   visibility
   lfsEnabled
   mergeRequestsFfOnlyEnabled
   sharedRunnersEnabled
   serviceDeskEnabled
   serviceDeskAddress
   avatarUrl
   jobsEnabled
   isCatalogResource
   publicJobs
   openIssuesCount
   openMergeRequestsCount
   allowMergeOnSkippedPipeline
   autocloseReferencedIssues
   importStatus
   jiraImportStatus
   onlyAllowMergeIfAllDiscussionsAreResolved
   onlyAllowMergeIfPipelineSucceeds
   printingMergeRequestLinkEnabled
   removeSourceBranchAfterMerge
   requestAccessEnabled
   squashReadOnly
   suggestionCommitMessage
   containerRepositoriesCount
   mergeCommitTemplate
   squashCommitTemplate
   allowsMultipleMergeRequestAssignees
   allowsMultipleMergeRequestReviewers
   isForked
   protectableBranches
   issuesEnabled
   mergeRequestsEnabled
   wikiEnabled
   snippetsEnabled
   containerRegistryEnabled
   descriptionHtml
   securityDashboardPath
   repositorySizeExcess
   actualRepositorySizeLimit
   onlyAllowMergeIfAllStatusChecksPassed
   duoFeaturesEnabled
   trackingKey
   productAnalyticsInstrumentationKey
   mergeRequestsDisableCommittersApproval
   hasJiraVulnerabilityIssueCreationEnabled
   preventMergeWithoutJiraIssueEnabled
   markedForDeletionOn
   isAdjournedDeletionEnabled
   permanentDeletionDate
  }
  count
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 autocompleteUsers {
  userPermissions {
   createSnippet
  }
  id
  bot
  username
  name
  state
  email
  publicEmail
  commitEmail
  avatarUrl
  webUrl
  webPath
  groupCount
  status {
   messageHtml
   availability
   emoji
   message
  }
  location
  starredProjects {
   count
  }
  namespace {
   id
   fullName
   fullPath
   name
   path
   crossProjectPipelineAvailable
   description
   lfsEnabled
   requestAccessEnabled
   visibility
   sharedRunnersSetting
   descriptionHtml
   additionalPurchasedStorageSize
   totalRepositorySizeExcess
   totalRepositorySize
   containsLockedProjects
   repositorySizeExcessProjectCount
   actualRepositorySizeLimit
   actualSizeLimit
   storageSizeLimit
   isTemporaryStorageIncreaseEnabled
   temporaryStorageIncreaseEndsOn
   productAnalyticsStoredEventsLimit
  }
  authoredMergeRequests {
   totalTimeToMerge
   count
  }
  assignedMergeRequests {
   totalTimeToMerge
   count
  }
  reviewRequestedMergeRequests {
   totalTimeToMerge
   count
  }
  timelogs {
   totalSpentTime
   count
  }
  savedReplies {
   count
  }
  gitpodEnabled
  preferencesGitpodPath
  profileEnableGitpodPath
  userAchievements {
   count
  }
  bio
  linkedin
  twitter
  discord
  organization
  jobTitle
  createdAt
  lastActivityOn
  pronouns
  ide {
   codeSuggestionsEnabled
  }
 }
 detailedImportStatus {
  id
  status
  url
  lastError
  lastUpdateAt
  lastUpdateStartedAt
  lastSuccessfulUpdateAt
 }
 valueStreams {
  edges {
   cursor
  }
  nodes {
   id
   name
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 mlModels {
  edges {
   cursor
  }
  nodes {
   id
   name
   createdAt
   description
   versionCount
   candidateCount
  }
  count
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 allowsMultipleMergeRequestAssignees
 allowsMultipleMergeRequestReviewers
 isForked
 protectableBranches
 projectPlanLimits {
  ciPipelineSchedules
 }
 availableDeployKeys {
  edges {
   cursor
  }
  nodes {
   id
   title
   expiresAt
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 issuesEnabled
 mergeRequestsEnabled
 wikiEnabled
 snippetsEnabled
 containerRegistryEnabled
 issuesAccessLevel {
  integerValue
  stringValue
 }
 forkingAccessLevel {
  integerValue
  stringValue
 }
 mergeRequestsAccessLevel {
  integerValue
  stringValue
 }
 descriptionHtml
 securityScanners {
  enabled
  available
  pipelineRun
 }
 securityTrainingProviders {
  id
  name
  description
  url
  logoUrl
  isEnabled
  isPrimary
 }
 vulnerabilities {
  edges {
   cursor
  }
  nodes {
   id
   uuid
   title
   description
   descriptionHtml
   solution
   message
   state
   severity
   reportType
   resolvedOnDefaultBranch
   userNotesCount
   vulnerabilityPath
   detectedAt
   confirmedAt
   resolvedAt
   dismissedAt
   updatedAt
   hasRemediations
   hasSolutions
   stateComment
   falsePositive
   webUrl
   dismissalReason
   presentOnDefaultBranch
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 vulnerabilityScanners {
  edges {
   cursor
  }
  nodes {
   id
   name
   externalId
   vendor
   reportType
   reportTypeHumanized
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 vulnerabilitySeveritiesCount {
  info
  unknown
  low
  medium
  high
  critical
 }
 requirement {
  userPermissions {
   readRequirement
   updateRequirement
   destroyRequirement
   adminRequirement
   createRequirement
  }
  id
  iid
  workItemIid
  title
  titleHtml
  description
  descriptionHtml
  state
  lastTestReportState
  lastTestReportManuallyCreated
  project {
   id
   ciConfigPathOrDefault
   fullPath
   path
   organizationEditPath
   name
   nameWithNamespace
   description
   tagList
   topics
   httpUrlToRepo
   sshUrlToRepo
   webUrl
   forksCount
   starCount
   createdAt
   lastActivityAt
   archived
   visibility
   lfsEnabled
   mergeRequestsFfOnlyEnabled
   sharedRunnersEnabled
   serviceDeskEnabled
   serviceDeskAddress
   avatarUrl
   jobsEnabled
   isCatalogResource
   publicJobs
   openIssuesCount
   openMergeRequestsCount
   allowMergeOnSkippedPipeline
   autocloseReferencedIssues
   importStatus
   jiraImportStatus
   onlyAllowMergeIfAllDiscussionsAreResolved
   onlyAllowMergeIfPipelineSucceeds
   printingMergeRequestLinkEnabled
   removeSourceBranchAfterMerge
   requestAccessEnabled
   squashReadOnly
   suggestionCommitMessage
   containerRepositoriesCount
   mergeCommitTemplate
   squashCommitTemplate
   allowsMultipleMergeRequestAssignees
   allowsMultipleMergeRequestReviewers
   isForked
   protectableBranches
   issuesEnabled
   mergeRequestsEnabled
   wikiEnabled
   snippetsEnabled
   containerRegistryEnabled
   descriptionHtml
   securityDashboardPath
   repositorySizeExcess
   actualRepositorySizeLimit
   onlyAllowMergeIfAllStatusChecksPassed
   duoFeaturesEnabled
   trackingKey
   productAnalyticsInstrumentationKey
   mergeRequestsDisableCommittersApproval
   hasJiraVulnerabilityIssueCreationEnabled
   preventMergeWithoutJiraIssueEnabled
   markedForDeletionOn
   isAdjournedDeletionEnabled
   permanentDeletionDate
  }
  author {
   id
   bot
   username
   name
   state
   email
   publicEmail
   commitEmail
   avatarUrl
   webUrl
   webPath
   groupCount
   location
   gitpodEnabled
   preferencesGitpodPath
   profileEnableGitpodPath
   bio
   linkedin
   twitter
   discord
   organization
   jobTitle
   createdAt
   lastActivityOn
   pronouns
  }
  createdAt
  updatedAt
 }
 requirements {
  edges {
   cursor
  }
  nodes {
   id
   iid
   workItemIid
   title
   titleHtml
   description
   descriptionHtml
   state
   lastTestReportState
   lastTestReportManuallyCreated
   createdAt
   updatedAt
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 requirementStatesCount {
  archived
  opened
 }
 complianceFrameworks {
  edges {
   cursor
  }
  nodes {
   id
   name
   description
   color
   default
   pipelineConfigurationFullPath
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 securityDashboardPath
 dastProfiles {
  edges {
   cursor
  }
  nodes {
   id
   name
   description
   editPath
   tagList
  }
  count
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 dastSiteProfiles {
  edges {
   cursor
  }
  nodes {
   id
   profileName
   targetUrl
   targetType
   editPath
   excludedUrls
   requestHeaders
   validationStatus
   normalizedTargetUrl
   referencedInSecurityPolicies
   scanMethod
   scanFilePath
   validationStartedAt
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 dastScannerProfiles {
  edges {
   cursor
  }
  nodes {
   id
   profileName
   spiderTimeout
   targetTimeout
   scanType
   useAjaxSpider
   showDebugMessages
   editPath
   referencedInSecurityPolicies
   tagList
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 dastSiteValidations {
  edges {
   cursor
  }
  nodes {
   id
   status
   normalizedTargetUrl
   validationStartedAt
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 repositorySizeExcess
 actualRepositorySizeLimit
 codeCoverageSummary {
  averageCoverage
  coverageCount
  lastUpdatedOn
 }
 incidentManagementOncallSchedules {
  edges {
   cursor
  }
  nodes {
   iid
   name
   description
   timezone
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 incidentManagementEscalationPolicies {
  edges {
   cursor
  }
  nodes {
   id
   name
   description
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 apiFuzzingCiConfiguration {
  scanModes
  scanProfiles {
   name
   description
   yaml
  }
 }
 corpuses {
  edges {
   cursor
  }
  nodes {
   id
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 pushRules {
  rejectUnsignedCommits
 }
 pathLocks {
  edges {
   cursor
  }
  nodes {
   id
   path
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 scanExecutionPolicies {
  edges {
   cursor
  }
  nodes {
   description
   editPath
   enabled
   name
   updatedAt
   yaml
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 scanResultPolicies {
  edges {
   cursor
  }
  nodes {
   deprecatedProperties
   roleApprovers
   description
   editPath
   enabled
   name
   updatedAt
   yaml
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 approvalPolicies {
  edges {
   cursor
  }
  nodes {
   deprecatedProperties
   roleApprovers
   description
   editPath
   enabled
   name
   updatedAt
   yaml
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 securityPolicyProject {
  userPermissions {
   changeNamespace
   changeVisibilityLevel
   renameProject
   removeProject
   archiveProject
   removeForkProject
   removePages
   readProject
   createMergeRequestIn
   readWiki
   readProjectMember
   createIssue
   uploadFile
   readCycleAnalytics
   downloadCode
   downloadWikiCode
   forkProject
   readCommitStatus
   requestAccess
   createPipeline
   createPipelineSchedule
   createMergeRequestFrom
   createWiki
   pushCode
   createDeployment
   pushToDeleteProtectedBranch
   adminWiki
   adminProject
   updatePages
   adminRemoteMirror
   createLabel
   updateWiki
   destroyWiki
   createPages
   destroyPages
   readPagesContent
   adminOperations
   readMergeRequest
   readDesign
   createDesign
   destroyDesign
   readEnvironment
   viewEditPage
   createSnippet
   adminPathLocks
  }
  id
  ciConfigPathOrDefault
  fullPath
  path
  organizationEditPath
  incidentManagementTimelineEventTags {
   id
   name
  }
  name
  nameWithNamespace
  description
  tagList
  topics
  httpUrlToRepo
  sshUrlToRepo
  webUrl
  forksCount
  starCount
  createdAt
  lastActivityAt
  archived
  visibility
  lfsEnabled
  maxAccessLevel {
   integerValue
   stringValue
  }
  mergeRequestsFfOnlyEnabled
  sharedRunnersEnabled
  serviceDeskEnabled
  serviceDeskAddress
  avatarUrl
  jobsEnabled
  isCatalogResource
  publicJobs
  openIssuesCount
  openMergeRequestsCount
  allowMergeOnSkippedPipeline
  autocloseReferencedIssues
  importStatus
  jiraImportStatus
  onlyAllowMergeIfAllDiscussionsAreResolved
  onlyAllowMergeIfPipelineSucceeds
  printingMergeRequestLinkEnabled
  removeSourceBranchAfterMerge
  requestAccessEnabled
  squashReadOnly
  suggestionCommitMessage
  group {
   webUrl
   avatarUrl
   shareWithGroupLock
   projectCreationLevel
   subgroupCreationLevel
   requireTwoFactorAuthentication
   twoFactorGracePeriod
   autoDevopsEnabled
   emailsDisabled
   emailsEnabled
   mentionsDisabled
   containerRepositoriesCount
   dependencyProxyImageCount
   dependencyProxyBlobCount
   dependencyProxyTotalSize
   dependencyProxyTotalSizeInBytes
   dependencyProxyTotalSizeBytes
   dependencyProxyImagePrefix
   descendantGroupsCount
   groupMembersCount
   projectsCount
   lockMathRenderingLimitsEnabled
   mathRenderingLimitsEnabled
   epicsEnabled
   billableMembersCount
   allowStaleRunnerPruning
   enforceFreeUserCap
   duoFeaturesEnabled
   lockDuoFeaturesEnabled
   markedForDeletionOn
   id
   fullName
   fullPath
   name
   path
   crossProjectPipelineAvailable
   description
   lfsEnabled
   requestAccessEnabled
   visibility
   sharedRunnersSetting
   descriptionHtml
   additionalPurchasedStorageSize
   totalRepositorySizeExcess
   totalRepositorySize
   containsLockedProjects
   repositorySizeExcessProjectCount
   actualRepositorySizeLimit
   actualSizeLimit
   storageSizeLimit
   isTemporaryStorageIncreaseEnabled
   temporaryStorageIncreaseEndsOn
   productAnalyticsStoredEventsLimit
  }
  namespace {
   id
   fullName
   fullPath
   name
   path
   crossProjectPipelineAvailable
   description
   lfsEnabled
   requestAccessEnabled
   visibility
   sharedRunnersSetting
   descriptionHtml
   additionalPurchasedStorageSize
   totalRepositorySizeExcess
   totalRepositorySize
   containsLockedProjects
   repositorySizeExcessProjectCount
   actualRepositorySizeLimit
   actualSizeLimit
   storageSizeLimit
   isTemporaryStorageIncreaseEnabled
   temporaryStorageIncreaseEndsOn
   productAnalyticsStoredEventsLimit
  }
  statistics {
   commitCount
   buildArtifactsSize
   containerRegistrySize
   lfsObjectsSize
   packagesSize
   pipelineArtifactsSize
   repositorySize
   snippetsSize
   storageSize
   uploadsSize
   wikiSize
   costFactoredStorageSize
   costFactoredRepositorySize
   costFactoredBuildArtifactsSize
   costFactoredLfsObjectsSize
   costFactoredPackagesSize
   costFactoredSnippetsSize
   costFactoredWikiSize
  }
  statisticsDetailsPaths {
   repository
   wiki
   buildArtifacts
   packages
   snippets
   containerRegistry
  }
  repository {
   diskPath
   empty
   exists
   rootRef
   codeOwnersPath
  }
  mergeRequests {
   totalTimeToMerge
   count
  }
  issues {
   weight
   count
  }
  workItemStateCounts {
   all
   closed
   opened
  }
  issueStatusCounts {
   opened
   closed
   all
  }
  environment {
   name
   id
   state
   path
   slug
   externalUrl
   kubernetesNamespace
   fluxResourcePath
   createdAt
   updatedAt
   autoStopAt
   autoDeleteAt
   tier
   environmentType
   deploymentsDisplayCount
  }
  issue {
   description
   id
   iid
   state
   title
   reference
   confidential
   discussionLocked
   downvotes
   dueDate
   hidden
   mergeRequestsCount
   relativePosition
   upvotes
   userDiscussionsCount
   userNotesCount
   webPath
   webUrl
   emailsDisabled
   emailsEnabled
   humanTimeEstimate
   humanTotalTimeSpent
   subscribed
   timeEstimate
   totalTimeSpent
   closedAt
   createdAt
   updatedAt
   type
   severity
   moved
   createNoteEmail
   projectId
   escalationStatus
   externalAuthor
   titleHtml
   descriptionHtml
   hasEpic
   hasParent
   weight
   blocked
   blockingCount
   blockedByCount
   healthStatus
   statusPagePublishedIncident
   slaDueAt
  }
  packages {
   count
  }
  packagesCleanupPolicy {
   keepNDuplicatedPackageFiles
   nextRunAt
  }
  jobs {
   count
  }
  pipelines {
   count
  }
  pipelineSchedules {
   count
  }
  pipelineTriggers {
   count
  }
  pipelineCounts {
   running
   pending
   finished
   all
  }
  ciVariables {
   limit
  }
  ciCdSettings {
   inboundJobTokenScopeEnabled
   jobTokenScopeEnabled
   keepLatestArtifact
   mergePipelinesEnabled
   mergeTrainsSkipTrainAllowed
   mergeTrainsEnabled
  }
  grafanaIntegration {
   createdAt
   enabled
   grafanaUrl
   id
   updatedAt
  }
  sentryErrors {
   externalUrl
  }
  alertManagementAlertStatusCounts {
   triggered
   acknowledged
   resolved
   ignored
   open
   all
  }
  releases {
   count
  }
  containerExpirationPolicy {
   cadence
   createdAt
   enabled
   keepN
   nameRegex
   nameRegexKeep
   nextRunAt
   olderThan
   updatedAt
  }
  containerRepositoriesCount
  terraformStates {
   count
  }
  pipelineAnalytics {
   monthPipelinesLabels
   monthPipelinesSuccessful
   monthPipelinesTotals
   pipelineTimesLabels
   pipelineTimesValues
   weekPipelinesLabels
   weekPipelinesSuccessful
   weekPipelinesTotals
   yearPipelinesLabels
   yearPipelinesSuccessful
   yearPipelinesTotals
  }
  ciJobTokenScope {
   inboundAllowlistCount
   groupsAllowlistCount
  }
  timelogs {
   totalSpentTime
   count
  }
  clusterAgents {
   count
  }
  mergeCommitTemplate
  squashCommitTemplate
  labels {
   count
  }
  forkDetails {
   ahead
   behind
   isSyncing
   hasConflicts
  }
  languages {
   name
   share
   color
  }
  runners {
   count
  }
  dataTransfer {
   totalEgress
  }
  visibleForks {
   count
  }
  autocompleteUsers {
   id
   bot
   username
   name
   state
   email
   publicEmail
   commitEmail
   avatarUrl
   webUrl
   webPath
   groupCount
   location
   gitpodEnabled
   preferencesGitpodPath
   profileEnableGitpodPath
   bio
   linkedin
   twitter
   discord
   organization
   jobTitle
   createdAt
   lastActivityOn
   pronouns
  }
  detailedImportStatus {
   id
   status
   url
   lastError
   lastUpdateAt
   lastUpdateStartedAt
   lastSuccessfulUpdateAt
  }
  mlModels {
   count
  }
  allowsMultipleMergeRequestAssignees
  allowsMultipleMergeRequestReviewers
  isForked
  protectableBranches
  projectPlanLimits {
   ciPipelineSchedules
  }
  issuesEnabled
  mergeRequestsEnabled
  wikiEnabled
  snippetsEnabled
  containerRegistryEnabled
  issuesAccessLevel {
   integerValue
   stringValue
  }
  forkingAccessLevel {
   integerValue
   stringValue
  }
  mergeRequestsAccessLevel {
   integerValue
   stringValue
  }
  descriptionHtml
  securityScanners {
   enabled
   available
   pipelineRun
  }
  securityTrainingProviders {
   id
   name
   description
   url
   logoUrl
   isEnabled
   isPrimary
  }
  vulnerabilitySeveritiesCount {
   info
   unknown
   low
   medium
   high
   critical
  }
  requirement {
   id
   iid
   workItemIid
   title
   titleHtml
   description
   descriptionHtml
   state
   lastTestReportState
   lastTestReportManuallyCreated
   createdAt
   updatedAt
  }
  requirementStatesCount {
   archived
   opened
  }
  securityDashboardPath
  dastProfiles {
   count
  }
  repositorySizeExcess
  actualRepositorySizeLimit
  codeCoverageSummary {
   averageCoverage
   coverageCount
   lastUpdatedOn
  }
  apiFuzzingCiConfiguration {
   scanModes
  }
  pushRules {
   rejectUnsignedCommits
  }
  securityPolicyProject {
   id
   ciConfigPathOrDefault
   fullPath
   path
   organizationEditPath
   name
   nameWithNamespace
   description
   tagList
   topics
   httpUrlToRepo
   sshUrlToRepo
   webUrl
   forksCount
   starCount
   createdAt
   lastActivityAt
   archived
   visibility
   lfsEnabled
   mergeRequestsFfOnlyEnabled
   sharedRunnersEnabled
   serviceDeskEnabled
   serviceDeskAddress
   avatarUrl
   jobsEnabled
   isCatalogResource
   publicJobs
   openIssuesCount
   openMergeRequestsCount
   allowMergeOnSkippedPipeline
   autocloseReferencedIssues
   importStatus
   jiraImportStatus
   onlyAllowMergeIfAllDiscussionsAreResolved
   onlyAllowMergeIfPipelineSucceeds
   printingMergeRequestLinkEnabled
   removeSourceBranchAfterMerge
   requestAccessEnabled
   squashReadOnly
   suggestionCommitMessage
   containerRepositoriesCount
   mergeCommitTemplate
   squashCommitTemplate
   allowsMultipleMergeRequestAssignees
   allowsMultipleMergeRequestReviewers
   isForked
   protectableBranches
   issuesEnabled
   mergeRequestsEnabled
   wikiEnabled
   snippetsEnabled
   containerRegistryEnabled
   descriptionHtml
   securityDashboardPath
   repositorySizeExcess
   actualRepositorySizeLimit
   onlyAllowMergeIfAllStatusChecksPassed
   duoFeaturesEnabled
   trackingKey
   productAnalyticsInstrumentationKey
   mergeRequestsDisableCommittersApproval
   hasJiraVulnerabilityIssueCreationEnabled
   preventMergeWithoutJiraIssueEnabled
   markedForDeletionOn
   isAdjournedDeletionEnabled
   permanentDeletionDate
  }
  securityPolicyProjectLinkedProjects {
   count
  }
  onlyAllowMergeIfAllStatusChecksPassed
  duoFeaturesEnabled
  trackingKey
  productAnalyticsInstrumentationKey
  mergeRequestsDisableCommittersApproval
  hasJiraVulnerabilityIssueCreationEnabled
  preventMergeWithoutJiraIssueEnabled
  dependencyProxyPackagesSetting {
   enabled
   mavenExternalRegistryUrl
   mavenExternalRegistryUsername
  }
  ciSubscriptionsProjects {
   count
  }
  ciSubscribedProjects {
   count
  }
  googleCloudArtifactRegistryRepository {
   projectId
   repository
   artifactRegistryRepositoryUrl
  }
  markedForDeletionOn
  isAdjournedDeletionEnabled
  permanentDeletionDate
 }
 securityPolicyProjectLinkedProjects {
  edges {
   cursor
  }
  nodes {
   id
   ciConfigPathOrDefault
   fullPath
   path
   organizationEditPath
   name
   nameWithNamespace
   description
   tagList
   topics
   httpUrlToRepo
   sshUrlToRepo
   webUrl
   forksCount
   starCount
   createdAt
   lastActivityAt
   archived
   visibility
   lfsEnabled
   mergeRequestsFfOnlyEnabled
   sharedRunnersEnabled
   serviceDeskEnabled
   serviceDeskAddress
   avatarUrl
   jobsEnabled
   isCatalogResource
   publicJobs
   openIssuesCount
   openMergeRequestsCount
   allowMergeOnSkippedPipeline
   autocloseReferencedIssues
   importStatus
   jiraImportStatus
   onlyAllowMergeIfAllDiscussionsAreResolved
   onlyAllowMergeIfPipelineSucceeds
   printingMergeRequestLinkEnabled
   removeSourceBranchAfterMerge
   requestAccessEnabled
   squashReadOnly
   suggestionCommitMessage
   containerRepositoriesCount
   mergeCommitTemplate
   squashCommitTemplate
   allowsMultipleMergeRequestAssignees
   allowsMultipleMergeRequestReviewers
   isForked
   protectableBranches
   issuesEnabled
   mergeRequestsEnabled
   wikiEnabled
   snippetsEnabled
   containerRegistryEnabled
   descriptionHtml
   securityDashboardPath
   repositorySizeExcess
   actualRepositorySizeLimit
   onlyAllowMergeIfAllStatusChecksPassed
   duoFeaturesEnabled
   trackingKey
   productAnalyticsInstrumentationKey
   mergeRequestsDisableCommittersApproval
   hasJiraVulnerabilityIssueCreationEnabled
   preventMergeWithoutJiraIssueEnabled
   markedForDeletionOn
   isAdjournedDeletionEnabled
   permanentDeletionDate
  }
  count
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 securityPolicyProjectLinkedNamespaces {
  edges {
   cursor
  }
  nodes {
   id
   fullName
   fullPath
   name
   path
   crossProjectPipelineAvailable
   description
   lfsEnabled
   requestAccessEnabled
   visibility
   sharedRunnersSetting
   descriptionHtml
   additionalPurchasedStorageSize
   totalRepositorySizeExcess
   totalRepositorySize
   containsLockedProjects
   repositorySizeExcessProjectCount
   actualRepositorySizeLimit
   actualSizeLimit
   storageSizeLimit
   isTemporaryStorageIncreaseEnabled
   temporaryStorageIncreaseEndsOn
   productAnalyticsStoredEventsLimit
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 networkPolicies {
  edges {
   cursor
  }
  nodes {
   name
   kind
   namespace
   enabled
   fromAutoDevops
   yaml
   updatedAt
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 dora {
  metrics {
   date
   value
   deploymentFrequency
   leadTimeForChanges
   timeToRestoreService
   changeFailureRate
  }
 }
 vulnerabilityImages {
  edges {
   cursor
  }
  nodes {
   name
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 onlyAllowMergeIfAllStatusChecksPassed
 duoFeaturesEnabled
 customizableDashboards {
  edges {
   cursor
  }
  nodes {
   title
   category
   slug
   description
   userDefined
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 customizableDashboardVisualizations {
  edges {
   cursor
  }
  nodes {
   type
   options
   data
   slug
   errors
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 trackingKey
 productAnalyticsInstrumentationKey
 dependencies {
  edges {
   cursor
  }
  nodes {
   id
   name
   version
   packager
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 mergeRequestsDisableCommittersApproval
 hasJiraVulnerabilityIssueCreationEnabled
 preventMergeWithoutJiraIssueEnabled
 dependencyProxyPackagesSetting {
  enabled
  mavenExternalRegistryUrl
  mavenExternalRegistryUsername
 }
 memberRoles {
  edges {
   cursor
  }
  nodes {
   id
   name
   description
   membersCount
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 ciSubscriptionsProjects {
  edges {
   cursor
  }
  nodes {
   id
  }
  count
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 ciSubscribedProjects {
  edges {
   cursor
  }
  nodes {
   id
  }
  count
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 aiAgents {
  edges {
   cursor
  }
  nodes {
   createdAt
   id
   name
   routeId
  }
  pageInfo {
   hasNextPage
   hasPreviousPage
   startCursor
   endCursor
  }
 }
 googleCloudArtifactRegistryRepository {
  projectId
  repository
  artifactRegistryRepositoryUrl
 }
 valueStreamAnalytics {
  aggregationStatus {
   enabled
   estimatedNextUpdateAt
   lastUpdateAt
  }
 }
 markedForDeletionOn
 isAdjournedDeletionEnabled
 permanentDeletionDate
}
status
tagsCount
updatedAt
}
 }

Looking at the example and what it needs, rewrote the query to 31 lines based on what the example needs:

Simplified Query
.query($id: ContainerRepositoryID!, $n: ContainerRepositoryTagSort) {
  containerRepository(id: $id) {
    canDelete
    tags(sort: $n) {
      edges {
        node {
          userPermissions {
 destroyContainerRepositoryTag
}
canDelete
createdAt
digest
location
name
path
publishedAt
referrers {
 userPermissions {
  destroyContainerRepositoryTag
 }
 artifactType
 digest
}
revision
shortRevision
totalSize
        }
      }
    }
  }
}

NOTE: The big GraphQL query is still used in other examples in the same file and I have opened #454060 (closed) to also take a look at those and simplify if possible. This MR focuses on the lines that were included in the flaky tests report.

MR acceptance checklist

Please evaluate this MR against the MR acceptance checklist. It helps you analyze changes to reduce risks in quality, performance, reliability, security, and maintainability.

Related to #450714 (closed)

Edited by Adie (she/her)

Merge request reports