Skip to content

Simplify container registry query in tests to avoid timeouts

Adie (she/her) requested to merge 452471-simplify-query into master

In this MR, we simplify the query in the spec/requests/api/graphql/container_repository/container_repository_details_spec.rb file to avoid timeouts that cause our tests to be flaky in the pipeline. This flakiness has been reported in several issues such as:

The cause of the timeout is the very huge query that is a result of having all_graphql_fields_for with a max_depth: 4. This causes a huge query with a lot of unrelated fields. In spec/support/helpers/graphql_helpers.rb, we can see a note when using this:

def all_graphql_fields_for(class_name, max_depth: 3, excluded: [])
    # pulling _all_ fields can generate a _huge_ query (like complexity 180,000),
    # and significantly increase spec runtime. so limit the depth by default
    ...
end

The original query with max_depth: 4 has 3900+ lines:

Original `query`
{
  containerRepository(id: "gid://gitlab/ContainerRepository/12") {
    tags {
      edges {
        node {
          createdAt
          digest
          location
          name
          path
          publishedAt
          revision
          shortRevision
          totalSize
        }
        cursor
      }
      nodes {
        userPermissions {
          destroyContainerRepositoryTag
        }
        createdAt
        digest
        location
        name
        path
        publishedAt
        referrers {
          artifactType
          digest
        }
        revision
        shortRevision
        totalSize
      }
      pageInfo {
        hasNextPage
        hasPreviousPage
        startCursor
        endCursor
      }
    }
    lastPublishedAt
    userPermissions {
      destroyContainerRepository
    }
    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
      updatedAt
      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
        createdAt
        updatedAt
        customEmoji {
          count
        }
        shareWithGroupLock
        projectCreationLevel
        subgroupCreationLevel
        requireTwoFactorAuthentication
        twoFactorGracePeriod
        autoDevopsEnabled
        emailsDisabled
        emailsEnabled
        maxAccessLevel {
          integerValue
          stringValue
        }
        mentionsDisabled
        parent {
          webUrl
          avatarUrl
          createdAt
          updatedAt
          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
          isAdjournedDeletionEnabled
          permanentDeletionDate
          id
          fullName
          fullPath
          name
          path
          crossProjectPipelineAvailable
          description
          lfsEnabled
          requestAccessEnabled
          visibility
          sharedRunnersSetting
          achievementsPath
          descriptionHtml
          additionalPurchasedStorageSize
          totalRepositorySizeExcess
          totalRepositorySize
          containsLockedProjects
          repositorySizeExcessProjectCount
          actualRepositorySizeLimit
          actualSizeLimit
          storageSizeLimit
          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
        aiMetrics {
          codeContributorsCount
          codeSuggestionsContributorsCount
          codeSuggestionsUsageRate
        }
        savedReplies {
          count
        }
        duoFeaturesEnabled
        lockDuoFeaturesEnabled
        markedForDeletionOn
        isAdjournedDeletionEnabled
        permanentDeletionDate
        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
        }
        achievementsPath
        pagesDeployments {
          count
        }
        descriptionHtml
        additionalPurchasedStorageSize
        totalRepositorySizeExcess
        totalRepositorySize
        containsLockedProjects
        repositorySizeExcessProjectCount
        actualRepositorySizeLimit
        actualSizeLimit
        storageSizeLimit
        securityPolicyProject {
          id
          ciConfigPathOrDefault
          fullPath
          path
          organizationEditPath
          name
          nameWithNamespace
          description
          tagList
          topics
          httpUrlToRepo
          sshUrlToRepo
          webUrl
          forksCount
          starCount
          createdAt
          updatedAt
          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
        }
        achievementsPath
        pagesDeployments {
          count
        }
        descriptionHtml
        additionalPurchasedStorageSize
        totalRepositorySizeExcess
        totalRepositorySize
        containsLockedProjects
        repositorySizeExcessProjectCount
        actualRepositorySizeLimit
        actualSizeLimit
        storageSizeLimit
        securityPolicyProject {
          id
          ciConfigPathOrDefault
          fullPath
          path
          organizationEditPath
          name
          nameWithNamespace
          description
          tagList
          topics
          httpUrlToRepo
          sshUrlToRepo
          webUrl
          forksCount
          starCount
          createdAt
          updatedAt
          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
          webPath
          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
          upcoming
          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
          upcoming
          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
          createdAt
          name
          packageProtectionRuleExists
          packageType
          protectionRuleExists
          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
          updatedAt
          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
          imported
          importedFrom
          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
          minimumAccessLevelForPush
          minimumAccessLevelForDelete
        }
        pageInfo {
          hasNextPage
          hasPreviousPage
          startCursor
          endCursor
        }
      }
      containerRepositories {
        edges {
          cursor
        }
        nodes {
          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
          achievementsPath
          descriptionHtml
          additionalPurchasedStorageSize
          totalRepositorySizeExcess
          totalRepositorySize
          containsLockedProjects
          repositorySizeExcessProjectCount
          actualRepositorySizeLimit
          actualSizeLimit
          storageSizeLimit
          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
          contactedAt
          createdAt
          creationMethod
          description
          editAdminUrl
          ephemeralAuthenticationToken
          ephemeralRegisterUrl
          id
          jobCount
          jobExecutionStatus
          locked
          maintenanceNote
          maximumTimeout
          paused
          projectCount
          registerAdminUrl
          runUntagged
          runnerType
          shortSha
          status
          tagList
          tokenExpiresAt
          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
          updatedAt
          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
          achievementsPath
          descriptionHtml
          additionalPurchasedStorageSize
          totalRepositorySizeExcess
          totalRepositorySize
          containsLockedProjects
          repositorySizeExcessProjectCount
          actualRepositorySizeLimit
          actualSizeLimit
          storageSizeLimit
          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
          state
          severity
          reportType
          resolvedOnDefaultBranch
          userNotesCount
          vulnerabilityPath
          detectedAt
          confirmedAt
          resolvedAt
          dismissedAt
          updatedAt
          hasRemediations
          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
          updatedAt
          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
        }
      }
      pipelineExecutionPolicies {
        edges {
          cursor
        }
        nodes {
          description
          editPath
          enabled
          name
          updatedAt
          yaml
        }
        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
        updatedAt
        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
          createdAt
          updatedAt
          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
          isAdjournedDeletionEnabled
          permanentDeletionDate
          id
          fullName
          fullPath
          name
          path
          crossProjectPipelineAvailable
          description
          lfsEnabled
          requestAccessEnabled
          visibility
          sharedRunnersSetting
          achievementsPath
          descriptionHtml
          additionalPurchasedStorageSize
          totalRepositorySizeExcess
          totalRepositorySize
          containsLockedProjects
          repositorySizeExcessProjectCount
          actualRepositorySizeLimit
          actualSizeLimit
          storageSizeLimit
          productAnalyticsStoredEventsLimit
        }
        namespace {
          id
          fullName
          fullPath
          name
          path
          crossProjectPipelineAvailable
          description
          lfsEnabled
          requestAccessEnabled
          visibility
          sharedRunnersSetting
          achievementsPath
          descriptionHtml
          additionalPurchasedStorageSize
          totalRepositorySizeExcess
          totalRepositorySize
          containsLockedProjects
          repositorySizeExcessProjectCount
          actualRepositorySizeLimit
          actualSizeLimit
          storageSizeLimit
          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
          updatedAt
          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
        }
        aiMetrics {
          codeContributorsCount
          codeSuggestionsContributorsCount
          codeSuggestionsUsageRate
        }
        onlyAllowMergeIfAllStatusChecksPassed
        duoFeaturesEnabled
        trackingKey
        productAnalyticsInstrumentationKey
        mergeRequestsDisableCommittersApproval
        hasJiraVulnerabilityIssueCreationEnabled
        preventMergeWithoutJiraIssueEnabled
        dependencyProxyPackagesSetting {
          enabled
          mavenExternalRegistryUrl
          mavenExternalRegistryUsername
        }
        ciSubscriptionsProjects {
          count
        }
        ciSubscribedProjects {
          count
        }
        googleCloudArtifactRegistryRepository {
          projectId
          repository
          artifactRegistryRepositoryUrl
        }
        markedForDeletionOn
        isAdjournedDeletionEnabled
        permanentDeletionDate
        savedReplies {
          count
        }
      }
      securityPolicyProjectLinkedProjects {
        edges {
          cursor
        }
        nodes {
          id
          ciConfigPathOrDefault
          fullPath
          path
          organizationEditPath
          name
          nameWithNamespace
          description
          tagList
          topics
          httpUrlToRepo
          sshUrlToRepo
          webUrl
          forksCount
          starCount
          createdAt
          updatedAt
          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
          achievementsPath
          descriptionHtml
          additionalPurchasedStorageSize
          totalRepositorySizeExcess
          totalRepositorySize
          containsLockedProjects
          repositorySizeExcessProjectCount
          actualRepositorySizeLimit
          actualSizeLimit
          storageSizeLimit
          productAnalyticsStoredEventsLimit
        }
        pageInfo {
          hasNextPage
          hasPreviousPage
          startCursor
          endCursor
        }
      }
      dora {
        metrics {
          date
          deploymentFrequency
          leadTimeForChanges
          timeToRestoreService
          changeFailureRate
        }
      }
      aiMetrics {
        codeContributorsCount
        codeSuggestionsContributorsCount
        codeSuggestionsUsageRate
      }
      vulnerabilityImages {
        edges {
          cursor
        }
        nodes {
          name
        }
        pageInfo {
          hasNextPage
          hasPreviousPage
          startCursor
          endCursor
        }
      }
      onlyAllowMergeIfAllStatusChecksPassed
      duoFeaturesEnabled
      customizableDashboards {
        edges {
          cursor
        }
        nodes {
          title
          category
          slug
          description
          status
          userDefined
          errors
        }
        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
          editPath
        }
        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
      savedReplies {
        edges {
          cursor
        }
        nodes {
          id
          content
          name
        }
        count
        pageInfo {
          hasNextPage
          hasPreviousPage
          startCursor
          endCursor
        }
      }
    }
    status
    tagsCount
    updatedAt
  }
}

In this MR, we only query the fields that we are interested in for testing. Still using all_graphql_fields_for but with a max_depth of 1 and adding relations that we deem important.

Related to #452471 (closed)

Edited by Adie (she/her)

Merge request reports