diff options
Diffstat (limited to 'doc/api/graphql/reference/gitlab_schema.graphql')
-rw-r--r-- | doc/api/graphql/reference/gitlab_schema.graphql | 2128 |
1 files changed, 2098 insertions, 30 deletions
diff --git a/doc/api/graphql/reference/gitlab_schema.graphql b/doc/api/graphql/reference/gitlab_schema.graphql index 91f1413943c..c4bbe7d969d 100644 --- a/doc/api/graphql/reference/gitlab_schema.graphql +++ b/doc/api/graphql/reference/gitlab_schema.graphql @@ -1,4 +1,31 @@ """ +Represents the access level of a relationship between a User and object that it is related to +""" +type AccessLevel { + """ + Integer representation of access level + """ + integerValue: Int + + """ + String representation of access level + """ + stringValue: AccessLevelEnum +} + +""" +Access level to a resource +""" +enum AccessLevelEnum { + DEVELOPER + GUEST + MAINTAINER + NO_ACCESS + OWNER + REPORTER +} + +""" Autogenerated input type of AddAwardEmoji """ input AddAwardEmojiInput { @@ -141,7 +168,32 @@ type AdminSidekiqQueuesDeleteJobsPayload { """ Describes an alert from the project's Alert Management """ -type AlertManagementAlert { +type AlertManagementAlert implements Noteable { + """ + Assignees of the alert + """ + assignees( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): UserConnection + """ Timestamp the alert was created """ @@ -158,6 +210,31 @@ type AlertManagementAlert { details: JSON """ + All discussions on this noteable + """ + discussions( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): DiscussionConnection! + + """ Timestamp the alert ended """ endedAt: Time @@ -188,6 +265,31 @@ type AlertManagementAlert { monitoringTool: String """ + All notes on this noteable + """ + notes( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): NoteConnection! + + """ Service the alert came from """ service: String @@ -270,22 +372,22 @@ enum AlertManagementAlertSort { """ End time by ascending order """ - END_TIME_ASC + ENDED_AT_ASC """ End time by descending order """ - END_TIME_DESC + ENDED_AT_DESC """ Events count by ascending order """ - EVENTS_COUNT_ASC + EVENT_COUNT_ASC """ Events count by descending order """ - EVENTS_COUNT_DESC + EVENT_COUNT_DESC """ Severity by ascending order @@ -300,12 +402,12 @@ enum AlertManagementAlertSort { """ Start time by ascending order """ - START_TIME_ASC + STARTED_AT_ASC """ Start time by descending order """ - START_TIME_DESC + STARTED_AT_DESC """ Status by ascending order @@ -444,6 +546,61 @@ enum AlertManagementStatus { } """ +Autogenerated input type of AlertSetAssignees +""" +input AlertSetAssigneesInput { + """ + The usernames to assign to the alert. Replaces existing assignees by default. + """ + assigneeUsernames: [String!]! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The iid of the alert to mutate + """ + iid: String! + + """ + The operation to perform. Defaults to REPLACE. + """ + operationMode: MutationOperationMode + + """ + The project the alert to mutate is in + """ + projectPath: ID! +} + +""" +Autogenerated return type of AlertSetAssignees +""" +type AlertSetAssigneesPayload { + """ + The alert after mutation + """ + alert: AlertManagementAlert + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! + + """ + The issue created after mutation + """ + issue: Issue +} + +""" An emoji awarded by a user. """ type AwardEmoji { @@ -586,7 +743,7 @@ type Board { id: ID! """ - Lists of the project board + Lists of the board """ lists( """ @@ -935,6 +1092,266 @@ type Commit { webUrl: String! } +input CommitAction { + """ + The action to perform, create, delete, move, update, chmod + """ + action: CommitActionMode! + + """ + Content of the file + """ + content: String + + """ + Encoding of the file. Default is text + """ + encoding: CommitEncoding + + """ + Enables/disables the execute flag on the file + """ + executeFilemode: Boolean + + """ + Full path to the file + """ + filePath: String! + + """ + Last known file commit ID + """ + lastCommitId: String + + """ + Original full path to the file being moved + """ + previousPath: String +} + +""" +Mode of a commit action +""" +enum CommitActionMode { + """ + Chmod command + """ + CHMOD + + """ + Create command + """ + CREATE + + """ + Delete command + """ + DELETE + + """ + Move command + """ + MOVE + + """ + Update command + """ + UPDATE +} + +""" +Autogenerated input type of CommitCreate +""" +input CommitCreateInput { + """ + Array of action hashes to commit as a batch + """ + actions: [CommitAction!]! + + """ + Name of the branch + """ + branch: String! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Raw commit message + """ + message: String! + + """ + Project full path the branch is associated with + """ + projectPath: ID! +} + +""" +Autogenerated return type of CommitCreate +""" +type CommitCreatePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The commit after mutation + """ + commit: Commit + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! +} + +enum CommitEncoding { + """ + Base64 encoding + """ + BASE64 + + """ + Text encoding + """ + TEXT +} + +""" +A tag expiration policy designed to keep only the images that matter most +""" +type ContainerExpirationPolicy { + """ + This container expiration policy schedule + """ + cadence: ContainerExpirationPolicyCadenceEnum! + + """ + Timestamp of when the container expiration policy was created + """ + createdAt: Time! + + """ + Indicates whether this container expiration policy is enabled + """ + enabled: Boolean! + + """ + Number of tags to retain + """ + keepN: ContainerExpirationPolicyKeepEnum + + """ + Tags with names matching this regex pattern will expire + """ + nameRegex: String + + """ + Tags with names matching this regex pattern will be preserved + """ + nameRegexKeep: String + + """ + Next time that this container expiration policy will get executed + """ + nextRunAt: Time + + """ + Tags older that this will expire + """ + olderThan: ContainerExpirationPolicyOlderThanEnum + + """ + Timestamp of when the container expiration policy was updated + """ + updatedAt: Time! +} + +enum ContainerExpirationPolicyCadenceEnum { + """ + Every day + """ + EVERY_DAY + + """ + Every month + """ + EVERY_MONTH + + """ + Every three months + """ + EVERY_THREE_MONTHS + + """ + Every two weeks + """ + EVERY_TWO_WEEKS + + """ + Every week + """ + EVERY_WEEK +} + +enum ContainerExpirationPolicyKeepEnum { + """ + 50 tags per image name + """ + FIFTY_TAGS + + """ + 5 tags per image name + """ + FIVE_TAGS + + """ + 100 tags per image name + """ + ONE_HUNDRED_TAGS + + """ + 1 tag per image name + """ + ONE_TAG + + """ + 10 tags per image name + """ + TEN_TAGS + + """ + 25 tags per image name + """ + TWENTY_FIVE_TAGS +} + +enum ContainerExpirationPolicyOlderThanEnum { + """ + 14 days until tags are automatically removed + """ + FOURTEEN_DAYS + + """ + 90 days until tags are automatically removed + """ + NINETY_DAYS + + """ + 7 days until tags are automatically removed + """ + SEVEN_DAYS + + """ + 30 days until tags are automatically removed + """ + THIRTY_DAYS +} + """ Autogenerated input type of CreateAlertIssue """ @@ -1460,6 +1877,43 @@ type CreateSnippetPayload { snippet: Snippet } +enum DastScanTypeEnum { + """ + Passive DAST scan. This scan will not make active attacks against the target site. + """ + PASSIVE +} + +""" +Autogenerated input type of DeleteAnnotation +""" +input DeleteAnnotationInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The global id of the annotation to delete + """ + id: ID! +} + +""" +Autogenerated return type of DeleteAnnotation +""" +type DeleteAnnotationPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! +} + """ The response from the AdminSidekiqQueuesDeleteJobs mutation. """ @@ -2492,7 +2946,7 @@ type DiffRefs { startSha: String! } -type Discussion { +type Discussion implements ResolvableInterface { """ Timestamp of the discussion's creation """ @@ -2532,6 +2986,26 @@ type Discussion { ID used to reply to this discussion """ replyId: ID! + + """ + Indicates if the object can be resolved + """ + resolvable: Boolean! + + """ + Indicates if the object is resolved + """ + resolved: Boolean! + + """ + Timestamp of when the object was resolved + """ + resolvedAt: Time + + """ + User who resolved the object + """ + resolvedBy: User } """ @@ -2570,6 +3044,46 @@ type DiscussionEdge { } """ +Autogenerated input type of DiscussionToggleResolve +""" +input DiscussionToggleResolveInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The global id of the discussion + """ + id: ID! + + """ + Will resolve the discussion when true, and unresolve the discussion when false + """ + resolve: Boolean! +} + +""" +Autogenerated return type of DiscussionToggleResolve +""" +type DiscussionToggleResolvePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The discussion after mutation + """ + discussion: Discussion + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! +} + +""" Autogenerated input type of DismissVulnerability """ input DismissVulnerabilityInput { @@ -4328,6 +4842,46 @@ type Group { ): IterationConnection """ + A label available on this group + """ + label( + """ + Title of the label + """ + title: String! + ): Label + + """ + Labels available on this group + """ + labels( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + A search term to find labels with + """ + searchTerm: String + ): LabelConnection + + """ Indicates if Large File Storage (LFS) is enabled for namespace """ lfsEnabled: Boolean @@ -4610,6 +5164,81 @@ type Group { webUrl: String! } +""" +Represents a Group Member +""" +type GroupMember implements MemberInterface { + """ + GitLab::Access level + """ + accessLevel: AccessLevel + + """ + Date and time the membership was created + """ + createdAt: Time + + """ + User that authorized membership + """ + createdBy: User + + """ + Date and time the membership expires + """ + expiresAt: Time + + """ + Group that a User is a member of + """ + group: Group + + """ + Date and time the membership was last updated + """ + updatedAt: Time + + """ + Permissions for the current user on the resource + """ + userPermissions: GroupPermissions! +} + +""" +The connection type for GroupMember. +""" +type GroupMemberConnection { + """ + A list of edges. + """ + edges: [GroupMemberEdge] + + """ + A list of nodes. + """ + nodes: [GroupMember] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! +} + +""" +An edge in a connection. +""" +type GroupMemberEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: GroupMember +} + type GroupPermissions { """ Indicates the user can perform `read_group` on this resource @@ -5421,6 +6050,16 @@ type JiraImport { createdAt: Time """ + Count of issues that failed to import + """ + failedToImportCount: Int! + + """ + Count of issues that were successfully imported + """ + importedIssuesCount: Int! + + """ Project key for the imported Jira project """ jiraProjectKey: String! @@ -5434,6 +6073,11 @@ type JiraImport { User that started the Jira import """ scheduledBy: User + + """ + Total count of issues that were attempted to import + """ + totalIssueCount: Int! } """ @@ -5516,6 +6160,98 @@ type JiraImportStartPayload { jiraImport: JiraImport } +""" +Autogenerated input type of JiraImportUsers +""" +input JiraImportUsersInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The project to import the Jira users into + """ + projectPath: ID! + + """ + The index of the record the import should started at, default 0 (50 records returned) + """ + startAt: Int +} + +""" +Autogenerated return type of JiraImportUsers +""" +type JiraImportUsersPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! + + """ + Users returned from Jira, matched by email and name if possible. + """ + jiraUsers: [JiraUser!] +} + +type JiraProject { + """ + Key of the Jira project + """ + key: String! + + """ + Name of the Jira project + """ + name: String + + """ + ID of the Jira project + """ + projectId: Int! +} + +""" +The connection type for JiraProject. +""" +type JiraProjectConnection { + """ + A list of edges. + """ + edges: [JiraProjectEdge] + + """ + A list of nodes. + """ + nodes: [JiraProject] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! +} + +""" +An edge in a connection. +""" +type JiraProjectEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: JiraProject +} + type JiraService implements Service { """ Indicates if the service is active @@ -5523,11 +6259,63 @@ type JiraService implements Service { active: Boolean """ + List of Jira projects fetched through Jira REST API + """ + projects( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Project name or key + """ + name: String + ): JiraProjectConnection + + """ Class name of the service """ type: String } +type JiraUser { + """ + Id of the matched GitLab user + """ + gitlabId: Int + + """ + Account id of the Jira user + """ + jiraAccountId: String! + + """ + Display name of the Jira user + """ + jiraDisplayName: String! + + """ + Email of the Jira user, returned only for users with public emails + """ + jiraEmail: String +} + type Label { """ Background color of the label @@ -5639,6 +6427,33 @@ type MarkAsSpamSnippetPayload { snippet: Snippet } +interface MemberInterface { + """ + GitLab::Access level + """ + accessLevel: AccessLevel + + """ + Date and time the membership was created + """ + createdAt: Time + + """ + User that authorized membership + """ + createdBy: User + + """ + Date and time the membership expires + """ + expiresAt: Time + + """ + Date and time the membership was last updated + """ + updatedAt: Time +} + type MergeRequest implements Noteable { """ Indicates if members of the target project can push to the fork @@ -5671,6 +6486,11 @@ type MergeRequest implements Noteable { ): UserConnection """ + User who created this merge request + """ + author: User + + """ Timestamp of when the merge request was created """ createdAt: Time! @@ -5821,6 +6641,11 @@ type MergeRequest implements Noteable { mergeableDiscussionsState: Boolean """ + Timestamp of when the merge request was merged, null if not merged + """ + mergedAt: Time + + """ The milestone of the merge request """ milestone: Milestone @@ -5991,6 +6816,11 @@ type MergeRequest implements Noteable { targetBranch: String! """ + Indicates if the target branch of the merge request exists + """ + targetBranchExists: Boolean! + + """ Target project of the merge request """ targetProject: Project! @@ -6077,6 +6907,61 @@ type MergeRequestConnection { } """ +Autogenerated input type of MergeRequestCreate +""" +input MergeRequestCreateInput { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Description of the merge request (Markdown rendered as HTML for caching) + """ + description: String + + """ + Project full path the merge request is associated with + """ + projectPath: ID! + + """ + Source branch of the merge request + """ + sourceBranch: String! + + """ + Target branch of the merge request + """ + targetBranch: String! + + """ + Title of the merge request + """ + title: String! +} + +""" +Autogenerated return type of MergeRequestCreate +""" +type MergeRequestCreatePayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! + + """ + The merge request after mutation + """ + mergeRequest: MergeRequest +} + +""" An edge in a connection. """ type MergeRequestEdge { @@ -6478,6 +7363,11 @@ type MetricsDashboard { Path to a file with the dashboard definition """ path: String + + """ + Dashboard schema validation warnings + """ + schemaValidationWarnings: [String!] } type MetricsDashboardAnnotation { @@ -6562,11 +7452,21 @@ type Milestone { dueDate: Time """ + Indicates if milestone is at group level + """ + groupMilestone: Boolean! + + """ ID of the milestone """ id: ID! """ + Indicates if milestone is at project level + """ + projectMilestone: Boolean! + + """ Timestamp of the milestone start date """ startDate: Time @@ -6577,6 +7477,11 @@ type Milestone { state: MilestoneStateEnum! """ + Indicates if milestone is at subgroup level + """ + subgroupMilestone: Boolean! + + """ Title of the milestone """ title: String! @@ -6651,7 +7556,9 @@ type Mutation { addAwardEmoji(input: AddAwardEmojiInput!): AddAwardEmojiPayload addProjectToSecurityDashboard(input: AddProjectToSecurityDashboardInput!): AddProjectToSecurityDashboardPayload adminSidekiqQueuesDeleteJobs(input: AdminSidekiqQueuesDeleteJobsInput!): AdminSidekiqQueuesDeleteJobsPayload + alertSetAssignees(input: AlertSetAssigneesInput!): AlertSetAssigneesPayload boardListUpdateLimitMetrics(input: BoardListUpdateLimitMetricsInput!): BoardListUpdateLimitMetricsPayload + commitCreate(input: CommitCreateInput!): CommitCreatePayload createAlertIssue(input: CreateAlertIssueInput!): CreateAlertIssuePayload createAnnotation(input: CreateAnnotationInput!): CreateAnnotationPayload createBranch(input: CreateBranchInput!): CreateBranchPayload @@ -6662,10 +7569,16 @@ type Mutation { createNote(input: CreateNoteInput!): CreateNotePayload createRequirement(input: CreateRequirementInput!): CreateRequirementPayload createSnippet(input: CreateSnippetInput!): CreateSnippetPayload + deleteAnnotation(input: DeleteAnnotationInput!): DeleteAnnotationPayload designManagementDelete(input: DesignManagementDeleteInput!): DesignManagementDeletePayload designManagementUpload(input: DesignManagementUploadInput!): DesignManagementUploadPayload destroyNote(input: DestroyNoteInput!): DestroyNotePayload destroySnippet(input: DestroySnippetInput!): DestroySnippetPayload + + """ + Toggles the resolved state of a discussion + """ + discussionToggleResolve(input: DiscussionToggleResolveInput!): DiscussionToggleResolvePayload dismissVulnerability(input: DismissVulnerabilityInput!): DismissVulnerabilityPayload epicAddIssue(input: EpicAddIssueInput!): EpicAddIssuePayload epicSetSubscription(input: EpicSetSubscriptionInput!): EpicSetSubscriptionPayload @@ -6675,7 +7588,9 @@ type Mutation { issueSetIteration(input: IssueSetIterationInput!): IssueSetIterationPayload issueSetWeight(input: IssueSetWeightInput!): IssueSetWeightPayload jiraImportStart(input: JiraImportStartInput!): JiraImportStartPayload + jiraImportUsers(input: JiraImportUsersInput!): JiraImportUsersPayload markAsSpamSnippet(input: MarkAsSpamSnippetInput!): MarkAsSpamSnippetPayload + mergeRequestCreate(input: MergeRequestCreateInput!): MergeRequestCreatePayload mergeRequestSetAssignees(input: MergeRequestSetAssigneesInput!): MergeRequestSetAssigneesPayload mergeRequestSetLabels(input: MergeRequestSetLabelsInput!): MergeRequestSetLabelsPayload mergeRequestSetLocked(input: MergeRequestSetLockedInput!): MergeRequestSetLockedPayload @@ -6684,12 +7599,14 @@ type Mutation { mergeRequestSetWip(input: MergeRequestSetWipInput!): MergeRequestSetWipPayload removeAwardEmoji(input: RemoveAwardEmojiInput!): RemoveAwardEmojiPayload removeProjectFromSecurityDashboard(input: RemoveProjectFromSecurityDashboardInput!): RemoveProjectFromSecurityDashboardPayload + runDastScan(input: RunDASTScanInput!): RunDASTScanPayload todoMarkDone(input: TodoMarkDoneInput!): TodoMarkDonePayload todoRestore(input: TodoRestoreInput!): TodoRestorePayload todoRestoreMany(input: TodoRestoreManyInput!): TodoRestoreManyPayload todosMarkAllDone(input: TodosMarkAllDoneInput!): TodosMarkAllDonePayload toggleAwardEmoji(input: ToggleAwardEmojiInput!): ToggleAwardEmojiPayload updateAlertStatus(input: UpdateAlertStatusInput!): UpdateAlertStatusPayload + updateContainerExpirationPolicy(input: UpdateContainerExpirationPolicyInput!): UpdateContainerExpirationPolicyPayload updateEpic(input: UpdateEpicInput!): UpdateEpicPayload """ @@ -6856,7 +7773,7 @@ type NamespaceEdge { node: Namespace } -type Note { +type Note implements ResolvableInterface { """ User who wrote this note """ @@ -6903,17 +7820,22 @@ type Note { project: Project """ - Indicates if this note can be resolved. That is, if it is a resolvable discussion or simply a standalone note + Indicates if the object can be resolved """ resolvable: Boolean! """ - Timestamp of the note's resolution + Indicates if the object is resolved + """ + resolved: Boolean! + + """ + Timestamp of when the object was resolved """ resolvedAt: Time """ - User that resolved the discussion + User who resolved the object """ resolvedBy: User @@ -7301,6 +8223,11 @@ type Pipeline { iid: String! """ + Vulnerability and scanned resource counts for each security scanner of the pipeline + """ + securityReportSummary: SecurityReportSummary + + """ SHA of the pipeline's commit """ sha: String! @@ -7422,7 +8349,12 @@ type Project { """ Counts of alerts by status for the project """ - alertManagementAlertStatusCounts: AlertManagementAlertStatusCountsType + alertManagementAlertStatusCounts( + """ + Search criteria for filtering alerts. This will search on title, description, service, monitoring_tool. + """ + search: String + ): AlertManagementAlertStatusCountsType """ Alert Management alerts of the project @@ -7470,6 +8402,12 @@ type Project { ): AlertManagementAlertConnection """ + If `only_allow_merge_if_pipeline_succeeds` is true, indicates if merge + requests of the project can also be merged with skipped jobs + """ + allowMergeOnSkippedPipeline: Boolean + + """ Indicates the archived status of the project """ archived: Boolean @@ -7525,6 +8463,11 @@ type Project { ): BoardConnection """ + The container expiration policy of the project + """ + containerExpirationPolicy: ContainerExpirationPolicy + + """ Indicates if the project stores Docker container images in a container registry """ containerRegistryEnabled: Boolean @@ -7840,6 +8783,46 @@ type Project { jobsEnabled: Boolean """ + A label available on this project + """ + label( + """ + Title of the label + """ + title: String! + ): Label + + """ + Labels available on this project + """ + labels( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + A search term to find labels with + """ + searchTerm: String + ): LabelConnection + + """ Timestamp of the project last activity """ lastActivityAt: Time @@ -7856,12 +8839,7 @@ type Project { """ IID of the merge request, for example `1` """ - iid: String - - """ - Array of IIDs of merge requests, for example `[1, 2]` - """ - iids: [String!] + iid: String! ): MergeRequest """ @@ -7884,19 +8862,34 @@ type Project { first: Int """ - IID of the merge request, for example `1` + Array of IIDs of merge requests, for example `[1, 2]` """ - iid: String + iids: [String!] """ - Array of IIDs of merge requests, for example `[1, 2]` + Array of label names. All resolved merge requests will have all of these labels. """ - iids: [String!] + labels: [String!] """ Returns the last _n_ elements from the list. """ last: Int + + """ + Array of source branch names. All resolved merge requests will have one of these branches as their source. + """ + sourceBranches: [String!] + + """ + A merge request state. If provided, all resolved merge requests will have this state. + """ + state: MergeRequestState + + """ + Array of target branch names. All resolved merge requests will have one of these branches as their target. + """ + targetBranches: [String!] ): MergeRequestConnection """ @@ -7972,6 +8965,16 @@ type Project { path: String! """ + Build pipeline of the project + """ + pipeline( + """ + IID of the Pipeline, e.g., "1" + """ + iid: ID! + ): Pipeline + + """ Build pipelines of the project """ pipelines( @@ -8018,6 +9021,36 @@ type Project { printingMergeRequestLinkEnabled: Boolean """ + Members of the project + """ + projectMembers( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Search query + """ + search: String + ): ProjectMemberConnection + + """ Indicates if there is public access to pipelines and job details of the project, including output logs and artifacts """ publicJobs: Boolean @@ -8077,6 +9110,11 @@ type Project { """ requirement( """ + Filter requirements by author username + """ + authorUsername: [String!] + + """ IID of the requirement, e.g., "1" """ iid: ID @@ -8087,6 +9125,11 @@ type Project { iids: [ID!] """ + Filter requirements by title search + """ + search: String + + """ List requirements by sort order """ sort: Sort @@ -8112,6 +9155,11 @@ type Project { after: String """ + Filter requirements by author username + """ + authorUsername: [String!] + + """ Returns the elements in the list that come before the specified cursor. """ before: String @@ -8137,6 +9185,11 @@ type Project { last: Int """ + Filter requirements by title search + """ + search: String + + """ List requirements by sort order """ sort: Sort @@ -8383,6 +9436,91 @@ type ProjectEdge { node: Project } +""" +Represents a Project Member +""" +type ProjectMember implements MemberInterface { + """ + GitLab::Access level + """ + accessLevel: AccessLevel + + """ + Date and time the membership was created + """ + createdAt: Time + + """ + User that authorized membership + """ + createdBy: User + + """ + Date and time the membership expires + """ + expiresAt: Time + + """ + ID of the member + """ + id: ID! + + """ + Project that User is a member of + """ + project: Project + + """ + Date and time the membership was last updated + """ + updatedAt: Time + + """ + User that is associated with the member object + """ + user: User! + + """ + Permissions for the current user on the resource + """ + userPermissions: ProjectPermissions! +} + +""" +The connection type for ProjectMember. +""" +type ProjectMemberConnection { + """ + A list of edges. + """ + edges: [ProjectMemberEdge] + + """ + A list of nodes. + """ + nodes: [ProjectMember] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! +} + +""" +An edge in a connection. +""" +type ProjectMemberEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ProjectMember +} + type ProjectPermissions { """ Indicates the user can perform `admin_operations` on this resource @@ -8794,6 +9932,61 @@ type Query { ): SnippetConnection """ + Find a user on this instance + """ + user( + """ + ID of the User + """ + id: ID + + """ + Username of the User + """ + username: String + ): User + + """ + Find users + """ + users( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + List of user Global IDs + """ + ids: [ID!] + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Sort users by this criteria + """ + sort: Sort = created_desc + + """ + List of usernames + """ + usernames: [String!] + ): UserConnection + + """ Vulnerabilities reported on projects on the current user's instance security dashboard """ vulnerabilities( @@ -8901,6 +10094,11 @@ enum RegistryState { type Release { """ + Assets of the release + """ + assets: ReleaseAssets + + """ User that created the release """ author: User @@ -8926,6 +10124,31 @@ type Release { descriptionHtml: String """ + Evidence for the release + """ + evidences( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ReleaseEvidenceConnection + + """ Milestones associated to the release """ milestones( @@ -8971,6 +10194,63 @@ type Release { tagPath: String } +type ReleaseAssets { + """ + Number of assets of the release + """ + assetsCount: Int + + """ + Asset links of the release + """ + links( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ReleaseLinkConnection + + """ + Sources of the release + """ + sources( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ReleaseSourceConnection +} + """ The connection type for Release. """ @@ -9007,6 +10287,200 @@ type ReleaseEdge { } """ +Evidence for a release +""" +type ReleaseEvidence { + """ + Timestamp when the evidence was collected + """ + collectedAt: Time + + """ + URL from where the evidence can be downloaded + """ + filepath: String + + """ + ID of the evidence + """ + id: ID! + + """ + SHA1 ID of the evidence hash + """ + sha: String +} + +""" +The connection type for ReleaseEvidence. +""" +type ReleaseEvidenceConnection { + """ + A list of edges. + """ + edges: [ReleaseEvidenceEdge] + + """ + A list of nodes. + """ + nodes: [ReleaseEvidence] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! +} + +""" +An edge in a connection. +""" +type ReleaseEvidenceEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ReleaseEvidence +} + +type ReleaseLink { + """ + Indicates the link points to an external resource + """ + external: Boolean + + """ + ID of the link + """ + id: ID! + + """ + Type of the link: `other`, `runbook`, `image`, `package`; defaults to `other` + """ + linkType: ReleaseLinkType + + """ + Name of the link + """ + name: String + + """ + URL of the link + """ + url: String +} + +""" +The connection type for ReleaseLink. +""" +type ReleaseLinkConnection { + """ + A list of edges. + """ + edges: [ReleaseLinkEdge] + + """ + A list of nodes. + """ + nodes: [ReleaseLink] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! +} + +""" +An edge in a connection. +""" +type ReleaseLinkEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ReleaseLink +} + +""" +Type of the link: `other`, `runbook`, `image`, `package`; defaults to `other` +""" +enum ReleaseLinkType { + """ + Image link type + """ + IMAGE + + """ + Other link type + """ + OTHER + + """ + Package link type + """ + PACKAGE + + """ + Runbook link type + """ + RUNBOOK +} + +type ReleaseSource { + """ + Format of the source + """ + format: String + + """ + Download URL of the source + """ + url: String +} + +""" +The connection type for ReleaseSource. +""" +type ReleaseSourceConnection { + """ + A list of edges. + """ + edges: [ReleaseSourceEdge] + + """ + A list of nodes. + """ + nodes: [ReleaseSource] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! +} + +""" +An edge in a connection. +""" +type ReleaseSourceEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: ReleaseSource +} + +""" Autogenerated input type of RemoveAwardEmoji """ input RemoveAwardEmojiInput { @@ -9114,7 +10588,7 @@ type Repository { } """ -Represents a requirement. +Represents a requirement """ type Requirement { """ @@ -9148,6 +10622,36 @@ type Requirement { state: RequirementState! """ + Test reports of the requirement + """ + testReports( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + List test reports by sort order + """ + sort: Sort + ): TestReportConnection + + """ Title of the requirement """ title: String @@ -9251,6 +10755,28 @@ type RequirementStatesCount { opened: Int } +interface ResolvableInterface { + """ + Indicates if the object can be resolved + """ + resolvable: Boolean! + + """ + Indicates if the object is resolved + """ + resolved: Boolean! + + """ + Timestamp of when the object was resolved + """ + resolvedAt: Time + + """ + User who resolved the object + """ + resolvedBy: User +} + type RootStorageStatistics { """ The CI artifacts size in bytes @@ -9284,6 +10810,101 @@ type RootStorageStatistics { } """ +Autogenerated input type of RunDASTScan +""" +input RunDASTScanInput { + """ + The branch to be associated with the scan. + """ + branch: String! + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The project the DAST scan belongs to. + """ + projectPath: ID! + + """ + The type of scan to be run. + """ + scanType: DastScanTypeEnum! + + """ + The URL of the target to be scanned. + """ + targetUrl: String! +} + +""" +Autogenerated return type of RunDASTScan +""" +type RunDASTScanPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! + + """ + URL of the pipeline that was created. + """ + pipelineUrl: String +} + +""" +Represents summary of a security report +""" +type SecurityReportSummary { + """ + Aggregated counts for the container_scanning scan + """ + containerScanning: SecurityReportSummarySection + + """ + Aggregated counts for the dast scan + """ + dast: SecurityReportSummarySection + + """ + Aggregated counts for the dependency_scanning scan + """ + dependencyScanning: SecurityReportSummarySection + + """ + Aggregated counts for the sast scan + """ + sast: SecurityReportSummarySection + + """ + Aggregated counts for the secret_detection scan + """ + secretDetection: SecurityReportSummarySection +} + +""" +Represents a section of a summary of a security report +""" +type SecurityReportSummarySection { + """ + Total number of scanned resources + """ + scannedResourcesCount: Int + + """ + Total number of vulnerabilities + """ + vulnerabilitiesCount: Int +} + +""" A Sentry error. """ type SentryDetailedError { @@ -9816,7 +11437,7 @@ type Snippet implements Noteable { """ The owner of the snippet """ - author: User! + author: User """ Snippet blob @@ -9824,6 +11445,11 @@ type Snippet implements Noteable { blob: SnippetBlob! """ + Snippet blobs + """ + blobs: [SnippetBlob!]! + + """ Timestamp this snippet was created """ createdAt: Time! @@ -10234,6 +11860,73 @@ type TaskCompletionStatus { } """ +Represents a requirement test report. +""" +type TestReport { + """ + Author of the test report + """ + author: User + + """ + Timestamp of when the test report was created + """ + createdAt: Time! + + """ + ID of the test report + """ + id: ID! + + """ + State of the test report + """ + state: TestReportState! +} + +""" +The connection type for TestReport. +""" +type TestReportConnection { + """ + A list of edges. + """ + edges: [TestReportEdge] + + """ + A list of nodes. + """ + nodes: [TestReport] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! +} + +""" +An edge in a connection. +""" +type TestReportEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: TestReport +} + +""" +State of a test report +""" +enum TestReportState { + PASSED +} + +""" Time represented in ISO 8601 """ scalar Time @@ -10819,6 +12512,61 @@ type UpdateAlertStatusPayload { issue: Issue } +""" +Autogenerated input type of UpdateContainerExpirationPolicy +""" +input UpdateContainerExpirationPolicyInput { + """ + This container expiration policy schedule + """ + cadence: ContainerExpirationPolicyCadenceEnum + + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + Indicates whether this container expiration policy is enabled + """ + enabled: Boolean + + """ + Number of tags to retain + """ + keepN: ContainerExpirationPolicyKeepEnum + + """ + Tags older that this will expire + """ + olderThan: ContainerExpirationPolicyOlderThanEnum + + """ + The project path where the container expiration policy is located + """ + projectPath: ID! +} + +""" +Autogenerated return type of UpdateContainerExpirationPolicy +""" +type UpdateContainerExpirationPolicyPayload { + """ + A unique identifier for the client performing the mutation. + """ + clientMutationId: String + + """ + The container expiration policy after mutation + """ + containerExpirationPolicy: ContainerExpirationPolicy + + """ + Errors encountered during execution of the mutation. + """ + errors: [String!]! +} + input UpdateDiffImagePositionInput { """ Total height of the image @@ -11195,11 +12943,156 @@ scalar Upload type User { """ + Merge Requests assigned to the user + """ + assignedMergeRequests( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Array of IIDs of merge requests, for example `[1, 2]` + """ + iids: [String!] + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + The global ID of the project the authored merge requests should be in. Incompatible with projectPath. + """ + projectId: ID + + """ + The full-path of the project the authored merge requests should be in. Incompatible with projectId. + """ + projectPath: String + + """ + Array of source branch names. All resolved merge requests will have one of these branches as their source. + """ + sourceBranches: [String!] + + """ + A merge request state. If provided, all resolved merge requests will have this state. + """ + state: MergeRequestState + + """ + Array of target branch names. All resolved merge requests will have one of these branches as their target. + """ + targetBranches: [String!] + ): MergeRequestConnection + + """ + Merge Requests authored by the user + """ + authoredMergeRequests( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Array of IIDs of merge requests, for example `[1, 2]` + """ + iids: [String!] + + """ + Array of label names. All resolved merge requests will have all of these labels. + """ + labels: [String!] + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + The global ID of the project the authored merge requests should be in. Incompatible with projectPath. + """ + projectId: ID + + """ + The full-path of the project the authored merge requests should be in. Incompatible with projectId. + """ + projectPath: String + + """ + Array of source branch names. All resolved merge requests will have one of these branches as their source. + """ + sourceBranches: [String!] + + """ + A merge request state. If provided, all resolved merge requests will have this state. + """ + state: MergeRequestState + + """ + Array of target branch names. All resolved merge requests will have one of these branches as their target. + """ + targetBranches: [String!] + ): MergeRequestConnection + + """ URL of the user's avatar """ avatarUrl: String """ + Group memberships of the user + """ + groupMemberships( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): GroupMemberConnection + + """ ID of the user """ id: ID! @@ -11210,6 +13103,31 @@ type User { name: String! """ + Project memberships of the user + """ + projectMemberships( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + ): ProjectMemberConnection + + """ Snippets authored by the user """ snippets( @@ -11250,9 +13168,9 @@ type User { ): SnippetConnection """ - State of the issue + State of the user """ - state: String! + state: UserState! """ Todos of the user @@ -11367,6 +13285,26 @@ type UserPermissions { createSnippet: Boolean! } +""" +Possible states of a user +""" +enum UserState { + """ + The user is active and is able to use the system + """ + active + + """ + The user has been blocked and is prevented from using the system + """ + blocked + + """ + The user is no longer active and is unable to use the system + """ + deactivated +} + enum VisibilityLevelsEnum { internal private @@ -11449,6 +13387,36 @@ type Vulnerability { id: ID! """ + List of issue links related to the vulnerability + """ + issueLinks( + """ + Returns the elements in the list that come after the specified cursor. + """ + after: String + + """ + Returns the elements in the list that come before the specified cursor. + """ + before: String + + """ + Returns the first _n_ elements from the list. + """ + first: Int + + """ + Returns the last _n_ elements from the list. + """ + last: Int + + """ + Filter issue links by link type + """ + linkType: VulnerabilityIssueLinkType + ): VulnerabilityIssueLinkConnection! + + """ Location metadata for the vulnerability. Its fields depend on the type of security scan that found the vulnerability """ location: VulnerabilityLocation @@ -11459,7 +13427,8 @@ type Vulnerability { project: Project """ - Type of the security report that found the vulnerability (SAST, DEPENDENCY_SCANNING, CONTAINER_SCANNING, DAST) + Type of the security report that found the vulnerability (SAST, + DEPENDENCY_SCANNING, CONTAINER_SCANNING, DAST, SECRET_DETECTION) """ reportType: VulnerabilityReportType @@ -11479,6 +13448,11 @@ type Vulnerability { title: String """ + Number of user notes attached to the vulnerability + """ + userNotesCount: Int! + + """ Permissions for the current user on the resource """ userPermissions: VulnerabilityPermissions! @@ -11525,9 +13499,72 @@ type VulnerabilityEdge { } """ +Represents an issue link of a vulnerability. +""" +type VulnerabilityIssueLink { + """ + GraphQL ID of the vulnerability + """ + id: ID! + + """ + The issue attached to issue link + """ + issue: Issue! + + """ + Type of the issue link + """ + linkType: VulnerabilityIssueLinkType! +} + +""" +The connection type for VulnerabilityIssueLink. +""" +type VulnerabilityIssueLinkConnection { + """ + A list of edges. + """ + edges: [VulnerabilityIssueLinkEdge] + + """ + A list of nodes. + """ + nodes: [VulnerabilityIssueLink] + + """ + Information to aid in pagination. + """ + pageInfo: PageInfo! +} + +""" +An edge in a connection. +""" +type VulnerabilityIssueLinkEdge { + """ + A cursor for use in pagination. + """ + cursor: String! + + """ + The item at the end of the edge. + """ + node: VulnerabilityIssueLink +} + +""" +The type of the issue link related to a vulnerability. +""" +enum VulnerabilityIssueLinkType { + CREATED + RELATED +} + +""" Represents a vulnerability location. The fields with data will depend on the vulnerability report type """ -union VulnerabilityLocation = VulnerabilityLocationContainerScanning | VulnerabilityLocationDast | VulnerabilityLocationDependencyScanning | VulnerabilityLocationSast +union VulnerabilityLocation = VulnerabilityLocationContainerScanning | VulnerabilityLocationDast | VulnerabilityLocationDependencyScanning | VulnerabilityLocationSast | VulnerabilityLocationSecretDetection """ Represents the location of a vulnerability found by a container security scan @@ -11620,6 +13657,36 @@ type VulnerabilityLocationSast { } """ +Represents the location of a vulnerability found by a secret detection scan +""" +type VulnerabilityLocationSecretDetection { + """ + Number of the last relevant line in the vulnerable file + """ + endLine: String + + """ + Path to the vulnerable file + """ + file: String + + """ + Number of the first relevant line in the vulnerable file + """ + startLine: String + + """ + Class containing the vulnerability + """ + vulnerableClass: String + + """ + Method containing the vulnerability + """ + vulnerableMethod: String +} + +""" Check permissions for the current user on a vulnerability """ type VulnerabilityPermissions { @@ -11672,6 +13739,7 @@ enum VulnerabilityReportType { DAST DEPENDENCY_SCANNING SAST + SECRET_DETECTION } """ |